fimo 0.7.0-experimental.3 → 0.7.0-experimental.5

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 (412) hide show
  1. package/README.md +2 -3
  2. package/assets/content-templates/hooks-template.eta +27 -73
  3. package/assets/content-templates/types-template.eta +1 -4
  4. package/assets/skills/fimo/SKILL.md +3 -3
  5. package/assets/skills/fimo/references/assets.md +2 -2
  6. package/assets/skills/fimo/references/content.md +43 -47
  7. package/assets/skills/fimo/references/design.md +1 -1
  8. package/assets/skills/fimo/references/locales.md +0 -8
  9. package/assets/skills/fimo/references/setup-react-router.md +2 -2
  10. package/assets/skills/fimo/references/ui.md +1 -1
  11. package/assets/skills/fimo-cli/SKILL.md +1 -1
  12. package/assets/skills/fimo-cli/references/assets.md +24 -7
  13. package/assets/skills/fimo-cli/references/content.md +16 -19
  14. package/assets/skills/fimo-cli/references/domains.md +1 -1
  15. package/assets/skills/fimo-cli/references/locales.md +0 -6
  16. package/assets/skills/fimo-cli/references/media.md +142 -132
  17. package/assets/skills/fimo-migration/SKILL.md +22 -2
  18. package/assets/skills/fimo-migration/references/content.md +8 -0
  19. package/assets/skills/fimo-migration/references/manifest.md +35 -0
  20. package/assets/skills/fimo-migration/references/qa.md +24 -2
  21. package/assets/skills/fimo-migration/references/workflow.md +12 -1
  22. package/assets/skills/fimo-migration/references/wrap.md +582 -0
  23. package/assets/skills/fimo-studio/references/custom-domains.md +1 -1
  24. package/assets/skills/fimo-studio/references/visual-editing.md +5 -3
  25. package/dist/build/vite/index.d.ts.map +1 -0
  26. package/dist/build/vite/plugins/content-sync.d.ts.map +1 -0
  27. package/dist/build/vite/plugins/content-sync.test.d.ts +2 -0
  28. package/dist/build/vite/plugins/content-sync.test.d.ts.map +1 -0
  29. package/dist/build/vite/plugins/content-sync.test.js +64 -0
  30. package/dist/build/vite/plugins/data-id.d.ts.map +1 -0
  31. package/dist/build/vite/plugins/fimo-config.d.ts.map +1 -0
  32. package/dist/build/vite/plugins/fimo-config.test.d.ts +2 -0
  33. package/dist/build/vite/plugins/fimo-config.test.d.ts.map +1 -0
  34. package/dist/build/vite/plugins/fimo-config.test.js +46 -0
  35. package/dist/build/vite/plugins/overlay.d.ts.map +1 -0
  36. package/dist/build/vite/plugins/robots.d.ts.map +1 -0
  37. package/dist/build/vite/plugins/seo.d.ts.map +1 -0
  38. package/dist/build/vite/plugins/server-config.d.ts.map +1 -0
  39. package/dist/build/vite/plugins/sitemap.d.ts.map +1 -0
  40. package/dist/build/vite/plugins/translations.d.ts +2 -8
  41. package/dist/build/vite/plugins/translations.d.ts.map +1 -0
  42. package/dist/build/vite/plugins/translations.js +3 -121
  43. package/dist/build/vite/plugins/translations.test.d.ts +2 -0
  44. package/dist/build/vite/plugins/translations.test.d.ts.map +1 -0
  45. package/dist/build/vite/plugins/translations.test.js +266 -0
  46. package/dist/cli/bundle.json +2 -3
  47. package/dist/cli/index.js +118296 -1186
  48. package/dist/runtime/app/FimoProviders.d.ts +1 -11
  49. package/dist/runtime/app/FimoProviders.d.ts.map +1 -0
  50. package/dist/runtime/app/FimoProviders.js +2 -23
  51. package/dist/runtime/app/FimoScripts.d.ts.map +1 -0
  52. package/dist/runtime/app/index.d.ts.map +1 -0
  53. package/dist/runtime/app/prefetch.d.ts.map +1 -0
  54. package/dist/runtime/astro/index.d.ts +2 -0
  55. package/dist/runtime/astro/index.d.ts.map +1 -0
  56. package/dist/runtime/astro/index.js +3 -0
  57. package/dist/runtime/astro/server.d.ts +3 -0
  58. package/dist/runtime/astro/server.d.ts.map +1 -0
  59. package/dist/runtime/astro/server.js +6 -0
  60. package/dist/runtime/content/DataSourcesProvider.d.ts.map +1 -0
  61. package/dist/runtime/content/RefreshContentProvider.d.ts.map +1 -0
  62. package/dist/runtime/content/RefreshContentProvider.test.d.ts +2 -0
  63. package/dist/runtime/content/RefreshContentProvider.test.d.ts.map +1 -0
  64. package/dist/runtime/content/RefreshContentProvider.test.js +33 -0
  65. package/dist/runtime/content/parseCollectionResponse.d.ts.map +1 -0
  66. package/dist/runtime/content/parseCollectionResponse.test.d.ts +2 -0
  67. package/dist/runtime/content/parseCollectionResponse.test.d.ts.map +1 -0
  68. package/dist/runtime/content/parseCollectionResponse.test.js +20 -0
  69. package/dist/runtime/content/utils/retrieve-data-sources.d.ts +0 -1
  70. package/dist/runtime/content/utils/retrieve-data-sources.d.ts.map +1 -0
  71. package/dist/runtime/content/utils/retrieve-data-sources.js +4 -27
  72. package/dist/runtime/core/AppErrorBoundary.d.ts.map +1 -0
  73. package/dist/runtime/core/ViteLifecycles.d.ts.map +1 -0
  74. package/dist/runtime/i18n/FimoLocaleContext.d.ts.map +1 -0
  75. package/dist/runtime/i18n/FimoLocaleContext.js +1 -0
  76. package/dist/runtime/i18n/locale.d.ts.map +1 -0
  77. package/dist/runtime/i18n/locale.test.d.ts +2 -0
  78. package/dist/runtime/i18n/locale.test.d.ts.map +1 -0
  79. package/dist/runtime/i18n/locale.test.js +58 -0
  80. package/dist/runtime/iframe/ConsoleErrorProvider.d.ts.map +1 -0
  81. package/dist/runtime/iframe/ScreenshotProvider.d.ts.map +1 -0
  82. package/dist/runtime/iframe/runtime/overlay-hmr.d.ts.map +1 -0
  83. package/dist/runtime/iframe/runtime/overlay-hmr.js +0 -3
  84. package/dist/runtime/iframe/runtime/overlay-runtime.d.ts.map +1 -0
  85. package/dist/runtime/index.d.ts +0 -3
  86. package/dist/runtime/index.d.ts.map +1 -0
  87. package/dist/runtime/index.js +0 -2
  88. package/dist/runtime/next/FimoNextProviders.d.ts +24 -0
  89. package/dist/runtime/next/FimoNextProviders.d.ts.map +1 -0
  90. package/dist/runtime/next/FimoNextProviders.js +20 -0
  91. package/dist/runtime/next/FimoNextScripts.d.ts +10 -0
  92. package/dist/runtime/next/FimoNextScripts.d.ts.map +1 -0
  93. package/dist/runtime/next/FimoNextScripts.js +19 -0
  94. package/dist/runtime/next/index.d.ts +14 -0
  95. package/dist/runtime/next/index.d.ts.map +1 -0
  96. package/dist/runtime/next/index.js +14 -0
  97. package/dist/runtime/next/server.d.ts +2 -0
  98. package/dist/runtime/next/server.d.ts.map +1 -0
  99. package/dist/runtime/next/server.js +4 -0
  100. package/dist/runtime/nuxt/composables.d.ts +9 -0
  101. package/dist/runtime/nuxt/composables.d.ts.map +1 -0
  102. package/dist/runtime/nuxt/composables.js +57 -0
  103. package/dist/runtime/nuxt/index.d.ts +3 -0
  104. package/dist/runtime/nuxt/index.d.ts.map +1 -0
  105. package/dist/runtime/nuxt/index.js +6 -0
  106. package/dist/runtime/nuxt/server.d.ts +3 -0
  107. package/dist/runtime/nuxt/server.d.ts.map +1 -0
  108. package/dist/runtime/nuxt/server.js +6 -0
  109. package/dist/runtime/paths/get-fimo-paths.d.ts.map +1 -0
  110. package/dist/runtime/paths/get-fimo-paths.js +5 -15
  111. package/dist/runtime/paths/index.d.ts.map +1 -0
  112. package/dist/runtime/paths/types.d.ts.map +1 -0
  113. package/dist/runtime/primitives/components/Boolean.d.ts.map +1 -0
  114. package/dist/runtime/primitives/components/Date.d.ts.map +1 -0
  115. package/dist/runtime/primitives/components/Image.d.ts.map +1 -0
  116. package/dist/runtime/primitives/components/RichText.d.ts.map +1 -0
  117. package/dist/runtime/primitives/components/StaticImage.d.ts.map +1 -0
  118. package/dist/runtime/primitives/components/Text.d.ts.map +1 -0
  119. package/dist/runtime/primitives/components/Video.d.ts.map +1 -0
  120. package/dist/runtime/primitives/components/index.d.ts.map +1 -0
  121. package/dist/runtime/primitives/index.d.ts.map +1 -0
  122. package/dist/runtime/primitives/labels-hook.d.ts +33 -0
  123. package/dist/runtime/primitives/labels-hook.d.ts.map +1 -0
  124. package/dist/runtime/primitives/labels-hook.js +41 -0
  125. package/dist/runtime/primitives/labels-store.d.ts +12 -0
  126. package/dist/runtime/primitives/labels-store.d.ts.map +1 -0
  127. package/dist/runtime/primitives/labels-store.js +60 -0
  128. package/dist/runtime/primitives/labels-store.test.d.ts +2 -0
  129. package/dist/runtime/primitives/labels-store.test.d.ts.map +1 -0
  130. package/dist/runtime/primitives/labels-store.test.js +66 -0
  131. package/dist/runtime/primitives/lib/image-optimization.d.ts.map +1 -0
  132. package/dist/runtime/primitives/lib/index.d.ts.map +1 -0
  133. package/dist/runtime/primitives/lib/primitives.d.ts +2 -2
  134. package/dist/runtime/primitives/lib/primitives.d.ts.map +1 -0
  135. package/dist/runtime/primitives/lib/query.d.ts +3 -5
  136. package/dist/runtime/primitives/lib/query.d.ts.map +1 -0
  137. package/dist/runtime/primitives/lib/template.d.ts.map +1 -0
  138. package/dist/runtime/primitives/lib/useFimoLiveValue.d.ts +5 -3
  139. package/dist/runtime/primitives/lib/useFimoLiveValue.d.ts.map +1 -0
  140. package/dist/runtime/primitives/lib/useFimoLiveValue.js +11 -4
  141. package/dist/runtime/primitives/public-surface.test.d.ts +2 -0
  142. package/dist/runtime/primitives/public-surface.test.d.ts.map +1 -0
  143. package/dist/runtime/primitives/public-surface.test.js +45 -0
  144. package/dist/runtime/primitives/translations.d.ts +1 -27
  145. package/dist/runtime/primitives/translations.d.ts.map +1 -0
  146. package/dist/runtime/primitives/translations.js +7 -85
  147. package/dist/runtime/react/FimoSpaProviders.d.ts +36 -0
  148. package/dist/runtime/react/FimoSpaProviders.d.ts.map +1 -0
  149. package/dist/runtime/react/FimoSpaProviders.js +63 -0
  150. package/dist/runtime/react/index.d.ts +33 -0
  151. package/dist/runtime/react/index.d.ts.map +1 -0
  152. package/dist/runtime/react/index.js +39 -0
  153. package/dist/runtime/react-router/index.d.ts.map +1 -0
  154. package/dist/runtime/react-router/navigation-utils.d.ts.map +1 -0
  155. package/dist/runtime/react-router/navigation.d.ts.map +1 -0
  156. package/dist/runtime/react-router/navigation.test.d.ts +2 -0
  157. package/dist/runtime/react-router/navigation.test.d.ts.map +1 -0
  158. package/dist/runtime/react-router/navigation.test.js +35 -0
  159. package/dist/runtime/react-router/routes.d.ts.map +1 -0
  160. package/dist/runtime/react-router/routes.test.d.ts +2 -0
  161. package/dist/runtime/react-router/routes.test.d.ts.map +1 -0
  162. package/dist/runtime/react-router/routes.test.js +67 -0
  163. package/dist/runtime/remix/FimoRemixProviders.d.ts +16 -0
  164. package/dist/runtime/remix/FimoRemixProviders.d.ts.map +1 -0
  165. package/dist/runtime/remix/FimoRemixProviders.js +12 -0
  166. package/dist/runtime/remix/FimoRemixScripts.d.ts +10 -0
  167. package/dist/runtime/remix/FimoRemixScripts.d.ts.map +1 -0
  168. package/dist/runtime/remix/FimoRemixScripts.js +19 -0
  169. package/dist/runtime/remix/index.d.ts +12 -0
  170. package/dist/runtime/remix/index.d.ts.map +1 -0
  171. package/dist/runtime/remix/index.js +11 -0
  172. package/dist/runtime/remix/server.d.ts +2 -0
  173. package/dist/runtime/remix/server.d.ts.map +1 -0
  174. package/dist/runtime/remix/server.js +2 -0
  175. package/dist/runtime/routing/AppResetScrollOnNavigate.d.ts.map +1 -0
  176. package/dist/runtime/routing/AppRoutesProvider.d.ts.map +1 -0
  177. package/dist/runtime/seo/buildSeoForPath.d.ts +3 -1
  178. package/dist/runtime/seo/buildSeoForPath.d.ts.map +1 -0
  179. package/dist/runtime/seo/buildSeoForPath.js +1 -4
  180. package/dist/runtime/seo/htmlProps.d.ts.map +1 -0
  181. package/dist/runtime/seo/index.d.ts.map +1 -0
  182. package/dist/runtime/seo/resolver.d.ts.map +1 -0
  183. package/dist/runtime/shared/display-routes.d.ts +14 -0
  184. package/dist/runtime/shared/display-routes.d.ts.map +1 -0
  185. package/dist/runtime/shared/display-routes.js +25 -0
  186. package/dist/runtime/shared/fimo-config.server.d.ts.map +1 -0
  187. package/dist/runtime/shared/fimo-config.server.js +1 -0
  188. package/dist/runtime/shared/fimo-config.types.d.ts +2 -0
  189. package/dist/runtime/shared/fimo-config.types.d.ts.map +1 -0
  190. package/dist/runtime/shared/i18n-messages.d.ts +29 -0
  191. package/dist/runtime/shared/i18n-messages.d.ts.map +1 -0
  192. package/dist/runtime/shared/i18n-messages.js +79 -0
  193. package/dist/runtime/shared/i18n-messages.test.d.ts +2 -0
  194. package/dist/runtime/shared/i18n-messages.test.d.ts.map +1 -0
  195. package/dist/runtime/shared/i18n-messages.test.js +39 -0
  196. package/dist/runtime/shared/labels-fetch.pure.d.ts +17 -0
  197. package/dist/runtime/shared/labels-fetch.pure.d.ts.map +1 -0
  198. package/dist/runtime/shared/labels-fetch.pure.js +71 -0
  199. package/dist/runtime/shared/labels-fetch.server.d.ts +7 -0
  200. package/dist/runtime/shared/labels-fetch.server.d.ts.map +1 -0
  201. package/dist/runtime/shared/labels-fetch.server.js +97 -0
  202. package/dist/runtime/shared/labels-t.pure.d.ts +2 -0
  203. package/dist/runtime/shared/labels-t.pure.d.ts.map +1 -0
  204. package/dist/runtime/shared/labels-t.pure.js +10 -0
  205. package/dist/runtime/strapi/client.d.ts +26 -0
  206. package/dist/runtime/strapi/client.d.ts.map +1 -0
  207. package/dist/runtime/strapi/client.js +88 -0
  208. package/dist/runtime/strapi/client.test.d.ts +2 -0
  209. package/dist/runtime/strapi/client.test.d.ts.map +1 -0
  210. package/dist/runtime/strapi/client.test.js +64 -0
  211. package/dist/runtime/strapi/index.d.ts +5 -0
  212. package/dist/runtime/strapi/index.d.ts.map +1 -0
  213. package/dist/runtime/strapi/index.js +6 -0
  214. package/dist/runtime/strapi/reshape.d.ts +28 -0
  215. package/dist/runtime/strapi/reshape.d.ts.map +1 -0
  216. package/dist/runtime/strapi/reshape.js +79 -0
  217. package/dist/runtime/strapi/reshape.test.d.ts +2 -0
  218. package/dist/runtime/strapi/reshape.test.d.ts.map +1 -0
  219. package/dist/runtime/strapi/reshape.test.js +33 -0
  220. package/dist/runtime/svelte/index.d.ts +3 -0
  221. package/dist/runtime/svelte/index.d.ts.map +1 -0
  222. package/dist/runtime/svelte/index.js +7 -0
  223. package/dist/runtime/svelte/server.d.ts +3 -0
  224. package/dist/runtime/svelte/server.d.ts.map +1 -0
  225. package/dist/runtime/svelte/server.js +6 -0
  226. package/dist/runtime/t/OptionalTracking.d.ts.map +1 -0
  227. package/dist/runtime/t/OptionalTracking.test.d.ts +2 -0
  228. package/dist/runtime/t/OptionalTracking.test.d.ts.map +1 -0
  229. package/dist/runtime/t/OptionalTracking.test.js +11 -0
  230. package/dist/runtime/t/Pageview.d.ts.map +1 -0
  231. package/dist/runtime/templates.d.ts.map +1 -0
  232. package/dist/runtime/vue/index.d.ts +3 -0
  233. package/dist/runtime/vue/index.d.ts.map +1 -0
  234. package/dist/runtime/vue/index.js +5 -0
  235. package/dist/runtime/vue/server.d.ts +3 -0
  236. package/dist/runtime/vue/server.d.ts.map +1 -0
  237. package/dist/runtime/vue/server.js +6 -0
  238. package/dist/runtime/wrapped/FimoFileLink.d.ts +17 -0
  239. package/dist/runtime/wrapped/FimoFileLink.d.ts.map +1 -0
  240. package/dist/runtime/wrapped/FimoFileLink.js +19 -0
  241. package/dist/runtime/wrapped/FimoMediaImage.d.ts +14 -0
  242. package/dist/runtime/wrapped/FimoMediaImage.d.ts.map +1 -0
  243. package/dist/runtime/wrapped/FimoMediaImage.js +20 -0
  244. package/dist/runtime/wrapped/FimoMediaVideo.d.ts +14 -0
  245. package/dist/runtime/wrapped/FimoMediaVideo.d.ts.map +1 -0
  246. package/dist/runtime/wrapped/FimoMediaVideo.js +20 -0
  247. package/dist/runtime/wrapped/FimoRichTextBlock.d.ts +23 -0
  248. package/dist/runtime/wrapped/FimoRichTextBlock.d.ts.map +1 -0
  249. package/dist/runtime/wrapped/FimoRichTextBlock.js +22 -0
  250. package/dist/runtime/wrapped/FimoText.d.ts +22 -0
  251. package/dist/runtime/wrapped/FimoText.d.ts.map +1 -0
  252. package/dist/runtime/wrapped/FimoText.js +20 -0
  253. package/dist/runtime/wrapped/WrappedContentContext.d.ts +28 -0
  254. package/dist/runtime/wrapped/WrappedContentContext.d.ts.map +1 -0
  255. package/dist/runtime/wrapped/WrappedContentContext.js +30 -0
  256. package/dist/runtime/wrapped/WrappedProviders.d.ts +33 -0
  257. package/dist/runtime/wrapped/WrappedProviders.d.ts.map +1 -0
  258. package/dist/runtime/wrapped/WrappedProviders.js +101 -0
  259. package/dist/runtime/wrapped/dom.d.ts +4 -0
  260. package/dist/runtime/wrapped/dom.d.ts.map +1 -0
  261. package/dist/runtime/wrapped/dom.js +23 -0
  262. package/dist/runtime/wrapped/dom.test.d.ts +2 -0
  263. package/dist/runtime/wrapped/dom.test.d.ts.map +1 -0
  264. package/dist/runtime/wrapped/dom.test.js +16 -0
  265. package/dist/runtime/wrapped/server.d.ts +77 -0
  266. package/dist/runtime/wrapped/server.d.ts.map +1 -0
  267. package/dist/runtime/wrapped/server.js +237 -0
  268. package/dist/runtime/wrapped/server.test.d.ts +2 -0
  269. package/dist/runtime/wrapped/server.test.d.ts.map +1 -0
  270. package/dist/runtime/wrapped/server.test.js +91 -0
  271. package/dist/scripts/apply-wrap-templates.d.ts +61 -0
  272. package/dist/scripts/apply-wrap-templates.js +132 -0
  273. package/dist/scripts/apply-wrap-templates.test.js +199 -0
  274. package/dist/scripts/apply-wrap.d.ts +46 -0
  275. package/dist/scripts/apply-wrap.js +278 -0
  276. package/dist/scripts/apply-wrap.test.d.ts +1 -0
  277. package/dist/scripts/apply-wrap.test.js +226 -0
  278. package/dist/scripts/cms/discover.d.ts +2 -0
  279. package/dist/scripts/cms/discover.js +17 -0
  280. package/dist/scripts/cms/example-content.d.ts +32 -0
  281. package/dist/scripts/cms/example-content.js +108 -0
  282. package/dist/scripts/cms/example-content.test.d.ts +1 -0
  283. package/dist/scripts/cms/example-content.test.js +66 -0
  284. package/dist/scripts/cms/strapi/detect.d.ts +2 -0
  285. package/dist/scripts/cms/strapi/detect.js +186 -0
  286. package/dist/scripts/cms/strapi/detect.test.d.ts +1 -0
  287. package/dist/scripts/cms/strapi/detect.test.js +56 -0
  288. package/dist/scripts/cms/strapi/index.d.ts +3 -0
  289. package/dist/scripts/cms/strapi/index.js +23 -0
  290. package/dist/scripts/cms/strapi/list-source.d.ts +17 -0
  291. package/dist/scripts/cms/strapi/list-source.js +90 -0
  292. package/dist/scripts/cms/strapi/list-source.test.d.ts +1 -0
  293. package/dist/scripts/cms/strapi/list-source.test.js +33 -0
  294. package/dist/scripts/cms/strapi/schema-map.d.ts +9 -0
  295. package/dist/scripts/cms/strapi/schema-map.js +149 -0
  296. package/dist/scripts/cms/strapi/schema-map.test.d.ts +1 -0
  297. package/dist/scripts/cms/strapi/schema-map.test.js +91 -0
  298. package/dist/scripts/cms/strapi/wire-client.d.ts +15 -0
  299. package/dist/scripts/cms/strapi/wire-client.js +107 -0
  300. package/dist/scripts/cms/strapi/wire-client.test.d.ts +1 -0
  301. package/dist/scripts/cms/strapi/wire-client.test.js +51 -0
  302. package/dist/scripts/cms/strapi/wiring.d.ts +17 -0
  303. package/dist/scripts/cms/strapi/wiring.js +36 -0
  304. package/dist/scripts/cms/strapi/wiring.test.d.ts +1 -0
  305. package/dist/scripts/cms/strapi/wiring.test.js +27 -0
  306. package/dist/scripts/cms/types.d.ts +94 -0
  307. package/dist/scripts/cms/types.js +11 -0
  308. package/dist/scripts/detect-framework.d.ts +39 -0
  309. package/dist/scripts/detect-framework.js +133 -0
  310. package/dist/scripts/detect-framework.test.d.ts +1 -0
  311. package/dist/scripts/detect-framework.test.js +122 -0
  312. package/dist/scripts/draft-rows.d.ts +19 -0
  313. package/dist/scripts/draft-rows.js +135 -0
  314. package/dist/scripts/draft-rows.test.d.ts +1 -0
  315. package/dist/scripts/draft-rows.test.js +113 -0
  316. package/dist/scripts/draft-schemas.d.ts +27 -0
  317. package/dist/scripts/draft-schemas.js +188 -0
  318. package/dist/scripts/draft-schemas.test.d.ts +1 -0
  319. package/dist/scripts/draft-schemas.test.js +152 -0
  320. package/dist/scripts/frameworks/astro/routes.d.ts +3 -0
  321. package/dist/scripts/frameworks/astro/routes.js +55 -0
  322. package/dist/scripts/frameworks/astro/template-style.d.ts +7 -0
  323. package/dist/scripts/frameworks/astro/template-style.js +19 -0
  324. package/dist/scripts/frameworks/discover.d.ts +70 -0
  325. package/dist/scripts/frameworks/discover.js +171 -0
  326. package/dist/scripts/frameworks/next/rewire.d.ts +30 -0
  327. package/dist/scripts/frameworks/next/rewire.js +258 -0
  328. package/dist/scripts/frameworks/next/rewire.test.d.ts +1 -0
  329. package/dist/scripts/frameworks/next/rewire.test.js +134 -0
  330. package/dist/scripts/frameworks/next/routes.d.ts +17 -0
  331. package/dist/scripts/frameworks/next/routes.js +134 -0
  332. package/dist/scripts/frameworks/next/routes.test.d.ts +1 -0
  333. package/dist/scripts/frameworks/next/routes.test.js +64 -0
  334. package/dist/scripts/frameworks/next/wiring.d.ts +26 -0
  335. package/dist/scripts/frameworks/next/wiring.js +163 -0
  336. package/dist/scripts/frameworks/next/wiring.test.d.ts +1 -0
  337. package/dist/scripts/frameworks/next/wiring.test.js +146 -0
  338. package/dist/scripts/frameworks/nuxt/routes.d.ts +3 -0
  339. package/dist/scripts/frameworks/nuxt/routes.js +54 -0
  340. package/dist/scripts/frameworks/nuxt/template-style.d.ts +9 -0
  341. package/dist/scripts/frameworks/nuxt/template-style.js +27 -0
  342. package/dist/scripts/frameworks/remix/routes.d.ts +3 -0
  343. package/dist/scripts/frameworks/remix/routes.js +50 -0
  344. package/dist/scripts/frameworks/sveltekit/routes.d.ts +3 -0
  345. package/dist/scripts/frameworks/sveltekit/routes.js +50 -0
  346. package/dist/scripts/frameworks/sveltekit/template-style.d.ts +9 -0
  347. package/dist/scripts/frameworks/sveltekit/template-style.js +54 -0
  348. package/dist/scripts/frameworks/vite/routes.d.ts +15 -0
  349. package/dist/scripts/frameworks/vite/routes.js +93 -0
  350. package/dist/scripts/frameworks/vite/routes.test.d.ts +1 -0
  351. package/dist/scripts/frameworks/vite/routes.test.js +73 -0
  352. package/dist/scripts/frameworks/vite/wiring.d.ts +10 -0
  353. package/dist/scripts/frameworks/vite/wiring.js +99 -0
  354. package/dist/scripts/frameworks/vite/wiring.test.d.ts +1 -0
  355. package/dist/scripts/frameworks/vite/wiring.test.js +88 -0
  356. package/dist/scripts/generated-types.test.d.ts +1 -0
  357. package/dist/scripts/generated-types.test.js +212 -0
  358. package/dist/scripts/lib/validation-report.d.ts +1 -0
  359. package/dist/scripts/lib/validation-report.js +3 -0
  360. package/dist/scripts/lint-translation-keys.test.d.ts +1 -0
  361. package/dist/scripts/lint-translation-keys.test.js +16 -0
  362. package/dist/scripts/render-parity/capture.d.ts +56 -0
  363. package/dist/scripts/render-parity/capture.js +366 -0
  364. package/dist/scripts/render-parity/capture.test.d.ts +1 -0
  365. package/dist/scripts/render-parity/capture.test.js +306 -0
  366. package/dist/scripts/render-parity/compare.d.ts +59 -0
  367. package/dist/scripts/render-parity/compare.js +0 -0
  368. package/dist/scripts/render-parity/compare.test.d.ts +1 -0
  369. package/dist/scripts/render-parity/compare.test.js +98 -0
  370. package/dist/scripts/render-parity/normalize-html.d.ts +13 -0
  371. package/dist/scripts/render-parity/normalize-html.js +223 -0
  372. package/dist/scripts/render-parity/normalize-html.test.d.ts +1 -0
  373. package/dist/scripts/render-parity/normalize-html.test.js +58 -0
  374. package/dist/scripts/render-parity/types.d.ts +41 -0
  375. package/dist/scripts/render-parity/types.js +1 -0
  376. package/dist/scripts/resolve-routes.js +1 -1
  377. package/dist/scripts/scan-wrappable.d.ts +196 -0
  378. package/dist/scripts/scan-wrappable.js +1221 -0
  379. package/dist/scripts/scan-wrappable.test.d.ts +1 -0
  380. package/dist/scripts/scan-wrappable.test.js +502 -0
  381. package/dist/scripts/sync-schemas.test.d.ts +1 -0
  382. package/dist/scripts/sync-schemas.test.js +124 -0
  383. package/dist/scripts/validate-route-metadata.js +11 -0
  384. package/dist/scripts/validate-route-metadata.test.d.ts +1 -0
  385. package/dist/scripts/validate-route-metadata.test.js +116 -0
  386. package/dist/scripts/validate-schemas.test.d.ts +1 -0
  387. package/dist/scripts/validate-schemas.test.js +263 -0
  388. package/package.json +89 -20
  389. package/scripts/add-ext.mjs +47 -0
  390. package/scripts/bump-version.mjs +58 -0
  391. package/scripts/bundle-cli.mjs +123 -0
  392. package/scripts/install-cli.mjs +36 -0
  393. package/scripts/lib/channels.mjs +70 -0
  394. package/scripts/lib/dev-release-state.mjs +44 -0
  395. package/scripts/lib/dev-release-state.test.ts +36 -0
  396. package/scripts/lib/postinstall-onboarding.test.ts +82 -0
  397. package/scripts/lib/release-core.mjs +225 -0
  398. package/scripts/lib/release-core.test.ts +147 -0
  399. package/scripts/migration-qa-gate.test.ts +155 -0
  400. package/scripts/publish-npm.mjs +180 -0
  401. package/templates/react-router/package.json +7 -10
  402. package/templates/react-router/src/pages/Index.tsx +1 -1
  403. package/dist/runtime/content/client/createContentClient.d.ts +0 -5
  404. package/dist/runtime/content/client/createContentClient.js +0 -300
  405. package/dist/runtime/content/client/createSingletonClient.d.ts +0 -5
  406. package/dist/runtime/content/client/createSingletonClient.js +0 -108
  407. package/dist/runtime/content/client/internal.d.ts +0 -44
  408. package/dist/runtime/content/client/internal.js +0 -236
  409. package/dist/runtime/content/client/types.d.ts +0 -136
  410. package/dist/runtime/content/client/useQueryLocale.d.ts +0 -2
  411. package/dist/runtime/content/client/useQueryLocale.js +0 -6
  412. /package/dist/{runtime/content/client/types.js → scripts/apply-wrap-templates.test.d.ts} +0 -0
@@ -1,61 +1,14 @@
1
- import { useSyncExternalStore } from 'react';
1
+ // Vite flavor of the label layer: hydrates the framework-neutral store from
2
+ // the `virtual:translations` module (fimo/vite labels plugin) and wires HMR.
3
+ // Framework-agnostic consumers use ./labels-store.ts + ./labels-hook.ts.
2
4
  import { defaultLocale as bundledDefaultLocale, dictionaries as bundledDictionaries, signature as translationSignature, updatedAt as bundledUpdatedAt, } from 'virtual:translations';
3
- import { useLocale } from '../i18n/FimoLocaleContext.js';
4
- import { FimoString } from './lib/index.js';
5
- const labelListeners = new Set();
6
- let labelState = {
5
+ import { applyLabelUpdate, hydrateLabels } from './labels-store.js';
6
+ hydrateLabels({
7
7
  dictionaries: bundledDictionaries ?? {},
8
8
  defaultLocale: bundledDefaultLocale || 'en',
9
9
  signature: translationSignature,
10
10
  updatedAt: bundledUpdatedAt ?? null,
11
- };
12
- function subscribeLabels(listener) {
13
- labelListeners.add(listener);
14
- return () => {
15
- labelListeners.delete(listener);
16
- };
17
- }
18
- function getLabelSnapshot() {
19
- return labelState;
20
- }
21
- function setLabelState(next) {
22
- if (next.signature === labelState.signature) {
23
- return;
24
- }
25
- labelState = next;
26
- for (const listener of labelListeners) {
27
- listener();
28
- }
29
- }
30
- function isRecord(value) {
31
- return Boolean(value) && typeof value === 'object' && !Array.isArray(value);
32
- }
33
- function normalizeDictionaries(value) {
34
- if (!isRecord(value)) {
35
- return null;
36
- }
37
- const dictionaries = {};
38
- for (const [locale, labels] of Object.entries(value)) {
39
- if (!isRecord(labels)) {
40
- continue;
41
- }
42
- dictionaries[locale] = Object.fromEntries(Object.entries(labels).filter((entry) => typeof entry[1] === 'string'));
43
- }
44
- return dictionaries;
45
- }
46
- function applyLabelUpdate(payload) {
47
- if (!isRecord(payload)) {
48
- return;
49
- }
50
- const dictionaries = normalizeDictionaries(payload.dictionaries);
51
- if (!dictionaries) {
52
- return;
53
- }
54
- const defaultLocale = typeof payload.defaultLocale === 'string' ? payload.defaultLocale : labelState.defaultLocale;
55
- const signature = typeof payload.signature === 'string' ? payload.signature : JSON.stringify({ dictionaries, defaultLocale });
56
- const updatedAt = typeof payload.updatedAt === 'string' ? payload.updatedAt : null;
57
- setLabelState({ dictionaries, defaultLocale, signature, updatedAt });
58
- }
11
+ });
59
12
  // @ts-ignore - import.meta.hot is provided by Vite during development.
60
13
  if (import.meta.hot) {
61
14
  const onLabelsUpdated = (payload) => {
@@ -69,35 +22,4 @@ if (import.meta.hot) {
69
22
  import.meta.hot.off('fimo:labels-updated', onLabelsUpdated);
70
23
  });
71
24
  }
72
- /**
73
- * Hook to provide a label function (`t`).
74
- *
75
- * Returns FimoString with source tracking for inline editing.
76
- * Use with <Text> component for rendering, or String() for escape hatch.
77
- *
78
- * @example
79
- * const { t } = useLabels();
80
- *
81
- * // With Text component (recommended)
82
- * <Text value={t('welcome')} />
83
- *
84
- * // Escape hatch for attributes
85
- * <input placeholder={String(t('email.placeholder'))} />
86
- */
87
- export function useLabels() {
88
- const localeContext = useLocale();
89
- const labels = useSyncExternalStore(subscribeLabels, getLabelSnapshot, getLabelSnapshot);
90
- const t = (fullKey) => {
91
- const locale = localeContext.locale || labels.defaultLocale || 'en';
92
- const dictionary = labels.dictionaries[locale] ?? labels.dictionaries[labels.defaultLocale] ?? {};
93
- const text = dictionary[fullKey] ?? '';
94
- return new FimoString(text, `__labels.${locale}.${fullKey}.value`);
95
- };
96
- return { t, locale: localeContext.locale };
97
- }
98
- /**
99
- * Legacy alias for older projects. Prefer useLabels() in new code.
100
- */
101
- export function useTranslations() {
102
- return useLabels();
103
- }
25
+ export { useLabels, useTranslations } from './labels-hook.js';
@@ -0,0 +1,36 @@
1
+ import React from 'react';
2
+ import type { FimoConfig } from '../shared/fimo-config.types.js';
3
+ import type { WrappedMediaEntry, WrappedRichTextEntry } from '../wrapped/WrappedContentContext.js';
4
+ export interface FimoSpaProvidersProps {
5
+ /** The project's fimo-config.json — import it directly: `import config from '../fimo-config.json'`. */
6
+ config: FimoConfig;
7
+ /** Tenant API base URL, e.g. `import.meta.env.VITE_API_URL`. Without it, wrapped values render their inline fallbacks. */
8
+ apiUrl?: string;
9
+ /** Preview client script for Fimo Studio edit mode. Pass only in dev, e.g. `import.meta.env.DEV ? import.meta.env.VITE_FIMO_PREVIEW_SCRIPT_URL : undefined`. */
10
+ previewScriptUrl?: string;
11
+ media?: Record<string, WrappedMediaEntry>;
12
+ richText?: Record<string, WrappedRichTextEntry>;
13
+ locale?: string;
14
+ children?: React.ReactNode;
15
+ }
16
+ /**
17
+ * Fimo providers for wrapped CLIENT-RENDERED React apps (Vite SPAs). There is
18
+ * no server pass to load labels in, so this adapter fetches the dictionary in
19
+ * the browser and hydrates the framework-neutral WrappedProviders; until the
20
+ * fetch resolves (or when it fails), every wrapped value renders its inline
21
+ * fallback — the original hardcoded string. Mount once around the app root:
22
+ *
23
+ * import config from '../fimo-config.json';
24
+ * <FimoSpaProviders
25
+ * config={config}
26
+ * apiUrl={import.meta.env.VITE_API_URL}
27
+ * previewScriptUrl={import.meta.env.DEV ? import.meta.env.VITE_FIMO_PREVIEW_SCRIPT_URL : undefined}
28
+ * >
29
+ * <App />
30
+ * </FimoSpaProviders>
31
+ *
32
+ * Navigation is History-API based (full page load): correct for any SPA
33
+ * router without depending on one.
34
+ */
35
+ export declare function FimoSpaProviders({ config, apiUrl, previewScriptUrl, media, richText, locale, children, }: FimoSpaProvidersProps): import("react/jsx-runtime").JSX.Element;
36
+ //# sourceMappingURL=FimoSpaProviders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FimoSpaProviders.d.ts","sourceRoot":"","sources":["../../../src/runtime/react/FimoSpaProviders.tsx"],"names":[],"mappings":"AACA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAG5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAEjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAGnG,MAAM,WAAW,qBAAqB;IACpC,uGAAuG;IACvG,MAAM,EAAE,UAAU,CAAC;IACnB,0HAA0H;IAC1H,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gKAAgK;IAChK,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAYD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,MAAM,EACN,gBAAgB,EAChB,KAAK,EACL,QAAQ,EACR,MAAM,EACN,QAAQ,GACT,EAAE,qBAAqB,2CA8CvB"}
@@ -0,0 +1,63 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useEffect, useMemo, useState } from 'react';
4
+ import { getFimoDefaultLocale, getFimoLocales } from '../i18n/locale.js';
5
+ import { fetchLabelBundle, serializeBundle } from '../shared/labels-fetch.pure.js';
6
+ import { WrappedProviders } from '../wrapped/WrappedProviders.js';
7
+ /** Browser-safe stable signature (labelSignature uses Buffer, server-only). */
8
+ function bundleSignature(bundle) {
9
+ const serialized = serializeBundle(bundle);
10
+ let hash = 5381;
11
+ for (let i = 0; i < serialized.length; i++) {
12
+ hash = ((hash << 5) + hash + serialized.charCodeAt(i)) | 0;
13
+ }
14
+ return `spa-${hash}`;
15
+ }
16
+ /**
17
+ * Fimo providers for wrapped CLIENT-RENDERED React apps (Vite SPAs). There is
18
+ * no server pass to load labels in, so this adapter fetches the dictionary in
19
+ * the browser and hydrates the framework-neutral WrappedProviders; until the
20
+ * fetch resolves (or when it fails), every wrapped value renders its inline
21
+ * fallback — the original hardcoded string. Mount once around the app root:
22
+ *
23
+ * import config from '../fimo-config.json';
24
+ * <FimoSpaProviders
25
+ * config={config}
26
+ * apiUrl={import.meta.env.VITE_API_URL}
27
+ * previewScriptUrl={import.meta.env.DEV ? import.meta.env.VITE_FIMO_PREVIEW_SCRIPT_URL : undefined}
28
+ * >
29
+ * <App />
30
+ * </FimoSpaProviders>
31
+ *
32
+ * Navigation is History-API based (full page load): correct for any SPA
33
+ * router without depending on one.
34
+ */
35
+ export function FimoSpaProviders({ config, apiUrl, previewScriptUrl, media, richText, locale, children, }) {
36
+ const [labels, setLabels] = useState(undefined);
37
+ useEffect(() => {
38
+ if (!apiUrl) {
39
+ return;
40
+ }
41
+ let cancelled = false;
42
+ const defaultLocale = getFimoDefaultLocale(config);
43
+ fetchLabelBundle(apiUrl, getFimoLocales(config), defaultLocale)
44
+ .then((bundle) => {
45
+ if (!cancelled) {
46
+ setLabels({ ...bundle, signature: bundleSignature(bundle) });
47
+ }
48
+ })
49
+ .catch(() => {
50
+ // Unreachable API: keep rendering the inline fallbacks.
51
+ });
52
+ return () => {
53
+ cancelled = true;
54
+ };
55
+ }, [apiUrl, config]);
56
+ const navigation = useMemo(() => ({
57
+ pathname: typeof window !== 'undefined' ? window.location.pathname : null,
58
+ navigate: (to) => {
59
+ window.location.assign(to);
60
+ },
61
+ }), []);
62
+ return (_jsxs(WrappedProviders, { config: config, labels: labels, media: media, richText: richText, locale: locale, navigation: navigation, children: [previewScriptUrl ? _jsx("script", { type: "module", src: previewScriptUrl }) : null, children] }));
63
+ }
@@ -0,0 +1,33 @@
1
+ export { Text } from '../primitives/components/Text.js';
2
+ export { Image } from '../primitives/components/Image.js';
3
+ export { StaticImage } from '../primitives/components/StaticImage.js';
4
+ export { Video } from '../primitives/components/Video.js';
5
+ export { Date } from '../primitives/components/Date.js';
6
+ export { Boolean } from '../primitives/components/Boolean.js';
7
+ export { RichText } from '../primitives/components/RichText.js';
8
+ export { useLabels, useTranslations } from '../primitives/labels-hook.js';
9
+ export { applyLabelUpdate, getLabelSnapshot, hydrateLabels, subscribeLabels } from '../primitives/labels-store.js';
10
+ export type { LabelState } from '../primitives/labels-store.js';
11
+ export { FimoText } from '../wrapped/FimoText.js';
12
+ export { FimoRichTextBlock } from '../wrapped/FimoRichTextBlock.js';
13
+ export { FimoMediaImage } from '../wrapped/FimoMediaImage.js';
14
+ export { FimoMediaVideo } from '../wrapped/FimoMediaVideo.js';
15
+ export { FimoFileLink } from '../wrapped/FimoFileLink.js';
16
+ export { useWrappedMedia, useWrappedRichText } from '../wrapped/WrappedContentContext.js';
17
+ export type { WrappedMediaEntry, WrappedRichTextEntry } from '../wrapped/WrappedContentContext.js';
18
+ export { FimoSpaProviders } from './FimoSpaProviders.js';
19
+ export type { FimoSpaProvidersProps } from './FimoSpaProviders.js';
20
+ export { FimoString, FimoDate, FimoMedia, FimoBoolean, FimoRichText, type FimoSource, type FimoPart, type FimoRichTextContent, type FimoRichTextNodeProps, type FimoRichTextMarkProps, type FimoRichTextComponents, FIMO_SOURCE, FIMO_PARTS, isFimoString, isFimoDate, hasFimoSource, getFimoSource, getFimoParts, } from '../primitives/lib/index.js';
21
+ export { fimo } from '../primitives/lib/template.js';
22
+ export { useFimoLiveValue } from '../primitives/lib/useFimoLiveValue.js';
23
+ export { DataSourcesProvider } from '../content/DataSourcesProvider.js';
24
+ export { ConsoleErrorProvider } from '../iframe/ConsoleErrorProvider.js';
25
+ export { ScreenshotProvider } from '../iframe/ScreenshotProvider.js';
26
+ export { FimoLocaleProvider, useLocale } from '../i18n/FimoLocaleContext.js';
27
+ export type { FimoLocaleContextValue } from '../i18n/FimoLocaleContext.js';
28
+ export { getFimoDefaultLocale, getFimoLocales, getFimoTextDirection, localizeFimoPath, resolveFimoLocale, toHtmlLang, } from '../i18n/locale.js';
29
+ export type { FimoLocaleResolution } from '../i18n/locale.js';
30
+ export { getDisplayRoutes } from '../shared/display-routes.js';
31
+ export type { DisplayRoute, ParamInfo } from '../shared/display-routes.js';
32
+ export type { FimoConfig, FimoRouteConfig, FimoSEO } from '../shared/fimo-config.types.js';
33
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/react/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,IAAI,EAAE,MAAM,kCAAkC,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AACtE,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,kCAAkC,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAGhE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACnH,YAAY,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAMhE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC1F,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AACnG,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAGnE,OAAO,EACL,UAAU,EACV,QAAQ,EACR,SAAS,EACT,WAAW,EACX,YAAY,EACZ,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,WAAW,EACX,UAAU,EACV,YAAY,EACZ,UAAU,EACV,aAAa,EACb,aAAa,EACb,YAAY,GACb,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAGzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAGrE,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC7E,YAAY,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,GACX,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAG9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC3E,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC"}
@@ -0,0 +1,39 @@
1
+ // fimo/react — the framework-agnostic React core of the Fimo runtime.
2
+ // No Vite virtual modules, no react-router, no bundler assumptions:
3
+ // per-framework adapters (fimo/react-router via fimo/ui, fimo/next, ...)
4
+ // build on this surface.
5
+ // Inline-editing components
6
+ export { Text } from '../primitives/components/Text.js';
7
+ export { Image } from '../primitives/components/Image.js';
8
+ export { StaticImage } from '../primitives/components/StaticImage.js';
9
+ export { Video } from '../primitives/components/Video.js';
10
+ export { Date } from '../primitives/components/Date.js';
11
+ export { Boolean } from '../primitives/components/Boolean.js';
12
+ export { RichText } from '../primitives/components/RichText.js';
13
+ // Labels (framework-neutral store + hook; adapters hydrate the store)
14
+ export { useLabels, useTranslations } from '../primitives/labels-hook.js';
15
+ export { applyLabelUpdate, getLabelSnapshot, hydrateLabels, subscribeLabels } from '../primitives/labels-store.js';
16
+ // Wrapped-site primitives (the --apply codemod imports these from fimo/react
17
+ // in Vite React SPAs) + the client-side providers that hydrate them. All are
18
+ // fallback-safe without a provider: FimoText renders its children, media
19
+ // elements render their original src.
20
+ export { FimoText } from '../wrapped/FimoText.js';
21
+ export { FimoRichTextBlock } from '../wrapped/FimoRichTextBlock.js';
22
+ export { FimoMediaImage } from '../wrapped/FimoMediaImage.js';
23
+ export { FimoMediaVideo } from '../wrapped/FimoMediaVideo.js';
24
+ export { FimoFileLink } from '../wrapped/FimoFileLink.js';
25
+ export { useWrappedMedia, useWrappedRichText } from '../wrapped/WrappedContentContext.js';
26
+ export { FimoSpaProviders } from './FimoSpaProviders.js';
27
+ // Source-tracking primitives & utilities
28
+ export { FimoString, FimoDate, FimoMedia, FimoBoolean, FimoRichText, FIMO_SOURCE, FIMO_PARTS, isFimoString, isFimoDate, hasFimoSource, getFimoSource, getFimoParts, } from '../primitives/lib/index.js';
29
+ export { fimo } from '../primitives/lib/template.js';
30
+ export { useFimoLiveValue } from '../primitives/lib/useFimoLiveValue.js';
31
+ // Preview/editor bridge providers (postMessage-based, framework-free)
32
+ export { DataSourcesProvider } from '../content/DataSourcesProvider.js';
33
+ export { ConsoleErrorProvider } from '../iframe/ConsoleErrorProvider.js';
34
+ export { ScreenshotProvider } from '../iframe/ScreenshotProvider.js';
35
+ // Locale
36
+ export { FimoLocaleProvider, useLocale } from '../i18n/FimoLocaleContext.js';
37
+ export { getFimoDefaultLocale, getFimoLocales, getFimoTextDirection, localizeFimoPath, resolveFimoLocale, toHtmlLang, } from '../i18n/locale.js';
38
+ // Config + routes
39
+ export { getDisplayRoutes } from '../shared/display-routes.js';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/react-router/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC3F,YAAY,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAC3E,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,YAAY,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation-utils.d.ts","sourceRoot":"","sources":["../../../src/runtime/react-router/navigation-utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAEjE,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9F,wBAAgB,cAAc,CAC5B,EAAE,EAAE,gBAAgB,EACpB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,SAAS,GAC3C,gBAAgB,CAWlB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../../src/runtime/react-router/navigation.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAOnE,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,qBAAqB;IACjF,EAAE,EAAE,EAAE,CAAC;CACR;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,cAAqB,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,2CAGtF;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,GAAE,qBAA0B,GAAG,EAAE,CAI3E;AAED,wBAAgB,eAAe,KAIrB,IAAI,EAAE,GAAG,MAAM,EAAE,UAAS,eAAe,GAAG,qBAA0B,UAU/E"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=navigation.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.test.d.ts","sourceRoot":"","sources":["../../../src/runtime/react-router/navigation.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,35 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { localizeFimoTo } from './navigation-utils';
3
+ describe('localizeFimoTo', () => {
4
+ const config = {
5
+ i18n: {
6
+ defaultLocale: 'en',
7
+ locales: ['en', 'es'],
8
+ routing: {
9
+ strategy: 'path-prefix',
10
+ prefixDefaultLocale: false,
11
+ },
12
+ },
13
+ };
14
+ it('localizes absolute internal paths while preserving search and hash', () => {
15
+ expect(localizeFimoTo('/pricing?plan=pro#faq', 'es', config)).toBe('/es/pricing?plan=pro#faq');
16
+ });
17
+ it('does not double-prefix already localized paths', () => {
18
+ expect(localizeFimoTo('/es/pricing', 'es', config)).toBe('/es/pricing');
19
+ });
20
+ it('keeps default locale paths unprefixed by default', () => {
21
+ expect(localizeFimoTo('/pricing', 'en', config)).toBe('/pricing');
22
+ });
23
+ it('leaves relative, hash, query, and external URLs alone', () => {
24
+ expect(localizeFimoTo('pricing', 'es', config)).toBe('pricing');
25
+ expect(localizeFimoTo('#pricing', 'es', config)).toBe('#pricing');
26
+ expect(localizeFimoTo('?modal=pricing', 'es', config)).toBe('?modal=pricing');
27
+ expect(localizeFimoTo('https://example.com/pricing', 'es', config)).toBe('https://example.com/pricing');
28
+ });
29
+ it('localizes object targets with pathnames', () => {
30
+ expect(localizeFimoTo({ pathname: '/pricing', search: '?plan=pro' }, 'es', config)).toEqual({
31
+ pathname: '/es/pricing',
32
+ search: '?plan=pro',
33
+ });
34
+ });
35
+ });
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../src/runtime/react-router/routes.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAEjE,MAAM,WAAW,oBAAoB;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAClC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;;GAMG;AACH,UAAU,cAAc;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,UAAU,CAAC,CAAC,SAAS,cAAc,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE,OAAO,GAAE,iBAAsB,GAAG,CAAC,EAAE,CA4B/G"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=routes.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.test.d.ts","sourceRoot":"","sources":["../../../src/runtime/react-router/routes.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,67 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { fimoRoutes } from './routes';
3
+ describe('fimoRoutes', () => {
4
+ const config = {
5
+ i18n: {
6
+ defaultLocale: 'en',
7
+ locales: ['en', 'es'],
8
+ routing: {
9
+ strategy: 'path-prefix',
10
+ prefixDefaultLocale: false,
11
+ },
12
+ },
13
+ };
14
+ it('adds concrete non-default locale aliases that reuse the same route modules', () => {
15
+ const routes = fimoRoutes([
16
+ { index: true, file: './pages/Index.tsx', id: 'home' },
17
+ { path: 'pricing', file: './pages/Pricing.tsx', id: 'pricing' },
18
+ { path: 'blog/:slug', file: './pages/BlogPost.tsx', id: 'blog-post' },
19
+ ], { config });
20
+ expect(routes).toEqual([
21
+ { index: true, file: './pages/Index.tsx', id: 'home' },
22
+ { path: 'pricing', file: './pages/Pricing.tsx', id: 'pricing' },
23
+ { path: 'blog/:slug', file: './pages/BlogPost.tsx', id: 'blog-post' },
24
+ { file: './pages/Index.tsx', id: 'fimo.es.home', path: 'es' },
25
+ { path: 'es/pricing', file: './pages/Pricing.tsx', id: 'fimo.es.pricing' },
26
+ { path: 'es/blog/:slug', file: './pages/BlogPost.tsx', id: 'fimo.es.blog-post' },
27
+ ]);
28
+ });
29
+ it('can prefix the default locale when configured', () => {
30
+ const routes = fimoRoutes([{ index: true, file: './pages/Index.tsx', id: 'home' }], {
31
+ config: {
32
+ i18n: {
33
+ ...config.i18n,
34
+ routing: {
35
+ strategy: 'path-prefix',
36
+ prefixDefaultLocale: true,
37
+ },
38
+ },
39
+ },
40
+ });
41
+ expect(routes).toEqual([
42
+ { index: true, file: './pages/Index.tsx', id: 'home' },
43
+ { file: './pages/Index.tsx', id: 'fimo.en.home', path: 'en' },
44
+ { file: './pages/Index.tsx', id: 'fimo.es.home', path: 'es' },
45
+ ]);
46
+ });
47
+ it('localizes children below a pathless layout without duplicating files', () => {
48
+ const routes = fimoRoutes([
49
+ {
50
+ file: './pages/Layout.tsx',
51
+ id: 'site-layout',
52
+ children: [
53
+ { index: true, file: './pages/Index.tsx', id: 'home' },
54
+ { path: 'pricing', file: './pages/Pricing.tsx', id: 'pricing' },
55
+ ],
56
+ },
57
+ ], { config });
58
+ expect(routes[1]).toMatchObject({
59
+ file: './pages/Layout.tsx',
60
+ id: 'fimo.es.site-layout',
61
+ children: [
62
+ { file: './pages/Index.tsx', id: 'fimo.es.home', path: 'es' },
63
+ { path: 'es/pricing', file: './pages/Pricing.tsx', id: 'fimo.es.pricing' },
64
+ ],
65
+ });
66
+ });
67
+ });
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import type { FimoConfig } from '../shared/fimo-config.types.js';
3
+ import type { WrappedMediaEntry, WrappedRichTextEntry } from '../wrapped/WrappedContentContext.js';
4
+ import { type WrappedLabels } from '../wrapped/WrappedProviders.js';
5
+ export type FimoRemixLabels = WrappedLabels;
6
+ export interface FimoRemixProvidersProps {
7
+ config: FimoConfig;
8
+ labels?: FimoRemixLabels;
9
+ media?: Record<string, WrappedMediaEntry>;
10
+ richText?: Record<string, WrappedRichTextEntry>;
11
+ locale?: string;
12
+ children?: React.ReactNode;
13
+ }
14
+ /** Fimo providers for wrapped Remix apps — mount once in app/root.tsx. */
15
+ export declare function FimoRemixProviders(props: FimoRemixProvidersProps): import("react/jsx-runtime").JSX.Element;
16
+ //# sourceMappingURL=FimoRemixProviders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FimoRemixProviders.d.ts","sourceRoot":"","sources":["../../../src/runtime/remix/FimoRemixProviders.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AACnG,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAEtF,MAAM,MAAM,eAAe,GAAG,aAAa,CAAC;AAE5C,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,0EAA0E;AAC1E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,2CAQhE"}
@@ -0,0 +1,12 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useLocation, useNavigate } from '@remix-run/react';
4
+ import { useMemo } from 'react';
5
+ import { WrappedProviders } from '../wrapped/WrappedProviders.js';
6
+ /** Fimo providers for wrapped Remix apps — mount once in app/root.tsx. */
7
+ export function FimoRemixProviders(props) {
8
+ const location = useLocation();
9
+ const navigate = useNavigate();
10
+ const navigation = useMemo(() => ({ pathname: location.pathname, navigate: (to) => navigate(to) }), [location.pathname, navigate]);
11
+ return _jsx(WrappedProviders, { ...props, navigation: navigation });
12
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Renders the Fimo preview client script in development so the Fimo Studio
3
+ * preview can select/edit elements. Mount inside <head> in the root layout.
4
+ *
5
+ * The script URL comes from FIMO_PREVIEW_SCRIPT_URL (written by
6
+ * `fimo init` for wrapped projects, pointing at `<apiUrl>/preview.js`).
7
+ * Renders nothing in production builds.
8
+ */
9
+ export declare function FimoRemixScripts(): import("react/jsx-runtime").JSX.Element | null;
10
+ //# sourceMappingURL=FimoRemixScripts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FimoRemixScripts.d.ts","sourceRoot":"","sources":["../../../src/runtime/remix/FimoRemixScripts.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,mDAW/B"}
@@ -0,0 +1,19 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * Renders the Fimo preview client script in development so the Fimo Studio
4
+ * preview can select/edit elements. Mount inside <head> in the root layout.
5
+ *
6
+ * The script URL comes from FIMO_PREVIEW_SCRIPT_URL (written by
7
+ * `fimo init` for wrapped projects, pointing at `<apiUrl>/preview.js`).
8
+ * Renders nothing in production builds.
9
+ */
10
+ export function FimoRemixScripts() {
11
+ if (process.env.NODE_ENV !== 'development') {
12
+ return null;
13
+ }
14
+ const previewScriptUrl = process.env.FIMO_PREVIEW_SCRIPT_URL;
15
+ if (!previewScriptUrl) {
16
+ return null;
17
+ }
18
+ return _jsx("script", { type: "module", src: previewScriptUrl });
19
+ }
@@ -0,0 +1,12 @@
1
+ export { FimoRemixProviders } from './FimoRemixProviders.js';
2
+ export type { FimoRemixLabels, FimoRemixProvidersProps } from './FimoRemixProviders.js';
3
+ export { FimoRemixScripts } from './FimoRemixScripts.js';
4
+ export { FimoText } from '../wrapped/FimoText.js';
5
+ export { FimoRichTextBlock } from '../wrapped/FimoRichTextBlock.js';
6
+ export { FimoMediaImage } from '../wrapped/FimoMediaImage.js';
7
+ export { FimoMediaVideo } from '../wrapped/FimoMediaVideo.js';
8
+ export { FimoFileLink } from '../wrapped/FimoFileLink.js';
9
+ export { useWrappedMedia, useWrappedRichText } from '../wrapped/WrappedContentContext.js';
10
+ export type { WrappedMediaEntry, WrappedRichTextEntry } from '../wrapped/WrappedContentContext.js';
11
+ export { useLabels } from '../primitives/labels-hook.js';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/remix/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC1F,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AACnG,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC"}
@@ -0,0 +1,11 @@
1
+ // fimo/remix — the Remix adapter. Framework-neutral pieces live in
2
+ // ../wrapped and are re-exported; this module only adds the Remix wiring.
3
+ export { FimoRemixProviders } from './FimoRemixProviders.js';
4
+ export { FimoRemixScripts } from './FimoRemixScripts.js';
5
+ export { FimoText } from '../wrapped/FimoText.js';
6
+ export { FimoRichTextBlock } from '../wrapped/FimoRichTextBlock.js';
7
+ export { FimoMediaImage } from '../wrapped/FimoMediaImage.js';
8
+ export { FimoMediaVideo } from '../wrapped/FimoMediaVideo.js';
9
+ export { FimoFileLink } from '../wrapped/FimoFileLink.js';
10
+ export { useWrappedMedia, useWrappedRichText } from '../wrapped/WrappedContentContext.js';
11
+ export { useLabels } from '../primitives/labels-hook.js';
@@ -0,0 +1,2 @@
1
+ export * from '../wrapped/server.js';
2
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/runtime/remix/server.ts"],"names":[],"mappings":"AACA,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,2 @@
1
+ // fimo/remix/server — same framework-neutral loaders as every adapter.
2
+ export * from '../wrapped/server.js';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppResetScrollOnNavigate.d.ts","sourceRoot":"","sources":["../../../src/runtime/routing/AppResetScrollOnNavigate.tsx"],"names":[],"mappings":"AAGA,wBAAgB,wBAAwB,SAUvC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppRoutesProvider.d.ts","sourceRoot":"","sources":["../../../src/runtime/routing/AppRoutesProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAG/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAUhD,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,QAAS,SAAQ,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,SAAS,CAAC;IACzE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,QAAQ,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;IACrF,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAmBD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,QAAQ,SAAK,GAAG,YAAY,EAAE,CA4BlF;AAED,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,2CAoEhH"}
@@ -37,7 +37,9 @@ export declare function buildFimoMeta(args: {
37
37
  location: {
38
38
  pathname: string;
39
39
  };
40
- matches: readonly unknown[];
40
+ matches: {
41
+ data?: unknown;
42
+ }[];
41
43
  }): ({
42
44
  title: string;
43
45
  name?: undefined;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildSeoForPath.d.ts","sourceRoot":"","sources":["../../../src/runtime/seo/buildSeoForPath.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAc,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAK1E,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAExF;AA+BD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAMrE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAAE,QAAQ,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,OAAO,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAUpG"}
@@ -42,10 +42,7 @@ export function buildMetaForPath(pathname, routeData) {
42
42
  }
43
43
  export function buildFimoMeta(args) {
44
44
  const pathname = args.location.pathname;
45
- const firstMatch = args.matches[0];
46
- const rootData = firstMatch && typeof firstMatch === 'object' && 'data' in firstMatch
47
- ? firstMatch.data
48
- : undefined;
45
+ const rootData = args.matches[0]?.data;
49
46
  const routeData = rootData && typeof rootData === 'object' ? rootData.fimoMetaData : undefined;
50
47
  const seo = getSeoForPath(pathname, routeData);
51
48
  if (!seo) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"htmlProps.d.ts","sourceRoot":"","sources":["../../../src/runtime/seo/htmlProps.ts"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,KAAK,GAAG,KAAK,CAAA;CAAE,CAIlH"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/seo/index.ts"],"names":[],"mappings":"AAEA,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAE9B,wBAAsB,gBAAgB,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE;;;GAIvE"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../src/runtime/seo/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,OAAO,EAAY,MAAM,gCAAgC,CAAC;AAErG;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,cAAc,2HAWsB,CAAC;AAElD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAO1D;AAUD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAoBzG;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,SAAS,GAClD,eAAe,GAAG,SAAS,CAuB7B;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAapE;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAQ1F;AAaD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAwBhH"}
@@ -0,0 +1,14 @@
1
+ import type { FimoConfig } from './fimo-config.types.js';
2
+ export interface ParamInfo {
3
+ schema: string;
4
+ queryField: string;
5
+ displayField: string;
6
+ }
7
+ export interface DisplayRoute {
8
+ id: string;
9
+ name: string;
10
+ path: string;
11
+ params?: Record<string, ParamInfo>;
12
+ }
13
+ export declare function getDisplayRoutes(config: Pick<FimoConfig, 'routes'> | undefined): DisplayRoute[];
14
+ //# sourceMappingURL=display-routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display-routes.d.ts","sourceRoot":"","sources":["../../../src/runtime/shared/display-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACpC;AAmBD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,SAAS,GAAG,YAAY,EAAE,CAU/F"}