fimo 0.7.0-experimental.3 → 0.7.0-experimental.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (389) 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 +117939 -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/svelte/index.d.ts +3 -0
  206. package/dist/runtime/svelte/index.d.ts.map +1 -0
  207. package/dist/runtime/svelte/index.js +7 -0
  208. package/dist/runtime/svelte/server.d.ts +3 -0
  209. package/dist/runtime/svelte/server.d.ts.map +1 -0
  210. package/dist/runtime/svelte/server.js +6 -0
  211. package/dist/runtime/t/OptionalTracking.d.ts.map +1 -0
  212. package/dist/runtime/t/OptionalTracking.test.d.ts +2 -0
  213. package/dist/runtime/t/OptionalTracking.test.d.ts.map +1 -0
  214. package/dist/runtime/t/OptionalTracking.test.js +11 -0
  215. package/dist/runtime/t/Pageview.d.ts.map +1 -0
  216. package/dist/runtime/templates.d.ts.map +1 -0
  217. package/dist/runtime/vue/index.d.ts +3 -0
  218. package/dist/runtime/vue/index.d.ts.map +1 -0
  219. package/dist/runtime/vue/index.js +5 -0
  220. package/dist/runtime/vue/server.d.ts +3 -0
  221. package/dist/runtime/vue/server.d.ts.map +1 -0
  222. package/dist/runtime/vue/server.js +6 -0
  223. package/dist/runtime/wrapped/FimoFileLink.d.ts +17 -0
  224. package/dist/runtime/wrapped/FimoFileLink.d.ts.map +1 -0
  225. package/dist/runtime/wrapped/FimoFileLink.js +19 -0
  226. package/dist/runtime/wrapped/FimoMediaImage.d.ts +14 -0
  227. package/dist/runtime/wrapped/FimoMediaImage.d.ts.map +1 -0
  228. package/dist/runtime/wrapped/FimoMediaImage.js +20 -0
  229. package/dist/runtime/wrapped/FimoMediaVideo.d.ts +14 -0
  230. package/dist/runtime/wrapped/FimoMediaVideo.d.ts.map +1 -0
  231. package/dist/runtime/wrapped/FimoMediaVideo.js +20 -0
  232. package/dist/runtime/wrapped/FimoRichTextBlock.d.ts +23 -0
  233. package/dist/runtime/wrapped/FimoRichTextBlock.d.ts.map +1 -0
  234. package/dist/runtime/wrapped/FimoRichTextBlock.js +22 -0
  235. package/dist/runtime/wrapped/FimoText.d.ts +22 -0
  236. package/dist/runtime/wrapped/FimoText.d.ts.map +1 -0
  237. package/dist/runtime/wrapped/FimoText.js +20 -0
  238. package/dist/runtime/wrapped/WrappedContentContext.d.ts +28 -0
  239. package/dist/runtime/wrapped/WrappedContentContext.d.ts.map +1 -0
  240. package/dist/runtime/wrapped/WrappedContentContext.js +30 -0
  241. package/dist/runtime/wrapped/WrappedProviders.d.ts +33 -0
  242. package/dist/runtime/wrapped/WrappedProviders.d.ts.map +1 -0
  243. package/dist/runtime/wrapped/WrappedProviders.js +101 -0
  244. package/dist/runtime/wrapped/dom.d.ts +4 -0
  245. package/dist/runtime/wrapped/dom.d.ts.map +1 -0
  246. package/dist/runtime/wrapped/dom.js +23 -0
  247. package/dist/runtime/wrapped/dom.test.d.ts +2 -0
  248. package/dist/runtime/wrapped/dom.test.d.ts.map +1 -0
  249. package/dist/runtime/wrapped/dom.test.js +16 -0
  250. package/dist/runtime/wrapped/server.d.ts +77 -0
  251. package/dist/runtime/wrapped/server.d.ts.map +1 -0
  252. package/dist/runtime/wrapped/server.js +237 -0
  253. package/dist/runtime/wrapped/server.test.d.ts +2 -0
  254. package/dist/runtime/wrapped/server.test.d.ts.map +1 -0
  255. package/dist/runtime/wrapped/server.test.js +91 -0
  256. package/dist/scripts/apply-wrap-templates.d.ts +61 -0
  257. package/dist/scripts/apply-wrap-templates.js +132 -0
  258. package/dist/scripts/apply-wrap-templates.test.js +199 -0
  259. package/dist/scripts/apply-wrap.d.ts +46 -0
  260. package/dist/scripts/apply-wrap.js +278 -0
  261. package/dist/scripts/apply-wrap.test.d.ts +1 -0
  262. package/dist/scripts/apply-wrap.test.js +226 -0
  263. package/dist/scripts/cms/discover.d.ts +2 -0
  264. package/dist/scripts/cms/discover.js +17 -0
  265. package/dist/scripts/cms/example-content.d.ts +32 -0
  266. package/dist/scripts/cms/example-content.js +87 -0
  267. package/dist/scripts/cms/example-content.test.d.ts +1 -0
  268. package/dist/scripts/cms/example-content.test.js +57 -0
  269. package/dist/scripts/cms/strapi/detect.d.ts +2 -0
  270. package/dist/scripts/cms/strapi/detect.js +185 -0
  271. package/dist/scripts/cms/strapi/detect.test.d.ts +1 -0
  272. package/dist/scripts/cms/strapi/detect.test.js +56 -0
  273. package/dist/scripts/cms/strapi/index.d.ts +3 -0
  274. package/dist/scripts/cms/strapi/index.js +15 -0
  275. package/dist/scripts/cms/strapi/list-source.d.ts +17 -0
  276. package/dist/scripts/cms/strapi/list-source.js +90 -0
  277. package/dist/scripts/cms/strapi/list-source.test.d.ts +1 -0
  278. package/dist/scripts/cms/strapi/list-source.test.js +33 -0
  279. package/dist/scripts/cms/strapi/schema-map.d.ts +9 -0
  280. package/dist/scripts/cms/strapi/schema-map.js +138 -0
  281. package/dist/scripts/cms/strapi/schema-map.test.d.ts +1 -0
  282. package/dist/scripts/cms/strapi/schema-map.test.js +87 -0
  283. package/dist/scripts/cms/types.d.ts +76 -0
  284. package/dist/scripts/cms/types.js +11 -0
  285. package/dist/scripts/detect-framework.d.ts +39 -0
  286. package/dist/scripts/detect-framework.js +133 -0
  287. package/dist/scripts/detect-framework.test.d.ts +1 -0
  288. package/dist/scripts/detect-framework.test.js +122 -0
  289. package/dist/scripts/draft-rows.d.ts +19 -0
  290. package/dist/scripts/draft-rows.js +135 -0
  291. package/dist/scripts/draft-rows.test.d.ts +1 -0
  292. package/dist/scripts/draft-rows.test.js +113 -0
  293. package/dist/scripts/draft-schemas.d.ts +27 -0
  294. package/dist/scripts/draft-schemas.js +188 -0
  295. package/dist/scripts/draft-schemas.test.d.ts +1 -0
  296. package/dist/scripts/draft-schemas.test.js +152 -0
  297. package/dist/scripts/frameworks/astro/routes.d.ts +3 -0
  298. package/dist/scripts/frameworks/astro/routes.js +55 -0
  299. package/dist/scripts/frameworks/astro/template-style.d.ts +7 -0
  300. package/dist/scripts/frameworks/astro/template-style.js +19 -0
  301. package/dist/scripts/frameworks/discover.d.ts +70 -0
  302. package/dist/scripts/frameworks/discover.js +171 -0
  303. package/dist/scripts/frameworks/next/rewire.d.ts +30 -0
  304. package/dist/scripts/frameworks/next/rewire.js +258 -0
  305. package/dist/scripts/frameworks/next/rewire.test.d.ts +1 -0
  306. package/dist/scripts/frameworks/next/rewire.test.js +134 -0
  307. package/dist/scripts/frameworks/next/routes.d.ts +17 -0
  308. package/dist/scripts/frameworks/next/routes.js +134 -0
  309. package/dist/scripts/frameworks/next/routes.test.d.ts +1 -0
  310. package/dist/scripts/frameworks/next/routes.test.js +64 -0
  311. package/dist/scripts/frameworks/next/wiring.d.ts +26 -0
  312. package/dist/scripts/frameworks/next/wiring.js +163 -0
  313. package/dist/scripts/frameworks/next/wiring.test.d.ts +1 -0
  314. package/dist/scripts/frameworks/next/wiring.test.js +146 -0
  315. package/dist/scripts/frameworks/nuxt/routes.d.ts +3 -0
  316. package/dist/scripts/frameworks/nuxt/routes.js +54 -0
  317. package/dist/scripts/frameworks/nuxt/template-style.d.ts +9 -0
  318. package/dist/scripts/frameworks/nuxt/template-style.js +27 -0
  319. package/dist/scripts/frameworks/remix/routes.d.ts +3 -0
  320. package/dist/scripts/frameworks/remix/routes.js +50 -0
  321. package/dist/scripts/frameworks/sveltekit/routes.d.ts +3 -0
  322. package/dist/scripts/frameworks/sveltekit/routes.js +50 -0
  323. package/dist/scripts/frameworks/sveltekit/template-style.d.ts +9 -0
  324. package/dist/scripts/frameworks/sveltekit/template-style.js +54 -0
  325. package/dist/scripts/frameworks/vite/routes.d.ts +15 -0
  326. package/dist/scripts/frameworks/vite/routes.js +93 -0
  327. package/dist/scripts/frameworks/vite/routes.test.d.ts +1 -0
  328. package/dist/scripts/frameworks/vite/routes.test.js +73 -0
  329. package/dist/scripts/frameworks/vite/wiring.d.ts +10 -0
  330. package/dist/scripts/frameworks/vite/wiring.js +99 -0
  331. package/dist/scripts/frameworks/vite/wiring.test.d.ts +1 -0
  332. package/dist/scripts/frameworks/vite/wiring.test.js +88 -0
  333. package/dist/scripts/generated-types.test.d.ts +1 -0
  334. package/dist/scripts/generated-types.test.js +212 -0
  335. package/dist/scripts/lib/validation-report.d.ts +1 -0
  336. package/dist/scripts/lib/validation-report.js +3 -0
  337. package/dist/scripts/lint-translation-keys.test.d.ts +1 -0
  338. package/dist/scripts/lint-translation-keys.test.js +16 -0
  339. package/dist/scripts/render-parity/capture.d.ts +56 -0
  340. package/dist/scripts/render-parity/capture.js +366 -0
  341. package/dist/scripts/render-parity/capture.test.d.ts +1 -0
  342. package/dist/scripts/render-parity/capture.test.js +306 -0
  343. package/dist/scripts/render-parity/compare.d.ts +59 -0
  344. package/dist/scripts/render-parity/compare.js +0 -0
  345. package/dist/scripts/render-parity/compare.test.d.ts +1 -0
  346. package/dist/scripts/render-parity/compare.test.js +98 -0
  347. package/dist/scripts/render-parity/normalize-html.d.ts +13 -0
  348. package/dist/scripts/render-parity/normalize-html.js +223 -0
  349. package/dist/scripts/render-parity/normalize-html.test.d.ts +1 -0
  350. package/dist/scripts/render-parity/normalize-html.test.js +58 -0
  351. package/dist/scripts/render-parity/types.d.ts +41 -0
  352. package/dist/scripts/render-parity/types.js +1 -0
  353. package/dist/scripts/resolve-routes.js +1 -1
  354. package/dist/scripts/scan-wrappable.d.ts +196 -0
  355. package/dist/scripts/scan-wrappable.js +1221 -0
  356. package/dist/scripts/scan-wrappable.test.d.ts +1 -0
  357. package/dist/scripts/scan-wrappable.test.js +502 -0
  358. package/dist/scripts/sync-schemas.test.d.ts +1 -0
  359. package/dist/scripts/sync-schemas.test.js +124 -0
  360. package/dist/scripts/validate-route-metadata.js +11 -0
  361. package/dist/scripts/validate-route-metadata.test.d.ts +1 -0
  362. package/dist/scripts/validate-route-metadata.test.js +116 -0
  363. package/dist/scripts/validate-schemas.test.d.ts +1 -0
  364. package/dist/scripts/validate-schemas.test.js +263 -0
  365. package/package.json +85 -20
  366. package/scripts/add-ext.mjs +47 -0
  367. package/scripts/bump-version.mjs +58 -0
  368. package/scripts/bundle-cli.mjs +123 -0
  369. package/scripts/install-cli.mjs +36 -0
  370. package/scripts/lib/channels.mjs +70 -0
  371. package/scripts/lib/dev-release-state.mjs +44 -0
  372. package/scripts/lib/dev-release-state.test.ts +36 -0
  373. package/scripts/lib/postinstall-onboarding.test.ts +82 -0
  374. package/scripts/lib/release-core.mjs +225 -0
  375. package/scripts/lib/release-core.test.ts +147 -0
  376. package/scripts/migration-qa-gate.test.ts +155 -0
  377. package/scripts/publish-npm.mjs +180 -0
  378. package/templates/react-router/package.json +7 -10
  379. package/templates/react-router/src/pages/Index.tsx +1 -1
  380. package/dist/runtime/content/client/createContentClient.d.ts +0 -5
  381. package/dist/runtime/content/client/createContentClient.js +0 -300
  382. package/dist/runtime/content/client/createSingletonClient.d.ts +0 -5
  383. package/dist/runtime/content/client/createSingletonClient.js +0 -108
  384. package/dist/runtime/content/client/internal.d.ts +0 -44
  385. package/dist/runtime/content/client/internal.js +0 -236
  386. package/dist/runtime/content/client/types.d.ts +0 -136
  387. package/dist/runtime/content/client/useQueryLocale.d.ts +0 -2
  388. package/dist/runtime/content/client/useQueryLocale.js +0 -6
  389. /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"}