fimo 2.2.0-staging.10 → 2.2.0-staging.11
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-cli/SKILL.md +1 -1
- package/assets/skills/fimo-cli/references/assets.md +38 -2
- package/assets/skills/fimo-migration/SKILL.md +44 -13
- package/assets/skills/fimo-migration/references/frameworks/nextjs.md +8 -0
- package/assets/skills/fimo-migration/references/qa.md +30 -4
- package/assets/skills/fimo-migration/references/questions-and-improvements.md +188 -0
- package/assets/skills/fimo-migration/references/workers/content-planner.md +8 -3
- package/assets/skills/fimo-migration/references/workers/validator.md +20 -6
- package/assets/skills/fimo-migration/references/workers.md +17 -6
- package/assets/skills/fimo-migration/references/workflow.md +33 -6
- package/assets/skills/fimo-studio/SKILL.md +3 -1
- package/assets/skills/fimo-studio/references/agents.md +25 -0
- package/dist/cli/bundle.json +1 -1
- package/dist/cli/index.js +12 -11
- package/dist/runtime/templates.d.ts +1 -0
- package/dist/runtime/templates.js +3 -0
- package/package.json +8 -7
- package/templates/astro/package.json +2 -2
- package/templates/nextjs/package.json +3 -3
- package/templates/react-router/package.json +4 -4
- package/templates/sveltekit/package.json +2 -2
- package/templates/vite/package.json +4 -4
- package/templates/welcome/manifest.json +404 -0
- package/templates/welcome/media/analytics-overview.avif +0 -0
- package/templates/welcome/media/autonomous-loop.avif +0 -0
- package/templates/welcome/media/editable-preview.avif +0 -0
- package/templates/welcome/media/media-library.avif +0 -0
- package/templates/welcome/media/slack-teams.avif +0 -0
- package/templates/welcome/template/.fimo/agents/welcome-guide/GOAL.md +7 -0
- package/templates/welcome/template/.fimo/agents/welcome-guide/config.yaml +8 -0
- package/templates/welcome/template/.fimo/config.json +53 -0
- package/templates/welcome/template/src/font.css +60 -0
- package/templates/welcome/template/src/pages/ArticleDetail.tsx +68 -0
- package/templates/welcome/template/src/pages/Index.tsx +32 -0
- package/templates/welcome/template/src/pages/SiteContent.tsx +413 -0
- package/templates/welcome/template/src/pages/fallback-content.ts +133 -0
- package/templates/welcome/template/src/routes.ts +9 -0
- package/templates/welcome/template/src/schemas/Article.json +12 -0
- package/templates/welcome/template/src/schemas/Article.ts +59 -0
- package/templates/welcome/template/src/schemas/Article.types.ts +73 -0
- package/templates/welcome/template/src/schemas/HomePage.json +39 -0
- package/templates/welcome/template/src/schemas/HomePage.types.ts +114 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// AUTO-GENERATED by `fimo` from src/schemas/Article.json - DO NOT EDIT.
|
|
2
|
+
// Change content fields in the schema, then run `fimo validate`.
|
|
3
|
+
// Runtime implementation lives in the project-local fimo-react package.
|
|
4
|
+
import { createContentClient } from 'fimo-react';
|
|
5
|
+
import type { CollectionContentClient } from 'fimo-react';
|
|
6
|
+
import type { ContentSchema } from 'fimo-react';
|
|
7
|
+
|
|
8
|
+
import schema from './Article.json';
|
|
9
|
+
import type { Article, ArticleFields, ArticleInput, ArticlePopulate, ArticleQuery } from './Article.types';
|
|
10
|
+
|
|
11
|
+
export type {
|
|
12
|
+
Article,
|
|
13
|
+
ArticleFields,
|
|
14
|
+
ArticleFimoMeta,
|
|
15
|
+
ArticleInput,
|
|
16
|
+
ArticlePopulate,
|
|
17
|
+
ArticleQuery,
|
|
18
|
+
ArticleReferences,
|
|
19
|
+
ArticleResult,
|
|
20
|
+
ArticleSort,
|
|
21
|
+
ArticleWhere,
|
|
22
|
+
} from './Article.types';
|
|
23
|
+
export type { CollectionPage, CollectionPageInfo, InfiniteListResult } from 'fimo-react';
|
|
24
|
+
export type InfiniteListQuery<
|
|
25
|
+
TFields extends ArticleFields | undefined = undefined,
|
|
26
|
+
TPopulate extends ArticlePopulate | undefined = undefined,
|
|
27
|
+
> = Omit<ArticleQuery<TFields, TPopulate>, 'offset'>;
|
|
28
|
+
|
|
29
|
+
const client: CollectionContentClient<Article, ArticleInput> = createContentClient<Article, ArticleInput>({
|
|
30
|
+
schema: schema as unknown as ContentSchema,
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
export const {
|
|
34
|
+
wrapWithSource,
|
|
35
|
+
meta,
|
|
36
|
+
getById,
|
|
37
|
+
getBySlug,
|
|
38
|
+
getByField,
|
|
39
|
+
list,
|
|
40
|
+
get,
|
|
41
|
+
create,
|
|
42
|
+
update,
|
|
43
|
+
remove,
|
|
44
|
+
useGetById,
|
|
45
|
+
useGetBySlug,
|
|
46
|
+
useGetByField,
|
|
47
|
+
useList,
|
|
48
|
+
useInfiniteList,
|
|
49
|
+
useGet,
|
|
50
|
+
useSuspenseGetById,
|
|
51
|
+
useSuspenseGet,
|
|
52
|
+
useSuspenseGetByField,
|
|
53
|
+
useSuspenseGetBySlug,
|
|
54
|
+
useCreate,
|
|
55
|
+
useUpdate,
|
|
56
|
+
useRemove,
|
|
57
|
+
} = client;
|
|
58
|
+
|
|
59
|
+
export default client;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
// AUTO-GENERATED ⚠️ – do not edit by hand
|
|
2
|
+
import {
|
|
3
|
+
type Fields,
|
|
4
|
+
type FimoBoolean,
|
|
5
|
+
type FimoMedia,
|
|
6
|
+
type FimoPolymorphicReference,
|
|
7
|
+
type FimoReference,
|
|
8
|
+
type FimoRichText,
|
|
9
|
+
type FimoRichTextContent,
|
|
10
|
+
type FimoString,
|
|
11
|
+
type Populate,
|
|
12
|
+
type PopulatedResult,
|
|
13
|
+
type ProjectedWithPopulate,
|
|
14
|
+
type Query,
|
|
15
|
+
type Sort,
|
|
16
|
+
type Where,
|
|
17
|
+
type WithReferences,
|
|
18
|
+
} from 'fimo-react';
|
|
19
|
+
|
|
20
|
+
/*───────────────────────────────────────────────────────────────*/
|
|
21
|
+
/* ──────────── 📄 Type definitions ──────────── */
|
|
22
|
+
/*───────────────────────────────────────────────────────────────*/
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Article entity interface
|
|
26
|
+
*/
|
|
27
|
+
export interface ArticleFimoMeta {
|
|
28
|
+
contentType: 'Article';
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export interface Article extends WithReferences<ArticleReferences> {
|
|
32
|
+
id: string;
|
|
33
|
+
entryId: string;
|
|
34
|
+
documentId: string;
|
|
35
|
+
slug: FimoString;
|
|
36
|
+
locale: string;
|
|
37
|
+
createdAt: string;
|
|
38
|
+
updatedAt: string;
|
|
39
|
+
__fimo: ArticleFimoMeta;
|
|
40
|
+
title: FimoString;
|
|
41
|
+
summary: FimoString;
|
|
42
|
+
body: FimoRichText;
|
|
43
|
+
cover: FimoMedia;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export interface ArticleInput {
|
|
47
|
+
slug?: string;
|
|
48
|
+
documentId?: string;
|
|
49
|
+
title: string;
|
|
50
|
+
summary: string;
|
|
51
|
+
body: FimoRichTextContent;
|
|
52
|
+
cover: Pick<FimoMedia, 'url' | 'alt' | 'name' | 'mime' | 'width' | 'height'>;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export type ArticleReferences = Record<never, never>;
|
|
56
|
+
|
|
57
|
+
export type ArticlePopulate = Populate<Article>;
|
|
58
|
+
|
|
59
|
+
/*───────────────────────────────────────────────────────────────*/
|
|
60
|
+
/* ──────────── 🔎 Query types ──────────── */
|
|
61
|
+
/*───────────────────────────────────────────────────────────────*/
|
|
62
|
+
|
|
63
|
+
export type ArticleWhere = Where<Article>;
|
|
64
|
+
export type ArticleSort = Sort<Article>;
|
|
65
|
+
export type ArticleFields = Fields<Article>;
|
|
66
|
+
export type ArticleQuery<
|
|
67
|
+
TFields extends ArticleFields | undefined = ArticleFields | undefined,
|
|
68
|
+
TPopulate extends ArticlePopulate | undefined = ArticlePopulate | undefined,
|
|
69
|
+
> = Query<Article, TFields, TPopulate>;
|
|
70
|
+
export type ArticleResult<
|
|
71
|
+
TFields extends ArticleFields | undefined = undefined,
|
|
72
|
+
TPopulate extends ArticlePopulate | undefined = undefined,
|
|
73
|
+
> = ProjectedWithPopulate<PopulatedResult<Article, TPopulate>, TFields, TPopulate>;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"uid": "HomePage",
|
|
3
|
+
"name": "Home page",
|
|
4
|
+
"isSingleton": true,
|
|
5
|
+
"i18n": { "enabled": false },
|
|
6
|
+
"fields": {
|
|
7
|
+
"title": { "type": "string", "required": true },
|
|
8
|
+
"intro": { "type": "richtext", "required": true },
|
|
9
|
+
"heroImage": { "type": "media", "required": true },
|
|
10
|
+
"heroImageHint": { "type": "string", "required": true },
|
|
11
|
+
"startLabel": { "type": "string", "required": true },
|
|
12
|
+
"tourTitle": { "type": "string", "required": true },
|
|
13
|
+
"tourIntro": { "type": "text", "required": true },
|
|
14
|
+
"steps": {
|
|
15
|
+
"type": "blocks",
|
|
16
|
+
"min": 4,
|
|
17
|
+
"max": 4,
|
|
18
|
+
"schema": {
|
|
19
|
+
"fields": {
|
|
20
|
+
"number": { "type": "string", "required": true },
|
|
21
|
+
"title": { "type": "string", "required": true },
|
|
22
|
+
"body": { "type": "text", "required": true },
|
|
23
|
+
"highlight": { "type": "text" },
|
|
24
|
+
"actionLabel": { "type": "string", "required": true },
|
|
25
|
+
"action": { "type": "string", "required": true }
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"articlesTitle": { "type": "string", "required": true },
|
|
30
|
+
"articlesIntro": { "type": "text", "required": true },
|
|
31
|
+
"migrationTitle": { "type": "string", "required": true },
|
|
32
|
+
"migrationBody": { "type": "richtext", "required": true },
|
|
33
|
+
"migrationPrompt": { "type": "text", "required": true },
|
|
34
|
+
"buildTitle": { "type": "string", "required": true },
|
|
35
|
+
"buildBody": { "type": "richtext", "required": true },
|
|
36
|
+
"closingTitle": { "type": "string", "required": true },
|
|
37
|
+
"closingBody": { "type": "text", "required": true }
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
// AUTO-GENERATED ⚠️ – do not edit by hand
|
|
2
|
+
import {
|
|
3
|
+
type Fields,
|
|
4
|
+
type FimoBoolean,
|
|
5
|
+
type FimoMedia,
|
|
6
|
+
type FimoPolymorphicReference,
|
|
7
|
+
type FimoReference,
|
|
8
|
+
type FimoRichText,
|
|
9
|
+
type FimoRichTextContent,
|
|
10
|
+
type FimoString,
|
|
11
|
+
type Populate,
|
|
12
|
+
type PopulatedResult,
|
|
13
|
+
type ProjectedWithPopulate,
|
|
14
|
+
type Query,
|
|
15
|
+
type Sort,
|
|
16
|
+
type Where,
|
|
17
|
+
type WithReferences,
|
|
18
|
+
} from 'fimo-react';
|
|
19
|
+
|
|
20
|
+
/*───────────────────────────────────────────────────────────────*/
|
|
21
|
+
/* ──────────── 📄 Type definitions ──────────── */
|
|
22
|
+
/*───────────────────────────────────────────────────────────────*/
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* HomePage entity interface
|
|
26
|
+
*/
|
|
27
|
+
export interface HomePageFimoMeta {
|
|
28
|
+
contentType: 'HomePage';
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export interface HomePage extends WithReferences<HomePageReferences> {
|
|
32
|
+
id: string;
|
|
33
|
+
entryId: string;
|
|
34
|
+
documentId: string;
|
|
35
|
+
slug: FimoString;
|
|
36
|
+
locale?: string;
|
|
37
|
+
createdAt: string;
|
|
38
|
+
updatedAt: string;
|
|
39
|
+
__fimo: HomePageFimoMeta;
|
|
40
|
+
title: FimoString;
|
|
41
|
+
intro: FimoRichText;
|
|
42
|
+
heroImage: FimoMedia;
|
|
43
|
+
heroImageHint: FimoString;
|
|
44
|
+
startLabel: FimoString;
|
|
45
|
+
tourTitle: FimoString;
|
|
46
|
+
tourIntro: FimoString;
|
|
47
|
+
steps: {
|
|
48
|
+
_key: string;
|
|
49
|
+
number: FimoString;
|
|
50
|
+
title: FimoString;
|
|
51
|
+
body: FimoString;
|
|
52
|
+
highlight?: FimoString;
|
|
53
|
+
actionLabel: FimoString;
|
|
54
|
+
action: FimoString;
|
|
55
|
+
}[];
|
|
56
|
+
articlesTitle: FimoString;
|
|
57
|
+
articlesIntro: FimoString;
|
|
58
|
+
migrationTitle: FimoString;
|
|
59
|
+
migrationBody: FimoRichText;
|
|
60
|
+
migrationPrompt: FimoString;
|
|
61
|
+
buildTitle: FimoString;
|
|
62
|
+
buildBody: FimoRichText;
|
|
63
|
+
closingTitle: FimoString;
|
|
64
|
+
closingBody: FimoString;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export interface HomePageInput {
|
|
68
|
+
slug?: string;
|
|
69
|
+
title: string;
|
|
70
|
+
intro: FimoRichTextContent;
|
|
71
|
+
heroImage: Pick<FimoMedia, 'url' | 'alt' | 'name' | 'mime' | 'width' | 'height'>;
|
|
72
|
+
heroImageHint: string;
|
|
73
|
+
startLabel: string;
|
|
74
|
+
tourTitle: string;
|
|
75
|
+
tourIntro: string;
|
|
76
|
+
steps: {
|
|
77
|
+
_key?: string;
|
|
78
|
+
number: string;
|
|
79
|
+
title: string;
|
|
80
|
+
body: string;
|
|
81
|
+
highlight?: string;
|
|
82
|
+
actionLabel: string;
|
|
83
|
+
action: string;
|
|
84
|
+
}[];
|
|
85
|
+
articlesTitle: string;
|
|
86
|
+
articlesIntro: string;
|
|
87
|
+
migrationTitle: string;
|
|
88
|
+
migrationBody: FimoRichTextContent;
|
|
89
|
+
migrationPrompt: string;
|
|
90
|
+
buildTitle: string;
|
|
91
|
+
buildBody: FimoRichTextContent;
|
|
92
|
+
closingTitle: string;
|
|
93
|
+
closingBody: string;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
export type HomePageReferences = Record<never, never>;
|
|
97
|
+
|
|
98
|
+
export type HomePagePopulate = Populate<HomePage>;
|
|
99
|
+
|
|
100
|
+
/*───────────────────────────────────────────────────────────────*/
|
|
101
|
+
/* ──────────── 🔎 Query types ──────────── */
|
|
102
|
+
/*───────────────────────────────────────────────────────────────*/
|
|
103
|
+
|
|
104
|
+
export type HomePageWhere = Where<HomePage>;
|
|
105
|
+
export type HomePageSort = Sort<HomePage>;
|
|
106
|
+
export type HomePageFields = Fields<HomePage>;
|
|
107
|
+
export type HomePageQuery<
|
|
108
|
+
TFields extends HomePageFields | undefined = HomePageFields | undefined,
|
|
109
|
+
TPopulate extends HomePagePopulate | undefined = HomePagePopulate | undefined,
|
|
110
|
+
> = Query<HomePage, TFields, TPopulate>;
|
|
111
|
+
export type HomePageResult<
|
|
112
|
+
TFields extends HomePageFields | undefined = undefined,
|
|
113
|
+
TPopulate extends HomePagePopulate | undefined = undefined,
|
|
114
|
+
> = ProjectedWithPopulate<PopulatedResult<HomePage, TPopulate>, TFields, TPopulate>;
|