fimo 0.9.0-experimental.1 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/skills/fimo/SKILL.md +17 -54
- package/assets/skills/fimo-cli/SKILL.md +15 -15
- package/assets/skills/fimo-cli/references/agent-setup.md +36 -53
- package/assets/skills/fimo-cli/references/agents.md +4 -4
- package/assets/skills/fimo-cli/references/content.md +2 -2
- package/assets/skills/fimo-cli/references/deploy.md +1 -1
- package/assets/skills/fimo-cli/references/forms.md +1 -1
- package/assets/skills/fimo-cli/references/init.md +16 -24
- package/assets/skills/fimo-cli/references/project-vars-and-secrets.md +14 -11
- package/assets/skills/fimo-cli/references/projects.md +1 -1
- package/assets/skills/fimo-cli/references/support.md +11 -9
- package/assets/skills/fimo-cli/references/webhooks.md +3 -1
- package/assets/skills/fimo-code/SKILL.md +67 -0
- package/assets/skills/fimo-migration/SKILL.md +2 -22
- package/assets/skills/fimo-migration/references/content.md +0 -24
- package/assets/skills/fimo-migration/references/manifest.md +0 -35
- package/assets/skills/fimo-migration/references/qa.md +2 -24
- package/assets/skills/fimo-migration/references/workflow.md +1 -12
- package/assets/skills/fimo-studio/references/visual-editing.md +3 -5
- package/assets/skills/fimo-studio/references/webhooks.md +1 -1
- package/dist/build/vite/plugins/translations.d.ts +8 -2
- package/dist/build/vite/plugins/translations.js +121 -3
- package/dist/cli/bundle.json +2 -2
- package/dist/cli/index.js +311 -1209
- package/dist/runtime/app/FimoProviders.d.ts +11 -1
- package/dist/runtime/app/FimoProviders.js +23 -2
- package/dist/runtime/content/client/createContentClient.js +2 -1
- package/dist/runtime/i18n/FimoLocaleContext.js +0 -1
- package/dist/runtime/primitives/lib/useFimoLiveValue.d.ts +3 -5
- package/dist/runtime/primitives/lib/useFimoLiveValue.js +4 -11
- package/dist/runtime/primitives/translations.d.ts +27 -1
- package/dist/runtime/primitives/translations.js +85 -7
- package/dist/runtime/shared/fimo-config.server.js +0 -1
- package/dist/runtime/shared/fimo-config.types.d.ts +0 -2
- package/dist/scripts/extract-translations.js +11 -16
- package/dist/scripts/lib/validation-report.d.ts +0 -1
- package/dist/scripts/lib/validation-report.js +0 -3
- package/dist/scripts/validate-route-metadata.js +0 -11
- package/package.json +4 -84
- package/release.json +2 -2
- package/scripts/postinstall.mjs +11 -65
- package/templates/react-router/AGENTS.md +44 -0
- package/templates/react-router/CLAUDE.md +5 -0
- package/templates/react-router/package.json +1 -1
- package/assets/agents-starter/AGENTS.md +0 -66
- package/assets/skills/fimo-migration/references/wrap.md +0 -617
- package/dist/runtime/astro/index.d.ts +0 -2
- package/dist/runtime/astro/index.js +0 -3
- package/dist/runtime/astro/server.d.ts +0 -3
- package/dist/runtime/astro/server.js +0 -6
- package/dist/runtime/next/FimoNextProviders.d.ts +0 -24
- package/dist/runtime/next/FimoNextProviders.js +0 -20
- package/dist/runtime/next/FimoNextScripts.d.ts +0 -10
- package/dist/runtime/next/FimoNextScripts.js +0 -19
- package/dist/runtime/next/index.d.ts +0 -14
- package/dist/runtime/next/index.js +0 -14
- package/dist/runtime/next/server.d.ts +0 -2
- package/dist/runtime/next/server.js +0 -4
- package/dist/runtime/nuxt/composables.d.ts +0 -9
- package/dist/runtime/nuxt/composables.js +0 -57
- package/dist/runtime/nuxt/index.d.ts +0 -3
- package/dist/runtime/nuxt/index.js +0 -6
- package/dist/runtime/nuxt/server.d.ts +0 -3
- package/dist/runtime/nuxt/server.js +0 -6
- package/dist/runtime/primitives/labels-hook.d.ts +0 -33
- package/dist/runtime/primitives/labels-hook.js +0 -41
- package/dist/runtime/primitives/labels-store.d.ts +0 -12
- package/dist/runtime/primitives/labels-store.js +0 -60
- package/dist/runtime/react/FimoSpaProviders.d.ts +0 -36
- package/dist/runtime/react/FimoSpaProviders.js +0 -63
- package/dist/runtime/react/index.d.ts +0 -33
- package/dist/runtime/react/index.js +0 -39
- package/dist/runtime/remix/FimoRemixProviders.d.ts +0 -16
- package/dist/runtime/remix/FimoRemixProviders.js +0 -12
- package/dist/runtime/remix/FimoRemixScripts.d.ts +0 -10
- package/dist/runtime/remix/FimoRemixScripts.js +0 -19
- package/dist/runtime/remix/index.d.ts +0 -12
- package/dist/runtime/remix/index.js +0 -11
- package/dist/runtime/remix/server.d.ts +0 -2
- package/dist/runtime/remix/server.js +0 -2
- package/dist/runtime/shared/display-routes.d.ts +0 -14
- package/dist/runtime/shared/display-routes.js +0 -25
- package/dist/runtime/shared/i18n-messages.d.ts +0 -29
- package/dist/runtime/shared/i18n-messages.js +0 -79
- package/dist/runtime/shared/labels-fetch.pure.d.ts +0 -17
- package/dist/runtime/shared/labels-fetch.pure.js +0 -71
- package/dist/runtime/shared/labels-fetch.server.d.ts +0 -7
- package/dist/runtime/shared/labels-fetch.server.js +0 -97
- package/dist/runtime/shared/labels-t.pure.d.ts +0 -2
- package/dist/runtime/shared/labels-t.pure.js +0 -10
- package/dist/runtime/strapi/client.d.ts +0 -30
- package/dist/runtime/strapi/client.js +0 -89
- package/dist/runtime/strapi/index.d.ts +0 -5
- package/dist/runtime/strapi/index.js +0 -6
- package/dist/runtime/strapi/reshape.d.ts +0 -46
- package/dist/runtime/strapi/reshape.js +0 -114
- package/dist/runtime/svelte/index.d.ts +0 -3
- package/dist/runtime/svelte/index.js +0 -7
- package/dist/runtime/svelte/server.d.ts +0 -3
- package/dist/runtime/svelte/server.js +0 -6
- package/dist/runtime/vue/index.d.ts +0 -3
- package/dist/runtime/vue/index.js +0 -5
- package/dist/runtime/vue/server.d.ts +0 -3
- package/dist/runtime/vue/server.js +0 -6
- package/dist/runtime/wrapped/FimoFileLink.d.ts +0 -17
- package/dist/runtime/wrapped/FimoFileLink.js +0 -19
- package/dist/runtime/wrapped/FimoMediaImage.d.ts +0 -14
- package/dist/runtime/wrapped/FimoMediaImage.js +0 -20
- package/dist/runtime/wrapped/FimoMediaVideo.d.ts +0 -14
- package/dist/runtime/wrapped/FimoMediaVideo.js +0 -20
- package/dist/runtime/wrapped/FimoRichTextBlock.d.ts +0 -23
- package/dist/runtime/wrapped/FimoRichTextBlock.js +0 -22
- package/dist/runtime/wrapped/FimoText.d.ts +0 -22
- package/dist/runtime/wrapped/FimoText.js +0 -20
- package/dist/runtime/wrapped/WrappedContentContext.d.ts +0 -28
- package/dist/runtime/wrapped/WrappedContentContext.js +0 -30
- package/dist/runtime/wrapped/WrappedProviders.d.ts +0 -33
- package/dist/runtime/wrapped/WrappedProviders.js +0 -101
- package/dist/runtime/wrapped/dom.d.ts +0 -4
- package/dist/runtime/wrapped/dom.js +0 -23
- package/dist/runtime/wrapped/server.d.ts +0 -77
- package/dist/runtime/wrapped/server.js +0 -237
- package/dist/scripts/apply-wrap-templates.d.ts +0 -61
- package/dist/scripts/apply-wrap-templates.js +0 -132
- package/dist/scripts/apply-wrap.d.ts +0 -46
- package/dist/scripts/apply-wrap.js +0 -278
- package/dist/scripts/cms/discover.d.ts +0 -2
- package/dist/scripts/cms/discover.js +0 -17
- package/dist/scripts/cms/example-content.d.ts +0 -33
- package/dist/scripts/cms/example-content.js +0 -162
- package/dist/scripts/cms/strapi/detect.d.ts +0 -2
- package/dist/scripts/cms/strapi/detect.js +0 -186
- package/dist/scripts/cms/strapi/index.d.ts +0 -3
- package/dist/scripts/cms/strapi/index.js +0 -25
- package/dist/scripts/cms/strapi/list-source.d.ts +0 -17
- package/dist/scripts/cms/strapi/list-source.js +0 -90
- package/dist/scripts/cms/strapi/schema-map.d.ts +0 -9
- package/dist/scripts/cms/strapi/schema-map.js +0 -277
- package/dist/scripts/cms/strapi/shapes.d.ts +0 -23
- package/dist/scripts/cms/strapi/shapes.js +0 -38
- package/dist/scripts/cms/strapi/touchpoints.d.ts +0 -31
- package/dist/scripts/cms/strapi/touchpoints.js +0 -145
- package/dist/scripts/cms/strapi/wire-client.d.ts +0 -15
- package/dist/scripts/cms/strapi/wire-client.js +0 -107
- package/dist/scripts/cms/strapi/wiring.d.ts +0 -17
- package/dist/scripts/cms/strapi/wiring.js +0 -46
- package/dist/scripts/cms/types.d.ts +0 -145
- package/dist/scripts/cms/types.js +0 -11
- package/dist/scripts/detect-framework.d.ts +0 -39
- package/dist/scripts/detect-framework.js +0 -133
- package/dist/scripts/draft-rows.d.ts +0 -19
- package/dist/scripts/draft-rows.js +0 -135
- package/dist/scripts/draft-schemas.d.ts +0 -27
- package/dist/scripts/draft-schemas.js +0 -188
- package/dist/scripts/frameworks/astro/routes.d.ts +0 -3
- package/dist/scripts/frameworks/astro/routes.js +0 -55
- package/dist/scripts/frameworks/astro/template-style.d.ts +0 -7
- package/dist/scripts/frameworks/astro/template-style.js +0 -19
- package/dist/scripts/frameworks/discover.d.ts +0 -70
- package/dist/scripts/frameworks/discover.js +0 -178
- package/dist/scripts/frameworks/next/rewire.d.ts +0 -30
- package/dist/scripts/frameworks/next/rewire.js +0 -258
- package/dist/scripts/frameworks/next/routes.d.ts +0 -17
- package/dist/scripts/frameworks/next/routes.js +0 -134
- package/dist/scripts/frameworks/next/wiring.d.ts +0 -33
- package/dist/scripts/frameworks/next/wiring.js +0 -186
- package/dist/scripts/frameworks/nuxt/routes.d.ts +0 -3
- package/dist/scripts/frameworks/nuxt/routes.js +0 -54
- package/dist/scripts/frameworks/nuxt/template-style.d.ts +0 -9
- package/dist/scripts/frameworks/nuxt/template-style.js +0 -27
- package/dist/scripts/frameworks/remix/routes.d.ts +0 -3
- package/dist/scripts/frameworks/remix/routes.js +0 -50
- package/dist/scripts/frameworks/support.d.ts +0 -75
- package/dist/scripts/frameworks/support.js +0 -165
- package/dist/scripts/frameworks/sveltekit/routes.d.ts +0 -3
- package/dist/scripts/frameworks/sveltekit/routes.js +0 -50
- package/dist/scripts/frameworks/sveltekit/template-style.d.ts +0 -9
- package/dist/scripts/frameworks/sveltekit/template-style.js +0 -54
- package/dist/scripts/frameworks/vite/routes.d.ts +0 -15
- package/dist/scripts/frameworks/vite/routes.js +0 -93
- package/dist/scripts/frameworks/vite/wiring.d.ts +0 -10
- package/dist/scripts/frameworks/vite/wiring.js +0 -99
- package/dist/scripts/i18n-namespace.d.ts +0 -27
- package/dist/scripts/i18n-namespace.js +0 -155
- package/dist/scripts/render-parity/capture.d.ts +0 -56
- package/dist/scripts/render-parity/capture.js +0 -366
- package/dist/scripts/render-parity/compare.d.ts +0 -59
- package/dist/scripts/render-parity/compare.js +0 -0
- package/dist/scripts/render-parity/normalize-html.d.ts +0 -13
- package/dist/scripts/render-parity/normalize-html.js +0 -223
- package/dist/scripts/render-parity/types.d.ts +0 -41
- package/dist/scripts/render-parity/types.js +0 -1
- package/dist/scripts/scan-wrappable.d.ts +0 -196
- package/dist/scripts/scan-wrappable.js +0 -1232
- /package/assets/skills/{fimo → fimo-code}/assets/react-router-locales/navigation.tsx +0 -0
- /package/assets/skills/{fimo → fimo-code}/assets/react-router-locales/routes.ts +0 -0
- /package/assets/skills/{fimo → fimo-code}/references/assets.md +0 -0
- /package/assets/skills/{fimo → fimo-code}/references/content.md +0 -0
- /package/assets/skills/{fimo → fimo-code}/references/design.md +0 -0
- /package/assets/skills/{fimo → fimo-code}/references/forms.md +0 -0
- /package/assets/skills/{fimo → fimo-code}/references/labels.md +0 -0
- /package/assets/skills/{fimo → fimo-code}/references/locales.md +0 -0
- /package/assets/skills/{fimo → fimo-code}/references/setup-plain-vite.md +0 -0
- /package/assets/skills/{fimo → fimo-code}/references/setup-react-router.md +0 -0
- /package/assets/skills/{fimo → fimo-code}/references/ui.md +0 -0
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
// fimo/svelte/server — SvelteKit adapter, server surface. The loaders are
|
|
2
|
-
// framework-neutral (SvelteKit needs no React): call them in server-side code
|
|
3
|
-
// (frontmatter / load functions / useAsyncData) and render values with the
|
|
4
|
-
// DOM attribute helpers so edit mode can select the elements.
|
|
5
|
-
export * from '../wrapped/server.js';
|
|
6
|
-
export { fimoLabelAttrs, fimoMediaAttrs } from '../wrapped/dom.js';
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
// fimo/vue — CLIENT-SAFE surface for Vue SFCs (same rule as fimo/svelte:
|
|
2
|
-
// never re-export the server barrel from a surface component code imports).
|
|
3
|
-
// Server loaders live in fimo/vue/server.
|
|
4
|
-
export { fimoLabelAttrs, fimoMediaAttrs, FIMO_SOURCE_ATTR } from '../wrapped/dom.js';
|
|
5
|
-
export { makeFimoT } from '../shared/labels-t.pure.js';
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
// fimo/vue/server — Vue adapter, server surface. The loaders are
|
|
2
|
-
// framework-neutral (Vue needs no React): call them in server-side code
|
|
3
|
-
// (frontmatter / load functions / useAsyncData) and render values with the
|
|
4
|
-
// DOM attribute helpers so edit mode can select the elements.
|
|
5
|
-
export * from '../wrapped/server.js';
|
|
6
|
-
export { fimoLabelAttrs, fimoMediaAttrs } from '../wrapped/dom.js';
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
|
|
2
|
-
type FimoFileLinkProps = Omit<ComponentPropsWithoutRef<'a'>, 'id'> & {
|
|
3
|
-
/** WrappedMedia entry key, e.g. `home.whitepaper`. Seeded at migration time. */
|
|
4
|
-
id: string;
|
|
5
|
-
children?: ReactNode;
|
|
6
|
-
};
|
|
7
|
-
/**
|
|
8
|
-
* Wraps a hardcoded file link (pdf, zip, ...) so the file becomes replaceable
|
|
9
|
-
* in Fimo. The original `href` stays in code as the fallback:
|
|
10
|
-
*
|
|
11
|
-
* <FimoFileLink id="home.whitepaper" href="/whitepaper.pdf">
|
|
12
|
-
* <FimoText id="home.whitepaper.cta">Download the whitepaper</FimoText>
|
|
13
|
-
* </FimoFileLink>
|
|
14
|
-
*/
|
|
15
|
-
export declare function FimoFileLink({ id, href, children, ...props }: FimoFileLinkProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
-
export {};
|
|
17
|
-
//# sourceMappingURL=FimoFileLink.d.ts.map
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
import { FIMO_SOURCE } from '../primitives/lib/index.js';
|
|
4
|
-
import { useWrappedMedia } from './WrappedContentContext.js';
|
|
5
|
-
/**
|
|
6
|
-
* Wraps a hardcoded file link (pdf, zip, ...) so the file becomes replaceable
|
|
7
|
-
* in Fimo. The original `href` stays in code as the fallback:
|
|
8
|
-
*
|
|
9
|
-
* <FimoFileLink id="home.whitepaper" href="/whitepaper.pdf">
|
|
10
|
-
* <FimoText id="home.whitepaper.cta">Download the whitepaper</FimoText>
|
|
11
|
-
* </FimoFileLink>
|
|
12
|
-
*/
|
|
13
|
-
export function FimoFileLink({ id, href, children, ...props }) {
|
|
14
|
-
const media = useWrappedMedia(id);
|
|
15
|
-
if (media) {
|
|
16
|
-
return (_jsx("a", { href: media.url, "data-fimo-source": media[FIMO_SOURCE], ...props, children: children }));
|
|
17
|
-
}
|
|
18
|
-
return (_jsx("a", { href: href, ...props, children: children }));
|
|
19
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { type ComponentPropsWithoutRef } from 'react';
|
|
2
|
-
type FimoMediaImageProps = Omit<ComponentPropsWithoutRef<'img'>, 'id' | 'children'> & {
|
|
3
|
-
/** WrappedMedia entry key, e.g. `home.hero.image`. Seeded at migration time. */
|
|
4
|
-
id: string;
|
|
5
|
-
};
|
|
6
|
-
/**
|
|
7
|
-
* Wraps a hardcoded image so it becomes replaceable in Fimo. The original
|
|
8
|
-
* `src` stays in code as the fallback until the WrappedMedia entry resolves:
|
|
9
|
-
*
|
|
10
|
-
* <FimoMediaImage id="home.hero.image" src="/images/dashboard.png" alt="Dashboard" width={1200} height={630} />
|
|
11
|
-
*/
|
|
12
|
-
export declare function FimoMediaImage({ id, src, alt, ...props }: FimoMediaImageProps): import("react/jsx-runtime").JSX.Element | null;
|
|
13
|
-
export {};
|
|
14
|
-
//# sourceMappingURL=FimoMediaImage.d.ts.map
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
import { Image } from '../primitives/components/Image.js';
|
|
4
|
-
import { useWrappedMedia } from './WrappedContentContext.js';
|
|
5
|
-
/**
|
|
6
|
-
* Wraps a hardcoded image so it becomes replaceable in Fimo. The original
|
|
7
|
-
* `src` stays in code as the fallback until the WrappedMedia entry resolves:
|
|
8
|
-
*
|
|
9
|
-
* <FimoMediaImage id="home.hero.image" src="/images/dashboard.png" alt="Dashboard" width={1200} height={630} />
|
|
10
|
-
*/
|
|
11
|
-
export function FimoMediaImage({ id, src, alt, ...props }) {
|
|
12
|
-
const media = useWrappedMedia(id);
|
|
13
|
-
if (media) {
|
|
14
|
-
return _jsx(Image, { value: media, alt: alt, ...props });
|
|
15
|
-
}
|
|
16
|
-
if (!src) {
|
|
17
|
-
return null;
|
|
18
|
-
}
|
|
19
|
-
return _jsx("img", { src: src, alt: alt, ...props });
|
|
20
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { type ComponentPropsWithoutRef } from 'react';
|
|
2
|
-
type FimoMediaVideoProps = Omit<ComponentPropsWithoutRef<'video'>, 'id' | 'children'> & {
|
|
3
|
-
/** WrappedMedia entry key, e.g. `home.demo.video`. Seeded at migration time. */
|
|
4
|
-
id: string;
|
|
5
|
-
};
|
|
6
|
-
/**
|
|
7
|
-
* Wraps a hardcoded video so it becomes replaceable in Fimo. The original
|
|
8
|
-
* `src` stays in code as the fallback until the WrappedMedia entry resolves:
|
|
9
|
-
*
|
|
10
|
-
* <FimoMediaVideo id="home.demo.video" src="/demo.mp4" autoPlay muted loop />
|
|
11
|
-
*/
|
|
12
|
-
export declare function FimoMediaVideo({ id, src, autoPlay, loop, muted, playsInline, ...props }: FimoMediaVideoProps): import("react/jsx-runtime").JSX.Element | null;
|
|
13
|
-
export {};
|
|
14
|
-
//# sourceMappingURL=FimoMediaVideo.d.ts.map
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
import { Video } from '../primitives/components/Video.js';
|
|
4
|
-
import { useWrappedMedia } from './WrappedContentContext.js';
|
|
5
|
-
/**
|
|
6
|
-
* Wraps a hardcoded video so it becomes replaceable in Fimo. The original
|
|
7
|
-
* `src` stays in code as the fallback until the WrappedMedia entry resolves:
|
|
8
|
-
*
|
|
9
|
-
* <FimoMediaVideo id="home.demo.video" src="/demo.mp4" autoPlay muted loop />
|
|
10
|
-
*/
|
|
11
|
-
export function FimoMediaVideo({ id, src, autoPlay, loop, muted, playsInline, ...props }) {
|
|
12
|
-
const media = useWrappedMedia(id);
|
|
13
|
-
if (media) {
|
|
14
|
-
return _jsx(Video, { value: media, autoPlay: autoPlay, loop: loop, muted: muted, playsInline: playsInline, ...props });
|
|
15
|
-
}
|
|
16
|
-
if (!src) {
|
|
17
|
-
return null;
|
|
18
|
-
}
|
|
19
|
-
return _jsx("video", { src: src, autoPlay: autoPlay, loop: loop, muted: muted, playsInline: playsInline, ...props });
|
|
20
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { type ReactNode } from 'react';
|
|
2
|
-
import { type FimoRichTextComponents } from '../primitives/lib/index.js';
|
|
3
|
-
interface FimoRichTextBlockProps {
|
|
4
|
-
/** WrappedRichText entry key, e.g. `home.hero.subtitle`. Seeded at migration time. */
|
|
5
|
-
id: string;
|
|
6
|
-
/** The original formatted markup — rendered when the entry is absent. */
|
|
7
|
-
children?: ReactNode;
|
|
8
|
-
components?: FimoRichTextComponents;
|
|
9
|
-
className?: string;
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Wraps formatted text (bold, italic, underline, links) so it becomes
|
|
13
|
-
* editable with marks in Fimo. Seeding converts the original markup to
|
|
14
|
-
* TipTap JSON; the renderer emits the same tags back. The original JSX
|
|
15
|
-
* stays in code as the fallback:
|
|
16
|
-
*
|
|
17
|
-
* <FimoRichTextBlock id="home.hero.subtitle">
|
|
18
|
-
* <p>We help teams <strong>ship faster</strong> and <em>stay safe</em>.</p>
|
|
19
|
-
* </FimoRichTextBlock>
|
|
20
|
-
*/
|
|
21
|
-
export declare function FimoRichTextBlock({ id, children, components, className }: FimoRichTextBlockProps): import("react/jsx-runtime").JSX.Element;
|
|
22
|
-
export {};
|
|
23
|
-
//# sourceMappingURL=FimoRichTextBlock.d.ts.map
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
import { RichText } from '../primitives/components/RichText.js';
|
|
4
|
-
import { FimoRichText } from '../primitives/lib/index.js';
|
|
5
|
-
import { useWrappedRichText } from './WrappedContentContext.js';
|
|
6
|
-
/**
|
|
7
|
-
* Wraps formatted text (bold, italic, underline, links) so it becomes
|
|
8
|
-
* editable with marks in Fimo. Seeding converts the original markup to
|
|
9
|
-
* TipTap JSON; the renderer emits the same tags back. The original JSX
|
|
10
|
-
* stays in code as the fallback:
|
|
11
|
-
*
|
|
12
|
-
* <FimoRichTextBlock id="home.hero.subtitle">
|
|
13
|
-
* <p>We help teams <strong>ship faster</strong> and <em>stay safe</em>.</p>
|
|
14
|
-
* </FimoRichTextBlock>
|
|
15
|
-
*/
|
|
16
|
-
export function FimoRichTextBlock({ id, children, components, className }) {
|
|
17
|
-
const entry = useWrappedRichText(id);
|
|
18
|
-
if (!entry) {
|
|
19
|
-
return _jsx(_Fragment, { children: children });
|
|
20
|
-
}
|
|
21
|
-
return (_jsx(RichText, { value: new FimoRichText(entry.content, entry.source), components: components, className: className }));
|
|
22
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { type ComponentPropsWithoutRef, type ElementType } from 'react';
|
|
2
|
-
type FimoTextProps<T extends ElementType = 'span'> = {
|
|
3
|
-
/** Label key, e.g. `home.hero.title`. Seeded at migration time. */
|
|
4
|
-
id: string;
|
|
5
|
-
/** The original hardcoded string — rendered when the key has no value. */
|
|
6
|
-
children?: string;
|
|
7
|
-
as?: T;
|
|
8
|
-
} & Omit<ComponentPropsWithoutRef<T>, 'id' | 'as' | 'children'>;
|
|
9
|
-
/**
|
|
10
|
-
* Wraps a hardcoded string so it becomes editable in Fimo. The original
|
|
11
|
-
* string stays in code as the fallback:
|
|
12
|
-
*
|
|
13
|
-
* <h1><FimoText id="home.hero.title">Ship your site in hours</FimoText></h1>
|
|
14
|
-
*
|
|
15
|
-
* For attribute strings use the two-argument label function instead:
|
|
16
|
-
*
|
|
17
|
-
* const { t } = useLabels();
|
|
18
|
-
* <input placeholder={String(t('home.newsletter.placeholder', 'Your work email'))} />
|
|
19
|
-
*/
|
|
20
|
-
export declare function FimoText<T extends ElementType = 'span'>({ id, children, as, ...props }: FimoTextProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
21
|
-
export {};
|
|
22
|
-
//# sourceMappingURL=FimoText.d.ts.map
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
import { Text } from '../primitives/components/Text.js';
|
|
4
|
-
import { useLabels } from '../primitives/labels-hook.js';
|
|
5
|
-
/**
|
|
6
|
-
* Wraps a hardcoded string so it becomes editable in Fimo. The original
|
|
7
|
-
* string stays in code as the fallback:
|
|
8
|
-
*
|
|
9
|
-
* <h1><FimoText id="home.hero.title">Ship your site in hours</FimoText></h1>
|
|
10
|
-
*
|
|
11
|
-
* For attribute strings use the two-argument label function instead:
|
|
12
|
-
*
|
|
13
|
-
* const { t } = useLabels();
|
|
14
|
-
* <input placeholder={String(t('home.newsletter.placeholder', 'Your work email'))} />
|
|
15
|
-
*/
|
|
16
|
-
export function FimoText({ id, children, as, ...props }) {
|
|
17
|
-
const { t } = useLabels();
|
|
18
|
-
const textProps = { value: t(id, children), as, ...props };
|
|
19
|
-
return _jsx(Text, { ...textProps });
|
|
20
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { FIMO_SOURCE, FimoMedia, type FimoRichTextContent } from '../primitives/lib/index.js';
|
|
3
|
-
export interface WrappedMediaEntry {
|
|
4
|
-
url: string;
|
|
5
|
-
alt?: string;
|
|
6
|
-
name?: string;
|
|
7
|
-
mime?: string;
|
|
8
|
-
width?: number;
|
|
9
|
-
height?: number;
|
|
10
|
-
/** data-fimo-source path, e.g. `WrappedMedia.<entryId>.image` */
|
|
11
|
-
source: string;
|
|
12
|
-
}
|
|
13
|
-
export interface WrappedRichTextEntry {
|
|
14
|
-
content: FimoRichTextContent;
|
|
15
|
-
/** data-fimo-source path, e.g. `WrappedRichText.<entryId>.body` */
|
|
16
|
-
source: string;
|
|
17
|
-
}
|
|
18
|
-
export interface WrappedContentValue {
|
|
19
|
-
media: Record<string, WrappedMediaEntry>;
|
|
20
|
-
richText: Record<string, WrappedRichTextEntry>;
|
|
21
|
-
}
|
|
22
|
-
export declare function WrappedContentProvider({ media, richText, children, }: Partial<WrappedContentValue> & {
|
|
23
|
-
children?: React.ReactNode;
|
|
24
|
-
}): import("react/jsx-runtime").JSX.Element;
|
|
25
|
-
export declare function useWrappedMedia(id: string): FimoMedia | null;
|
|
26
|
-
export declare function useWrappedRichText(id: string): WrappedRichTextEntry | null;
|
|
27
|
-
export { FIMO_SOURCE };
|
|
28
|
-
//# sourceMappingURL=WrappedContentContext.d.ts.map
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
import { createContext, useContext, useMemo } from 'react';
|
|
4
|
-
import { FIMO_SOURCE, FimoMedia } from '../primitives/lib/index.js';
|
|
5
|
-
const emptyValue = { media: {}, richText: {} };
|
|
6
|
-
const WrappedContentContext = createContext(emptyValue);
|
|
7
|
-
export function WrappedContentProvider({ media, richText, children, }) {
|
|
8
|
-
const value = useMemo(() => ({ media: media ?? {}, richText: richText ?? {} }), [media, richText]);
|
|
9
|
-
return _jsx(WrappedContentContext.Provider, { value: value, children: children });
|
|
10
|
-
}
|
|
11
|
-
export function useWrappedMedia(id) {
|
|
12
|
-
const { media } = useContext(WrappedContentContext);
|
|
13
|
-
const entry = media[id];
|
|
14
|
-
if (!entry) {
|
|
15
|
-
return null;
|
|
16
|
-
}
|
|
17
|
-
return new FimoMedia({
|
|
18
|
-
url: entry.url,
|
|
19
|
-
alt: entry.alt ?? '',
|
|
20
|
-
name: entry.name ?? id,
|
|
21
|
-
mime: entry.mime ?? '',
|
|
22
|
-
width: entry.width,
|
|
23
|
-
height: entry.height,
|
|
24
|
-
}, entry.source);
|
|
25
|
-
}
|
|
26
|
-
export function useWrappedRichText(id) {
|
|
27
|
-
const { richText } = useContext(WrappedContentContext);
|
|
28
|
-
return richText[id] ?? null;
|
|
29
|
-
}
|
|
30
|
-
export { FIMO_SOURCE };
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { FimoConfig } from '../shared/fimo-config.types.js';
|
|
3
|
-
import { type WrappedMediaEntry, type WrappedRichTextEntry } from './WrappedContentContext.js';
|
|
4
|
-
export interface WrappedLabels {
|
|
5
|
-
dictionaries: Record<string, Record<string, string>>;
|
|
6
|
-
defaultLocale: string;
|
|
7
|
-
locales?: string[];
|
|
8
|
-
updatedAt?: string | null;
|
|
9
|
-
signature: string;
|
|
10
|
-
}
|
|
11
|
-
/** Framework navigation adapter: the ONLY thing an adapter must supply. */
|
|
12
|
-
export interface WrappedNavigation {
|
|
13
|
-
pathname: string | null;
|
|
14
|
-
navigate: (to: string) => void;
|
|
15
|
-
}
|
|
16
|
-
export interface WrappedProvidersProps {
|
|
17
|
-
config: FimoConfig;
|
|
18
|
-
labels?: WrappedLabels;
|
|
19
|
-
media?: Record<string, WrappedMediaEntry>;
|
|
20
|
-
richText?: Record<string, WrappedRichTextEntry>;
|
|
21
|
-
locale?: string;
|
|
22
|
-
navigation: WrappedNavigation;
|
|
23
|
-
children?: React.ReactNode;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Framework-neutral providers for WRAPPED (adopted) apps. Adapters
|
|
27
|
-
* (fimo/next, fimo/remix, ...) supply only the navigation hooks; everything
|
|
28
|
-
* else — label hydration, locale resolution, preview bridge, error boundary —
|
|
29
|
-
* is shared. Content arrives as serializable props from the wrapped server
|
|
30
|
-
* loaders.
|
|
31
|
-
*/
|
|
32
|
-
export declare function WrappedProviders({ config, labels, media, richText, locale, navigation, children }: WrappedProvidersProps): import("react/jsx-runtime").JSX.Element;
|
|
33
|
-
//# sourceMappingURL=WrappedProviders.d.ts.map
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
|
|
4
|
-
import { Suspense, useCallback, useEffect, useMemo, useState } from 'react';
|
|
5
|
-
import { ErrorBoundary } from 'react-error-boundary';
|
|
6
|
-
import { DataSourcesProvider } from '../content/DataSourcesProvider.js';
|
|
7
|
-
import { AppErrorBoundary, onError } from '../core/AppErrorBoundary.js';
|
|
8
|
-
import { FimoLocaleProvider } from '../i18n/FimoLocaleContext.js';
|
|
9
|
-
import { getFimoTextDirection, resolveFimoLocale, toHtmlLang } from '../i18n/locale.js';
|
|
10
|
-
import { ScreenshotProvider } from '../iframe/ScreenshotProvider.js';
|
|
11
|
-
import { hydrateLabels } from '../primitives/labels-store.js';
|
|
12
|
-
import { getDisplayRoutes } from '../shared/display-routes.js';
|
|
13
|
-
import { WrappedContentProvider } from './WrappedContentContext.js';
|
|
14
|
-
function toLabelState(labels) {
|
|
15
|
-
return {
|
|
16
|
-
dictionaries: labels.dictionaries,
|
|
17
|
-
defaultLocale: labels.defaultLocale,
|
|
18
|
-
signature: labels.signature,
|
|
19
|
-
updatedAt: labels.updatedAt ?? null,
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
function PreviewBridge({ config, navigation }) {
|
|
23
|
-
const { pathname, navigate } = navigation;
|
|
24
|
-
const localeResolution = useMemo(() => resolveFimoLocale({ pathname: pathname ?? undefined }, config), [pathname, config]);
|
|
25
|
-
const sendRoutes = useCallback(() => {
|
|
26
|
-
window.parent.postMessage({ type: 'nav/routes', payload: { routes: getDisplayRoutes(config) } }, '*');
|
|
27
|
-
}, [config]);
|
|
28
|
-
const sendLocationChange = useCallback(() => {
|
|
29
|
-
window.parent.postMessage({
|
|
30
|
-
type: 'nav/locationChange',
|
|
31
|
-
payload: {
|
|
32
|
-
path: pathname,
|
|
33
|
-
routePath: localeResolution.routePath,
|
|
34
|
-
locale: localeResolution.locale,
|
|
35
|
-
},
|
|
36
|
-
}, '*');
|
|
37
|
-
}, [pathname, localeResolution.locale, localeResolution.routePath]);
|
|
38
|
-
useEffect(sendRoutes, [sendRoutes]);
|
|
39
|
-
useEffect(sendLocationChange, [sendLocationChange]);
|
|
40
|
-
useEffect(() => {
|
|
41
|
-
const handleMessage = (event) => {
|
|
42
|
-
const type = event.data?.type;
|
|
43
|
-
const payload = event.data?.payload;
|
|
44
|
-
switch (type) {
|
|
45
|
-
case 'nav/navigate':
|
|
46
|
-
if (payload?.to) {
|
|
47
|
-
navigate(payload.to);
|
|
48
|
-
}
|
|
49
|
-
return;
|
|
50
|
-
case 'nav/read-routes':
|
|
51
|
-
sendRoutes();
|
|
52
|
-
sendLocationChange();
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
};
|
|
56
|
-
window.addEventListener('message', handleMessage);
|
|
57
|
-
return () => {
|
|
58
|
-
window.removeEventListener('message', handleMessage);
|
|
59
|
-
};
|
|
60
|
-
}, [navigate, sendRoutes, sendLocationChange]);
|
|
61
|
-
return null;
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Framework-neutral providers for WRAPPED (adopted) apps. Adapters
|
|
65
|
-
* (fimo/next, fimo/remix, ...) supply only the navigation hooks; everything
|
|
66
|
-
* else — label hydration, locale resolution, preview bridge, error boundary —
|
|
67
|
-
* is shared. Content arrives as serializable props from the wrapped server
|
|
68
|
-
* loaders.
|
|
69
|
-
*/
|
|
70
|
-
export function WrappedProviders({ config, labels, media, richText, locale, navigation, children }) {
|
|
71
|
-
// Wrapped apps have no QueryClientProvider of their own; ScreenshotProvider
|
|
72
|
-
// (and future data-refresh machinery) need one, so the adapter owns it.
|
|
73
|
-
const [queryClient] = useState(() => new QueryClient());
|
|
74
|
-
useState(() => {
|
|
75
|
-
if (labels) {
|
|
76
|
-
hydrateLabels(toLabelState(labels));
|
|
77
|
-
}
|
|
78
|
-
return null;
|
|
79
|
-
});
|
|
80
|
-
useEffect(() => {
|
|
81
|
-
if (labels) {
|
|
82
|
-
hydrateLabels(toLabelState(labels));
|
|
83
|
-
}
|
|
84
|
-
}, [labels]);
|
|
85
|
-
const pathname = navigation.pathname;
|
|
86
|
-
const localeResolution = useMemo(() => resolveFimoLocale({ pathname: pathname ?? undefined }, config), [pathname, config]);
|
|
87
|
-
const activeLocale = locale ?? localeResolution.locale;
|
|
88
|
-
const activeDir = getFimoTextDirection(activeLocale);
|
|
89
|
-
useEffect(() => {
|
|
90
|
-
if (typeof document === 'undefined') {
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
document.documentElement.lang = toHtmlLang(activeLocale);
|
|
94
|
-
document.documentElement.dir = activeDir;
|
|
95
|
-
}, [activeDir, activeLocale]);
|
|
96
|
-
return (_jsx(ErrorBoundary, { FallbackComponent: AppErrorBoundary, onError: onError, children: _jsx(QueryClientProvider, { client: queryClient, children: _jsx(FimoLocaleProvider, { value: {
|
|
97
|
-
...localeResolution,
|
|
98
|
-
locale: activeLocale,
|
|
99
|
-
dir: activeDir,
|
|
100
|
-
}, children: _jsx(WrappedContentProvider, { media: media, richText: richText, children: _jsx(DataSourcesProvider, { children: _jsxs(ScreenshotProvider, { children: [_jsx(PreviewBridge, { config: config, navigation: navigation }), _jsx(Suspense, { children: children })] }) }) }) }) }) }));
|
|
101
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
// Framework-agnostic DOM contract for wrapped content in NON-React
|
|
2
|
-
// frameworks (Astro templates, Vue SFCs, Svelte components). The edit-mode
|
|
3
|
-
// preview client selects elements by these attributes; rendering the value +
|
|
4
|
-
// attributes is all a template needs:
|
|
5
|
-
//
|
|
6
|
-
// Astro: <h1 {...fimoLabelAttrs('home.title')}>{t('home.title', 'Hello')}</h1>
|
|
7
|
-
// Vue: <h1 v-bind="fimoLabelAttrs('home.title')">{{ t('home.title', 'Hello') }}</h1>
|
|
8
|
-
// Svelte: <h1 {...fimoLabelAttrs('home.title')}>{tv}</h1>
|
|
9
|
-
//
|
|
10
|
-
// Values come from the server loaders (loadFimoT / loadWrappedMedia) — after
|
|
11
|
-
// an edit, the page refetches on reload; live DOM patching is handled by the
|
|
12
|
-
// preview client via these same attributes.
|
|
13
|
-
// NOTE: this must be the literal DOM attribute the preview client queries
|
|
14
|
-
// (`document.querySelectorAll('[data-fimo-source]')`) — NOT the FIMO_SOURCE
|
|
15
|
-
// Symbol from the React primitives: a symbol key vanishes in a template
|
|
16
|
-
// attribute spread and in JSON, silently breaking editability.
|
|
17
|
-
export const FIMO_SOURCE_ATTR = 'data-fimo-source';
|
|
18
|
-
export function fimoLabelAttrs(key, locale = 'en') {
|
|
19
|
-
return { [FIMO_SOURCE_ATTR]: `__labels.${locale}.${key}.value` };
|
|
20
|
-
}
|
|
21
|
-
export function fimoMediaAttrs(source) {
|
|
22
|
-
return { [FIMO_SOURCE_ATTR]: source };
|
|
23
|
-
}
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import type { FimoNextLabels } from '../next/FimoNextProviders.js';
|
|
2
|
-
import type { FimoConfig } from '../shared/fimo-config.types.js';
|
|
3
|
-
import type { WrappedMediaEntry, WrappedRichTextEntry } from './WrappedContentContext.js';
|
|
4
|
-
export interface FimoServerOptions {
|
|
5
|
-
/** Project root (where fimo-config.json and .env live). Defaults to cwd. */
|
|
6
|
-
rootDir?: string;
|
|
7
|
-
/** Tenant API base URL. Defaults to NEXT_PUBLIC_FIMO_API_URL / VITE_API_URL. */
|
|
8
|
-
apiUrl?: string;
|
|
9
|
-
}
|
|
10
|
-
export declare function loadFimoConfig(rootDir?: string): FimoConfig;
|
|
11
|
-
export declare function loadFimoLabels(options?: FimoServerOptions): Promise<FimoNextLabels>;
|
|
12
|
-
/**
|
|
13
|
-
* Server-component label accessor: `useLabels()` is client-only, and forcing
|
|
14
|
-
* a client wrapper for one aria-label in a server component is not a
|
|
15
|
-
* migration, it is collateral damage. Load once per request scope and read
|
|
16
|
-
* synchronously: `const t = await loadFimoT(); <a aria-label={t('footer.github', 'GitHub')} …`.
|
|
17
|
-
*/
|
|
18
|
-
export declare function loadFimoT(options?: FimoServerOptions & {
|
|
19
|
-
locale?: string;
|
|
20
|
-
}): Promise<(key: string, fallback: string) => string>;
|
|
21
|
-
export interface FimoEntry {
|
|
22
|
-
id: string;
|
|
23
|
-
data: Record<string, unknown>;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Fetch published entries of a content type from the public tenant API.
|
|
27
|
-
* Returns [] when the API is unreachable so the wrapped site keeps rendering
|
|
28
|
-
* its fallbacks.
|
|
29
|
-
*/
|
|
30
|
-
export declare function fetchEntries(typeName: string, options?: FimoServerOptions & {
|
|
31
|
-
/** The public API returns newest-first; rendering wants source order.
|
|
32
|
-
* Default 'oldest' restores insertion order for migrated collections. */
|
|
33
|
-
order?: 'oldest' | 'newest';
|
|
34
|
-
/** Query filter forwarded to the public API (e.g. { slug: { $in: [...] } }). */
|
|
35
|
-
where?: Record<string, unknown>;
|
|
36
|
-
/** Row cap forwarded to the public API. */
|
|
37
|
-
limit?: number;
|
|
38
|
-
}): Promise<FimoEntry[]>;
|
|
39
|
-
/**
|
|
40
|
-
* Load the WrappedMedia entries (key → media) seeded by the wrap migration.
|
|
41
|
-
* Each entry has a `key` (the FimoMediaImage/Video/FileLink id) and an
|
|
42
|
-
* asset-typed `image` field.
|
|
43
|
-
*/
|
|
44
|
-
export declare function loadWrappedMedia(options?: FimoServerOptions): Promise<Record<string, WrappedMediaEntry>>;
|
|
45
|
-
/**
|
|
46
|
-
* Load the WrappedRichText entries (key → TipTap JSON) seeded by the wrap
|
|
47
|
-
* migration for formatted text (bold/italic/underline/links).
|
|
48
|
-
*/
|
|
49
|
-
export declare function loadWrappedRichText(options?: FimoServerOptions): Promise<Record<string, WrappedRichTextEntry>>;
|
|
50
|
-
/**
|
|
51
|
-
* Overlay a wrap-migrated collection onto its retained source rows: fetch the
|
|
52
|
-
* Fimo entries matching the source rows' keys, merge field-by-field with the
|
|
53
|
-
* type-matched rule above, and return plain data rows in SOURCE order. The
|
|
54
|
-
* page keeps its original render logic and its original fallback — edits made
|
|
55
|
-
* in Fimo show up, everything else stays byte-identical.
|
|
56
|
-
*/
|
|
57
|
-
export declare function wrapCollection<T extends Record<string, unknown>>(typeName: string, sourceRows: readonly T[], options?: FimoServerOptions & {
|
|
58
|
-
keyField?: string;
|
|
59
|
-
}): Promise<T[]>;
|
|
60
|
-
/**
|
|
61
|
-
* Load a locale's messages from Fimo for an EXISTING i18n runtime (next-intl,
|
|
62
|
-
* i18next). Wrap-mode i18n ingestion seeds the app's message store into Fimo
|
|
63
|
-
* labels (flat dot-keys); this fetches them back and un-flattens them into the
|
|
64
|
-
* nested shape the app's own i18n loader expects — so the app keeps its
|
|
65
|
-
* `useTranslations`/`t()` unchanged, now editable from Fimo Studio.
|
|
66
|
-
*
|
|
67
|
-
* Deep-merge over the shipped messages (pass them as `fallback`) so any key
|
|
68
|
-
* not yet in Fimo falls back to the static file instead of showing a missing
|
|
69
|
-
* key. Wire it in the app's message loader, e.g. next-intl `i18n/request.ts`:
|
|
70
|
-
*
|
|
71
|
-
* const messages = await loadFimoMessages(locale, { fallback: staticMessages });
|
|
72
|
-
* return { locale, messages };
|
|
73
|
-
*/
|
|
74
|
-
export declare function loadFimoMessages(locale: string, options?: FimoServerOptions & {
|
|
75
|
-
fallback?: Record<string, unknown>;
|
|
76
|
-
}): Promise<Record<string, unknown>>;
|
|
77
|
-
//# sourceMappingURL=server.d.ts.map
|