kofi-stack-types 2.0.23 → 2.1.36
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/.turbo/turbo-build.log +5 -5
- package/.turbo/turbo-typecheck.log +4 -0
- package/dist/index.d.ts +138 -100
- package/dist/index.js +80 -36
- package/package.json +7 -7
- package/src/index.ts +22 -8
- package/src/schemas.ts +91 -40
- package/src/types.ts +20 -8
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
> kofi-stack-types@2.
|
|
2
|
+
> kofi-stack-types@2.1.36 build /Users/theodenanyoh/Documents/Krumalabs/create-kofi-stack-v2/packages/types
|
|
3
3
|
> tsup src/index.ts --format esm --dts
|
|
4
4
|
|
|
5
5
|
CLI Building entry: src/index.ts
|
|
@@ -7,8 +7,8 @@ CLI Using tsconfig: tsconfig.json
|
|
|
7
7
|
CLI tsup v8.5.1
|
|
8
8
|
CLI Target: es2022
|
|
9
9
|
ESM Build start
|
|
10
|
-
ESM dist/index.js
|
|
11
|
-
ESM ⚡️ Build success in
|
|
10
|
+
ESM dist/index.js 5.09 KB
|
|
11
|
+
ESM ⚡️ Build success in 30ms
|
|
12
12
|
DTS Build start
|
|
13
|
-
DTS ⚡️ Build success in
|
|
14
|
-
DTS dist/index.d.ts
|
|
13
|
+
DTS ⚡️ Build success in 596ms
|
|
14
|
+
DTS dist/index.d.ts 20.90 KB
|
package/dist/index.d.ts
CHANGED
|
@@ -5,42 +5,50 @@ declare const MarketingSiteSchema: z.ZodEnum<["none", "nextjs", "payload"]>;
|
|
|
5
5
|
declare const AuthProviderSchema: z.ZodEnum<["github", "google", "discord", "twitter", "apple", "microsoft", "linkedin"]>;
|
|
6
6
|
declare const AnalyticsProviderSchema: z.ZodEnum<["none", "posthog", "vercel"]>;
|
|
7
7
|
declare const UploadsProviderSchema: z.ZodEnum<["none", "convex-fs", "r2", "uploadthing", "s3", "vercel-blob"]>;
|
|
8
|
-
declare const
|
|
9
|
-
declare const
|
|
10
|
-
declare const
|
|
11
|
-
declare const
|
|
12
|
-
declare const
|
|
13
|
-
declare const
|
|
14
|
-
declare const
|
|
8
|
+
declare const PayloadStorageProviderSchema: z.ZodEnum<["local", "s3", "vercel-blob", "gcs", "r2"]>;
|
|
9
|
+
declare const PaymentProviderSchema: z.ZodEnum<["none", "stripe", "polar"]>;
|
|
10
|
+
declare const ComponentLibrarySchema: z.ZodEnum<["base", "radix"]>;
|
|
11
|
+
declare const ShadcnStyleSchema: z.ZodEnum<["vega", "nova", "maia", "lyra", "mira"]>;
|
|
12
|
+
declare const BaseColorSchema: z.ZodEnum<["neutral", "stone", "zinc", "gray"]>;
|
|
13
|
+
declare const ThemeColorSchema: z.ZodEnum<["neutral", "amber", "blue", "cyan", "emerald", "fuchsia", "green", "indigo", "lime", "orange", "pink", "purple", "red", "rose", "sky", "teal", "violet", "yellow"]>;
|
|
14
|
+
declare const IconLibrarySchema: z.ZodEnum<["lucide", "tabler", "hugeicons", "phosphor"]>;
|
|
15
|
+
declare const FontSchema: z.ZodEnum<["inter", "noto-sans", "nunito-sans", "figtree", "roboto", "raleway", "dm-sans", "public-sans", "outfit", "jetbrains-mono"]>;
|
|
16
|
+
declare const MenuAccentSchema: z.ZodEnum<["subtle", "bold"]>;
|
|
17
|
+
declare const MenuColorSchema: z.ZodEnum<["default", "inverted"]>;
|
|
18
|
+
declare const RadiusSchema: z.ZodEnum<["default", "none", "small", "medium", "large"]>;
|
|
15
19
|
declare const PackageManagerSchema: z.ZodEnum<["pnpm", "npm", "bun"]>;
|
|
16
20
|
declare const AddonSchema: z.ZodEnum<["biome", "husky", "turborepo", "playwright", "vitest", "rate-limiting", "monitoring"]>;
|
|
21
|
+
declare const OptionalAppSchema: z.ZodEnum<["design-system", "mobile", "admin"]>;
|
|
17
22
|
declare const DesignSystemConfigSchema: z.ZodObject<{
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
componentLibrary: z.ZodEnum<["base", "radix"]>;
|
|
24
|
+
style: z.ZodEnum<["vega", "nova", "maia", "lyra", "mira"]>;
|
|
25
|
+
baseColor: z.ZodEnum<["neutral", "stone", "zinc", "gray"]>;
|
|
26
|
+
themeColor: z.ZodEnum<["neutral", "amber", "blue", "cyan", "emerald", "fuchsia", "green", "indigo", "lime", "orange", "pink", "purple", "red", "rose", "sky", "teal", "violet", "yellow"]>;
|
|
27
|
+
iconLibrary: z.ZodEnum<["lucide", "tabler", "hugeicons", "phosphor"]>;
|
|
28
|
+
font: z.ZodEnum<["inter", "noto-sans", "nunito-sans", "figtree", "roboto", "raleway", "dm-sans", "public-sans", "outfit", "jetbrains-mono"]>;
|
|
29
|
+
menuAccent: z.ZodEnum<["subtle", "bold"]>;
|
|
30
|
+
menuColor: z.ZodEnum<["default", "inverted"]>;
|
|
31
|
+
radius: z.ZodEnum<["default", "none", "small", "medium", "large"]>;
|
|
26
32
|
}, "strip", z.ZodTypeAny, {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
componentLibrary: "base" | "radix";
|
|
34
|
+
style: "vega" | "nova" | "maia" | "lyra" | "mira";
|
|
35
|
+
baseColor: "neutral" | "stone" | "zinc" | "gray";
|
|
36
|
+
themeColor: "neutral" | "amber" | "blue" | "cyan" | "emerald" | "fuchsia" | "green" | "indigo" | "lime" | "orange" | "pink" | "purple" | "red" | "rose" | "sky" | "teal" | "violet" | "yellow";
|
|
37
|
+
iconLibrary: "lucide" | "tabler" | "hugeicons" | "phosphor";
|
|
38
|
+
font: "inter" | "noto-sans" | "nunito-sans" | "figtree" | "roboto" | "raleway" | "dm-sans" | "public-sans" | "outfit" | "jetbrains-mono";
|
|
39
|
+
menuAccent: "subtle" | "bold";
|
|
40
|
+
menuColor: "default" | "inverted";
|
|
41
|
+
radius: "none" | "default" | "small" | "medium" | "large";
|
|
35
42
|
}, {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
43
|
+
componentLibrary: "base" | "radix";
|
|
44
|
+
style: "vega" | "nova" | "maia" | "lyra" | "mira";
|
|
45
|
+
baseColor: "neutral" | "stone" | "zinc" | "gray";
|
|
46
|
+
themeColor: "neutral" | "amber" | "blue" | "cyan" | "emerald" | "fuchsia" | "green" | "indigo" | "lime" | "orange" | "pink" | "purple" | "red" | "rose" | "sky" | "teal" | "violet" | "yellow";
|
|
47
|
+
iconLibrary: "lucide" | "tabler" | "hugeicons" | "phosphor";
|
|
48
|
+
font: "inter" | "noto-sans" | "nunito-sans" | "figtree" | "roboto" | "raleway" | "dm-sans" | "public-sans" | "outfit" | "jetbrains-mono";
|
|
49
|
+
menuAccent: "subtle" | "bold";
|
|
50
|
+
menuColor: "default" | "inverted";
|
|
51
|
+
radius: "none" | "default" | "small" | "medium" | "large";
|
|
44
52
|
}>;
|
|
45
53
|
declare const AuthConfigSchema: z.ZodObject<{
|
|
46
54
|
providers: z.ZodArray<z.ZodEnum<["github", "google", "discord", "twitter", "apple", "microsoft", "linkedin"]>, "many">;
|
|
@@ -56,14 +64,17 @@ declare const IntegrationsConfigSchema: z.ZodObject<{
|
|
|
56
64
|
analytics: z.ZodEnum<["none", "posthog", "vercel"]>;
|
|
57
65
|
uploads: z.ZodEnum<["none", "convex-fs", "r2", "uploadthing", "s3", "vercel-blob"]>;
|
|
58
66
|
payments: z.ZodEnum<["none", "stripe", "polar"]>;
|
|
67
|
+
payloadStorage: z.ZodOptional<z.ZodEnum<["local", "s3", "vercel-blob", "gcs", "r2"]>>;
|
|
59
68
|
}, "strip", z.ZodTypeAny, {
|
|
60
69
|
analytics: "none" | "posthog" | "vercel";
|
|
61
70
|
uploads: "none" | "convex-fs" | "r2" | "uploadthing" | "s3" | "vercel-blob";
|
|
62
71
|
payments: "none" | "stripe" | "polar";
|
|
72
|
+
payloadStorage?: "r2" | "s3" | "vercel-blob" | "local" | "gcs" | undefined;
|
|
63
73
|
}, {
|
|
64
74
|
analytics: "none" | "posthog" | "vercel";
|
|
65
75
|
uploads: "none" | "convex-fs" | "r2" | "uploadthing" | "s3" | "vercel-blob";
|
|
66
76
|
payments: "none" | "stripe" | "polar";
|
|
77
|
+
payloadStorage?: "r2" | "s3" | "vercel-blob" | "local" | "gcs" | undefined;
|
|
67
78
|
}>;
|
|
68
79
|
declare const ProjectConfigSchema: z.ZodObject<{
|
|
69
80
|
projectName: z.ZodString;
|
|
@@ -71,32 +82,35 @@ declare const ProjectConfigSchema: z.ZodObject<{
|
|
|
71
82
|
structure: z.ZodEnum<["standalone", "monorepo"]>;
|
|
72
83
|
marketingSite: z.ZodEnum<["none", "nextjs", "payload"]>;
|
|
73
84
|
shadcn: z.ZodObject<{
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
85
|
+
componentLibrary: z.ZodEnum<["base", "radix"]>;
|
|
86
|
+
style: z.ZodEnum<["vega", "nova", "maia", "lyra", "mira"]>;
|
|
87
|
+
baseColor: z.ZodEnum<["neutral", "stone", "zinc", "gray"]>;
|
|
88
|
+
themeColor: z.ZodEnum<["neutral", "amber", "blue", "cyan", "emerald", "fuchsia", "green", "indigo", "lime", "orange", "pink", "purple", "red", "rose", "sky", "teal", "violet", "yellow"]>;
|
|
89
|
+
iconLibrary: z.ZodEnum<["lucide", "tabler", "hugeicons", "phosphor"]>;
|
|
90
|
+
font: z.ZodEnum<["inter", "noto-sans", "nunito-sans", "figtree", "roboto", "raleway", "dm-sans", "public-sans", "outfit", "jetbrains-mono"]>;
|
|
91
|
+
menuAccent: z.ZodEnum<["subtle", "bold"]>;
|
|
92
|
+
menuColor: z.ZodEnum<["default", "inverted"]>;
|
|
93
|
+
radius: z.ZodEnum<["default", "none", "small", "medium", "large"]>;
|
|
82
94
|
}, "strip", z.ZodTypeAny, {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
95
|
+
componentLibrary: "base" | "radix";
|
|
96
|
+
style: "vega" | "nova" | "maia" | "lyra" | "mira";
|
|
97
|
+
baseColor: "neutral" | "stone" | "zinc" | "gray";
|
|
98
|
+
themeColor: "neutral" | "amber" | "blue" | "cyan" | "emerald" | "fuchsia" | "green" | "indigo" | "lime" | "orange" | "pink" | "purple" | "red" | "rose" | "sky" | "teal" | "violet" | "yellow";
|
|
99
|
+
iconLibrary: "lucide" | "tabler" | "hugeicons" | "phosphor";
|
|
100
|
+
font: "inter" | "noto-sans" | "nunito-sans" | "figtree" | "roboto" | "raleway" | "dm-sans" | "public-sans" | "outfit" | "jetbrains-mono";
|
|
101
|
+
menuAccent: "subtle" | "bold";
|
|
102
|
+
menuColor: "default" | "inverted";
|
|
103
|
+
radius: "none" | "default" | "small" | "medium" | "large";
|
|
91
104
|
}, {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
105
|
+
componentLibrary: "base" | "radix";
|
|
106
|
+
style: "vega" | "nova" | "maia" | "lyra" | "mira";
|
|
107
|
+
baseColor: "neutral" | "stone" | "zinc" | "gray";
|
|
108
|
+
themeColor: "neutral" | "amber" | "blue" | "cyan" | "emerald" | "fuchsia" | "green" | "indigo" | "lime" | "orange" | "pink" | "purple" | "red" | "rose" | "sky" | "teal" | "violet" | "yellow";
|
|
109
|
+
iconLibrary: "lucide" | "tabler" | "hugeicons" | "phosphor";
|
|
110
|
+
font: "inter" | "noto-sans" | "nunito-sans" | "figtree" | "roboto" | "raleway" | "dm-sans" | "public-sans" | "outfit" | "jetbrains-mono";
|
|
111
|
+
menuAccent: "subtle" | "bold";
|
|
112
|
+
menuColor: "default" | "inverted";
|
|
113
|
+
radius: "none" | "default" | "small" | "medium" | "large";
|
|
100
114
|
}>;
|
|
101
115
|
auth: z.ZodObject<{
|
|
102
116
|
providers: z.ZodArray<z.ZodEnum<["github", "google", "discord", "twitter", "apple", "microsoft", "linkedin"]>, "many">;
|
|
@@ -112,16 +126,20 @@ declare const ProjectConfigSchema: z.ZodObject<{
|
|
|
112
126
|
analytics: z.ZodEnum<["none", "posthog", "vercel"]>;
|
|
113
127
|
uploads: z.ZodEnum<["none", "convex-fs", "r2", "uploadthing", "s3", "vercel-blob"]>;
|
|
114
128
|
payments: z.ZodEnum<["none", "stripe", "polar"]>;
|
|
129
|
+
payloadStorage: z.ZodOptional<z.ZodEnum<["local", "s3", "vercel-blob", "gcs", "r2"]>>;
|
|
115
130
|
}, "strip", z.ZodTypeAny, {
|
|
116
131
|
analytics: "none" | "posthog" | "vercel";
|
|
117
132
|
uploads: "none" | "convex-fs" | "r2" | "uploadthing" | "s3" | "vercel-blob";
|
|
118
133
|
payments: "none" | "stripe" | "polar";
|
|
134
|
+
payloadStorage?: "r2" | "s3" | "vercel-blob" | "local" | "gcs" | undefined;
|
|
119
135
|
}, {
|
|
120
136
|
analytics: "none" | "posthog" | "vercel";
|
|
121
137
|
uploads: "none" | "convex-fs" | "r2" | "uploadthing" | "s3" | "vercel-blob";
|
|
122
138
|
payments: "none" | "stripe" | "polar";
|
|
139
|
+
payloadStorage?: "r2" | "s3" | "vercel-blob" | "local" | "gcs" | undefined;
|
|
123
140
|
}>;
|
|
124
141
|
addons: z.ZodArray<z.ZodEnum<["biome", "husky", "turborepo", "playwright", "vitest", "rate-limiting", "monitoring"]>, "many">;
|
|
142
|
+
optionalApps: z.ZodArray<z.ZodEnum<["design-system", "mobile", "admin"]>, "many">;
|
|
125
143
|
packageManager: z.ZodEnum<["pnpm", "npm", "bun"]>;
|
|
126
144
|
}, "strip", z.ZodTypeAny, {
|
|
127
145
|
projectName: string;
|
|
@@ -129,14 +147,15 @@ declare const ProjectConfigSchema: z.ZodObject<{
|
|
|
129
147
|
structure: "standalone" | "monorepo";
|
|
130
148
|
marketingSite: "none" | "nextjs" | "payload";
|
|
131
149
|
shadcn: {
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
150
|
+
componentLibrary: "base" | "radix";
|
|
151
|
+
style: "vega" | "nova" | "maia" | "lyra" | "mira";
|
|
152
|
+
baseColor: "neutral" | "stone" | "zinc" | "gray";
|
|
153
|
+
themeColor: "neutral" | "amber" | "blue" | "cyan" | "emerald" | "fuchsia" | "green" | "indigo" | "lime" | "orange" | "pink" | "purple" | "red" | "rose" | "sky" | "teal" | "violet" | "yellow";
|
|
154
|
+
iconLibrary: "lucide" | "tabler" | "hugeicons" | "phosphor";
|
|
155
|
+
font: "inter" | "noto-sans" | "nunito-sans" | "figtree" | "roboto" | "raleway" | "dm-sans" | "public-sans" | "outfit" | "jetbrains-mono";
|
|
156
|
+
menuAccent: "subtle" | "bold";
|
|
157
|
+
menuColor: "default" | "inverted";
|
|
158
|
+
radius: "none" | "default" | "small" | "medium" | "large";
|
|
140
159
|
};
|
|
141
160
|
auth: {
|
|
142
161
|
providers: ("github" | "google" | "discord" | "twitter" | "apple" | "microsoft" | "linkedin")[];
|
|
@@ -146,8 +165,10 @@ declare const ProjectConfigSchema: z.ZodObject<{
|
|
|
146
165
|
analytics: "none" | "posthog" | "vercel";
|
|
147
166
|
uploads: "none" | "convex-fs" | "r2" | "uploadthing" | "s3" | "vercel-blob";
|
|
148
167
|
payments: "none" | "stripe" | "polar";
|
|
168
|
+
payloadStorage?: "r2" | "s3" | "vercel-blob" | "local" | "gcs" | undefined;
|
|
149
169
|
};
|
|
150
170
|
addons: ("biome" | "husky" | "turborepo" | "playwright" | "vitest" | "rate-limiting" | "monitoring")[];
|
|
171
|
+
optionalApps: ("design-system" | "mobile" | "admin")[];
|
|
151
172
|
packageManager: "pnpm" | "npm" | "bun";
|
|
152
173
|
}, {
|
|
153
174
|
projectName: string;
|
|
@@ -155,14 +176,15 @@ declare const ProjectConfigSchema: z.ZodObject<{
|
|
|
155
176
|
structure: "standalone" | "monorepo";
|
|
156
177
|
marketingSite: "none" | "nextjs" | "payload";
|
|
157
178
|
shadcn: {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
179
|
+
componentLibrary: "base" | "radix";
|
|
180
|
+
style: "vega" | "nova" | "maia" | "lyra" | "mira";
|
|
181
|
+
baseColor: "neutral" | "stone" | "zinc" | "gray";
|
|
182
|
+
themeColor: "neutral" | "amber" | "blue" | "cyan" | "emerald" | "fuchsia" | "green" | "indigo" | "lime" | "orange" | "pink" | "purple" | "red" | "rose" | "sky" | "teal" | "violet" | "yellow";
|
|
183
|
+
iconLibrary: "lucide" | "tabler" | "hugeicons" | "phosphor";
|
|
184
|
+
font: "inter" | "noto-sans" | "nunito-sans" | "figtree" | "roboto" | "raleway" | "dm-sans" | "public-sans" | "outfit" | "jetbrains-mono";
|
|
185
|
+
menuAccent: "subtle" | "bold";
|
|
186
|
+
menuColor: "default" | "inverted";
|
|
187
|
+
radius: "none" | "default" | "small" | "medium" | "large";
|
|
166
188
|
};
|
|
167
189
|
auth: {
|
|
168
190
|
providers: ("github" | "google" | "discord" | "twitter" | "apple" | "microsoft" | "linkedin")[];
|
|
@@ -172,43 +194,51 @@ declare const ProjectConfigSchema: z.ZodObject<{
|
|
|
172
194
|
analytics: "none" | "posthog" | "vercel";
|
|
173
195
|
uploads: "none" | "convex-fs" | "r2" | "uploadthing" | "s3" | "vercel-blob";
|
|
174
196
|
payments: "none" | "stripe" | "polar";
|
|
197
|
+
payloadStorage?: "r2" | "s3" | "vercel-blob" | "local" | "gcs" | undefined;
|
|
175
198
|
};
|
|
176
199
|
addons: ("biome" | "husky" | "turborepo" | "playwright" | "vitest" | "rate-limiting" | "monitoring")[];
|
|
200
|
+
optionalApps: ("design-system" | "mobile" | "admin")[];
|
|
177
201
|
packageManager: "pnpm" | "npm" | "bun";
|
|
178
202
|
}>;
|
|
179
203
|
declare const CLIInputSchema: z.ZodObject<{
|
|
180
204
|
projectName: z.ZodOptional<z.ZodString>;
|
|
181
205
|
structure: z.ZodOptional<z.ZodEnum<["standalone", "monorepo"]>>;
|
|
182
206
|
marketingSite: z.ZodOptional<z.ZodEnum<["none", "nextjs", "payload"]>>;
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
207
|
+
componentLibrary: z.ZodOptional<z.ZodEnum<["base", "radix"]>>;
|
|
208
|
+
style: z.ZodOptional<z.ZodEnum<["vega", "nova", "maia", "lyra", "mira"]>>;
|
|
209
|
+
baseColor: z.ZodOptional<z.ZodEnum<["neutral", "stone", "zinc", "gray"]>>;
|
|
210
|
+
themeColor: z.ZodOptional<z.ZodEnum<["neutral", "amber", "blue", "cyan", "emerald", "fuchsia", "green", "indigo", "lime", "orange", "pink", "purple", "red", "rose", "sky", "teal", "violet", "yellow"]>>;
|
|
211
|
+
iconLibrary: z.ZodOptional<z.ZodEnum<["lucide", "tabler", "hugeicons", "phosphor"]>>;
|
|
212
|
+
font: z.ZodOptional<z.ZodEnum<["inter", "noto-sans", "nunito-sans", "figtree", "roboto", "raleway", "dm-sans", "public-sans", "outfit", "jetbrains-mono"]>>;
|
|
213
|
+
menuAccent: z.ZodOptional<z.ZodEnum<["subtle", "bold"]>>;
|
|
214
|
+
menuColor: z.ZodOptional<z.ZodEnum<["default", "inverted"]>>;
|
|
215
|
+
radius: z.ZodOptional<z.ZodEnum<["default", "none", "small", "medium", "large"]>>;
|
|
191
216
|
authProviders: z.ZodOptional<z.ZodArray<z.ZodEnum<["github", "google", "discord", "twitter", "apple", "microsoft", "linkedin"]>, "many">>;
|
|
192
217
|
organizations: z.ZodOptional<z.ZodBoolean>;
|
|
193
218
|
analytics: z.ZodOptional<z.ZodEnum<["none", "posthog", "vercel"]>>;
|
|
194
219
|
uploads: z.ZodOptional<z.ZodEnum<["none", "convex-fs", "r2", "uploadthing", "s3", "vercel-blob"]>>;
|
|
220
|
+
payments: z.ZodOptional<z.ZodEnum<["none", "stripe", "polar"]>>;
|
|
221
|
+
payloadStorage: z.ZodOptional<z.ZodEnum<["local", "s3", "vercel-blob", "gcs", "r2"]>>;
|
|
195
222
|
addons: z.ZodOptional<z.ZodArray<z.ZodEnum<["biome", "husky", "turborepo", "playwright", "vitest", "rate-limiting", "monitoring"]>, "many">>;
|
|
196
223
|
git: z.ZodOptional<z.ZodBoolean>;
|
|
197
224
|
packageManager: z.ZodOptional<z.ZodEnum<["pnpm", "npm", "bun"]>>;
|
|
198
225
|
install: z.ZodOptional<z.ZodBoolean>;
|
|
199
226
|
yes: z.ZodOptional<z.ZodBoolean>;
|
|
200
227
|
}, "strip", z.ZodTypeAny, {
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
228
|
+
componentLibrary?: "base" | "radix" | undefined;
|
|
229
|
+
style?: "vega" | "nova" | "maia" | "lyra" | "mira" | undefined;
|
|
230
|
+
baseColor?: "neutral" | "stone" | "zinc" | "gray" | undefined;
|
|
231
|
+
themeColor?: "neutral" | "amber" | "blue" | "cyan" | "emerald" | "fuchsia" | "green" | "indigo" | "lime" | "orange" | "pink" | "purple" | "red" | "rose" | "sky" | "teal" | "violet" | "yellow" | undefined;
|
|
232
|
+
iconLibrary?: "lucide" | "tabler" | "hugeicons" | "phosphor" | undefined;
|
|
233
|
+
font?: "inter" | "noto-sans" | "nunito-sans" | "figtree" | "roboto" | "raleway" | "dm-sans" | "public-sans" | "outfit" | "jetbrains-mono" | undefined;
|
|
234
|
+
menuAccent?: "subtle" | "bold" | undefined;
|
|
235
|
+
menuColor?: "default" | "inverted" | undefined;
|
|
236
|
+
radius?: "none" | "default" | "small" | "medium" | "large" | undefined;
|
|
209
237
|
organizations?: boolean | undefined;
|
|
210
238
|
analytics?: "none" | "posthog" | "vercel" | undefined;
|
|
211
239
|
uploads?: "none" | "convex-fs" | "r2" | "uploadthing" | "s3" | "vercel-blob" | undefined;
|
|
240
|
+
payments?: "none" | "stripe" | "polar" | undefined;
|
|
241
|
+
payloadStorage?: "r2" | "s3" | "vercel-blob" | "local" | "gcs" | undefined;
|
|
212
242
|
projectName?: string | undefined;
|
|
213
243
|
structure?: "standalone" | "monorepo" | undefined;
|
|
214
244
|
marketingSite?: "none" | "nextjs" | "payload" | undefined;
|
|
@@ -219,17 +249,20 @@ declare const CLIInputSchema: z.ZodObject<{
|
|
|
219
249
|
install?: boolean | undefined;
|
|
220
250
|
yes?: boolean | undefined;
|
|
221
251
|
}, {
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
252
|
+
componentLibrary?: "base" | "radix" | undefined;
|
|
253
|
+
style?: "vega" | "nova" | "maia" | "lyra" | "mira" | undefined;
|
|
254
|
+
baseColor?: "neutral" | "stone" | "zinc" | "gray" | undefined;
|
|
255
|
+
themeColor?: "neutral" | "amber" | "blue" | "cyan" | "emerald" | "fuchsia" | "green" | "indigo" | "lime" | "orange" | "pink" | "purple" | "red" | "rose" | "sky" | "teal" | "violet" | "yellow" | undefined;
|
|
256
|
+
iconLibrary?: "lucide" | "tabler" | "hugeicons" | "phosphor" | undefined;
|
|
257
|
+
font?: "inter" | "noto-sans" | "nunito-sans" | "figtree" | "roboto" | "raleway" | "dm-sans" | "public-sans" | "outfit" | "jetbrains-mono" | undefined;
|
|
258
|
+
menuAccent?: "subtle" | "bold" | undefined;
|
|
259
|
+
menuColor?: "default" | "inverted" | undefined;
|
|
260
|
+
radius?: "none" | "default" | "small" | "medium" | "large" | undefined;
|
|
230
261
|
organizations?: boolean | undefined;
|
|
231
262
|
analytics?: "none" | "posthog" | "vercel" | undefined;
|
|
232
263
|
uploads?: "none" | "convex-fs" | "r2" | "uploadthing" | "s3" | "vercel-blob" | undefined;
|
|
264
|
+
payments?: "none" | "stripe" | "polar" | undefined;
|
|
265
|
+
payloadStorage?: "r2" | "s3" | "vercel-blob" | "local" | "gcs" | undefined;
|
|
233
266
|
projectName?: string | undefined;
|
|
234
267
|
structure?: "standalone" | "monorepo" | undefined;
|
|
235
268
|
marketingSite?: "none" | "nextjs" | "payload" | undefined;
|
|
@@ -247,15 +280,20 @@ type MarketingSite = z.infer<typeof MarketingSiteSchema>;
|
|
|
247
280
|
type AuthProvider = z.infer<typeof AuthProviderSchema>;
|
|
248
281
|
type AnalyticsProvider = z.infer<typeof AnalyticsProviderSchema>;
|
|
249
282
|
type UploadsProvider = z.infer<typeof UploadsProviderSchema>;
|
|
283
|
+
type PayloadStorageProvider = z.infer<typeof PayloadStorageProviderSchema>;
|
|
284
|
+
type PaymentProvider = z.infer<typeof PaymentProviderSchema>;
|
|
285
|
+
type ComponentLibrary = z.infer<typeof ComponentLibrarySchema>;
|
|
286
|
+
type ShadcnStyle = z.infer<typeof ShadcnStyleSchema>;
|
|
250
287
|
type BaseColor = z.infer<typeof BaseColorSchema>;
|
|
251
288
|
type ThemeColor = z.infer<typeof ThemeColorSchema>;
|
|
252
|
-
type MenuAccent = z.infer<typeof MenuAccentSchema>;
|
|
253
289
|
type IconLibrary = z.infer<typeof IconLibrarySchema>;
|
|
254
|
-
type
|
|
255
|
-
type
|
|
256
|
-
type
|
|
290
|
+
type Font = z.infer<typeof FontSchema>;
|
|
291
|
+
type MenuAccent = z.infer<typeof MenuAccentSchema>;
|
|
292
|
+
type MenuColor = z.infer<typeof MenuColorSchema>;
|
|
293
|
+
type Radius = z.infer<typeof RadiusSchema>;
|
|
257
294
|
type PackageManager = z.infer<typeof PackageManagerSchema>;
|
|
258
295
|
type Addon = z.infer<typeof AddonSchema>;
|
|
296
|
+
type OptionalApp = z.infer<typeof OptionalAppSchema>;
|
|
259
297
|
type DesignSystemConfig = z.infer<typeof DesignSystemConfigSchema>;
|
|
260
298
|
type AuthConfig = z.infer<typeof AuthConfigSchema>;
|
|
261
299
|
type IntegrationsConfig = z.infer<typeof IntegrationsConfigSchema>;
|
|
@@ -291,4 +329,4 @@ interface GeneratorResult {
|
|
|
291
329
|
errors?: string[];
|
|
292
330
|
}
|
|
293
331
|
|
|
294
|
-
export { type Addon, AddonSchema, type AnalyticsProvider, AnalyticsProviderSchema, type AuthConfig, AuthConfigSchema, type AuthProvider, AuthProviderSchema, type BaseColor, BaseColorSchema, type
|
|
332
|
+
export { type Addon, AddonSchema, type AnalyticsProvider, AnalyticsProviderSchema, type AuthConfig, AuthConfigSchema, type AuthProvider, AuthProviderSchema, type BaseColor, BaseColorSchema, type CLIInput, CLIInputSchema, type ComponentLibrary, ComponentLibrarySchema, DEFAULT_CONFIG, type DesignSystemConfig, DesignSystemConfigSchema, type Font, FontSchema, type GeneratorOptions, type GeneratorResult, type IconLibrary, IconLibrarySchema, type IntegrationsConfig, IntegrationsConfigSchema, type MarketingSite, MarketingSiteSchema, type MenuAccent, MenuAccentSchema, type MenuColor, MenuColorSchema, type OptionalApp, OptionalAppSchema, type PackageManager, PackageManagerSchema, type PayloadStorageProvider, PayloadStorageProviderSchema, type PaymentProvider, PaymentProviderSchema, type ProjectConfig, ProjectConfigSchema, type ProjectStructure, ProjectStructureSchema, type Radius, RadiusSchema, type ShadcnStyle, ShadcnStyleSchema, type ThemeColor, ThemeColorSchema, type UploadsProvider, UploadsProviderSchema, type VirtualDirectory, type VirtualFile, type VirtualFileTree, type VirtualNode };
|
package/dist/index.js
CHANGED
|
@@ -20,27 +20,53 @@ var UploadsProviderSchema = z.enum([
|
|
|
20
20
|
"s3",
|
|
21
21
|
"vercel-blob"
|
|
22
22
|
]);
|
|
23
|
+
var PayloadStorageProviderSchema = z.enum([
|
|
24
|
+
"local",
|
|
25
|
+
"s3",
|
|
26
|
+
"vercel-blob",
|
|
27
|
+
"gcs",
|
|
28
|
+
"r2"
|
|
29
|
+
]);
|
|
23
30
|
var PaymentProviderSchema = z.enum(["none", "stripe", "polar"]);
|
|
24
|
-
var
|
|
31
|
+
var ComponentLibrarySchema = z.enum(["base", "radix"]);
|
|
32
|
+
var ShadcnStyleSchema = z.enum(["vega", "nova", "maia", "lyra", "mira"]);
|
|
33
|
+
var BaseColorSchema = z.enum(["neutral", "stone", "zinc", "gray"]);
|
|
25
34
|
var ThemeColorSchema = z.enum([
|
|
26
|
-
"zinc",
|
|
27
|
-
"slate",
|
|
28
|
-
"stone",
|
|
29
|
-
"gray",
|
|
30
35
|
"neutral",
|
|
36
|
+
"amber",
|
|
37
|
+
"blue",
|
|
38
|
+
"cyan",
|
|
39
|
+
"emerald",
|
|
40
|
+
"fuchsia",
|
|
41
|
+
"green",
|
|
42
|
+
"indigo",
|
|
43
|
+
"lime",
|
|
44
|
+
"orange",
|
|
45
|
+
"pink",
|
|
46
|
+
"purple",
|
|
31
47
|
"red",
|
|
32
48
|
"rose",
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"yellow"
|
|
37
|
-
"violet"
|
|
49
|
+
"sky",
|
|
50
|
+
"teal",
|
|
51
|
+
"violet",
|
|
52
|
+
"yellow"
|
|
38
53
|
]);
|
|
39
|
-
var
|
|
40
|
-
var
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
54
|
+
var IconLibrarySchema = z.enum(["lucide", "tabler", "hugeicons", "phosphor"]);
|
|
55
|
+
var FontSchema = z.enum([
|
|
56
|
+
"inter",
|
|
57
|
+
"noto-sans",
|
|
58
|
+
"nunito-sans",
|
|
59
|
+
"figtree",
|
|
60
|
+
"roboto",
|
|
61
|
+
"raleway",
|
|
62
|
+
"dm-sans",
|
|
63
|
+
"public-sans",
|
|
64
|
+
"outfit",
|
|
65
|
+
"jetbrains-mono"
|
|
66
|
+
]);
|
|
67
|
+
var MenuAccentSchema = z.enum(["subtle", "bold"]);
|
|
68
|
+
var MenuColorSchema = z.enum(["default", "inverted"]);
|
|
69
|
+
var RadiusSchema = z.enum(["default", "none", "small", "medium", "large"]);
|
|
44
70
|
var PackageManagerSchema = z.enum(["pnpm", "npm", "bun"]);
|
|
45
71
|
var AddonSchema = z.enum([
|
|
46
72
|
"biome",
|
|
@@ -51,15 +77,17 @@ var AddonSchema = z.enum([
|
|
|
51
77
|
"rate-limiting",
|
|
52
78
|
"monitoring"
|
|
53
79
|
]);
|
|
80
|
+
var OptionalAppSchema = z.enum(["design-system", "mobile", "admin"]);
|
|
54
81
|
var DesignSystemConfigSchema = z.object({
|
|
82
|
+
componentLibrary: ComponentLibrarySchema,
|
|
83
|
+
style: ShadcnStyleSchema,
|
|
55
84
|
baseColor: BaseColorSchema,
|
|
56
85
|
themeColor: ThemeColorSchema,
|
|
57
|
-
menuAccent: MenuAccentSchema,
|
|
58
86
|
iconLibrary: IconLibrarySchema,
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
87
|
+
font: FontSchema,
|
|
88
|
+
menuAccent: MenuAccentSchema,
|
|
89
|
+
menuColor: MenuColorSchema,
|
|
90
|
+
radius: RadiusSchema
|
|
63
91
|
});
|
|
64
92
|
var AuthConfigSchema = z.object({
|
|
65
93
|
providers: z.array(AuthProviderSchema),
|
|
@@ -68,7 +96,8 @@ var AuthConfigSchema = z.object({
|
|
|
68
96
|
var IntegrationsConfigSchema = z.object({
|
|
69
97
|
analytics: AnalyticsProviderSchema,
|
|
70
98
|
uploads: UploadsProviderSchema,
|
|
71
|
-
payments: PaymentProviderSchema
|
|
99
|
+
payments: PaymentProviderSchema,
|
|
100
|
+
payloadStorage: PayloadStorageProviderSchema.optional()
|
|
72
101
|
});
|
|
73
102
|
var ProjectConfigSchema = z.object({
|
|
74
103
|
// Basic info
|
|
@@ -85,6 +114,8 @@ var ProjectConfigSchema = z.object({
|
|
|
85
114
|
integrations: IntegrationsConfigSchema,
|
|
86
115
|
// Addons
|
|
87
116
|
addons: z.array(AddonSchema),
|
|
117
|
+
// Optional apps (monorepo only)
|
|
118
|
+
optionalApps: z.array(OptionalAppSchema),
|
|
88
119
|
// Setup options
|
|
89
120
|
packageManager: PackageManagerSchema
|
|
90
121
|
});
|
|
@@ -92,18 +123,24 @@ var CLIInputSchema = z.object({
|
|
|
92
123
|
projectName: z.string().optional(),
|
|
93
124
|
structure: ProjectStructureSchema.optional(),
|
|
94
125
|
marketingSite: MarketingSiteSchema.optional(),
|
|
126
|
+
// shadcn v4 options
|
|
127
|
+
componentLibrary: ComponentLibrarySchema.optional(),
|
|
128
|
+
style: ShadcnStyleSchema.optional(),
|
|
95
129
|
baseColor: BaseColorSchema.optional(),
|
|
96
130
|
themeColor: ThemeColorSchema.optional(),
|
|
97
|
-
menuAccent: MenuAccentSchema.optional(),
|
|
98
131
|
iconLibrary: IconLibrarySchema.optional(),
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
132
|
+
font: FontSchema.optional(),
|
|
133
|
+
menuAccent: MenuAccentSchema.optional(),
|
|
134
|
+
menuColor: MenuColorSchema.optional(),
|
|
135
|
+
radius: RadiusSchema.optional(),
|
|
136
|
+
// Auth
|
|
103
137
|
authProviders: z.array(AuthProviderSchema).optional(),
|
|
104
138
|
organizations: z.boolean().optional(),
|
|
139
|
+
// Integrations
|
|
105
140
|
analytics: AnalyticsProviderSchema.optional(),
|
|
106
141
|
uploads: UploadsProviderSchema.optional(),
|
|
142
|
+
payments: PaymentProviderSchema.optional(),
|
|
143
|
+
payloadStorage: PayloadStorageProviderSchema.optional(),
|
|
107
144
|
addons: z.array(AddonSchema).optional(),
|
|
108
145
|
git: z.boolean().optional(),
|
|
109
146
|
packageManager: PackageManagerSchema.optional(),
|
|
@@ -117,14 +154,15 @@ var DEFAULT_CONFIG = {
|
|
|
117
154
|
structure: "standalone",
|
|
118
155
|
marketingSite: "none",
|
|
119
156
|
shadcn: {
|
|
157
|
+
componentLibrary: "base",
|
|
158
|
+
style: "nova",
|
|
120
159
|
baseColor: "neutral",
|
|
121
|
-
themeColor: "
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
spacingScale: "default"
|
|
160
|
+
themeColor: "neutral",
|
|
161
|
+
iconLibrary: "hugeicons",
|
|
162
|
+
font: "inter",
|
|
163
|
+
menuAccent: "subtle",
|
|
164
|
+
menuColor: "default",
|
|
165
|
+
radius: "default"
|
|
128
166
|
},
|
|
129
167
|
auth: {
|
|
130
168
|
providers: ["github", "google"],
|
|
@@ -136,6 +174,7 @@ var DEFAULT_CONFIG = {
|
|
|
136
174
|
payments: "none"
|
|
137
175
|
},
|
|
138
176
|
addons: [],
|
|
177
|
+
optionalApps: [],
|
|
139
178
|
packageManager: "pnpm"
|
|
140
179
|
};
|
|
141
180
|
export {
|
|
@@ -144,19 +183,24 @@ export {
|
|
|
144
183
|
AuthConfigSchema,
|
|
145
184
|
AuthProviderSchema,
|
|
146
185
|
BaseColorSchema,
|
|
147
|
-
BorderRadiusSchema,
|
|
148
186
|
CLIInputSchema,
|
|
187
|
+
ComponentLibrarySchema,
|
|
149
188
|
DEFAULT_CONFIG,
|
|
150
189
|
DesignSystemConfigSchema,
|
|
151
|
-
|
|
190
|
+
FontSchema,
|
|
152
191
|
IconLibrarySchema,
|
|
153
192
|
IntegrationsConfigSchema,
|
|
154
193
|
MarketingSiteSchema,
|
|
155
194
|
MenuAccentSchema,
|
|
195
|
+
MenuColorSchema,
|
|
196
|
+
OptionalAppSchema,
|
|
156
197
|
PackageManagerSchema,
|
|
198
|
+
PayloadStorageProviderSchema,
|
|
199
|
+
PaymentProviderSchema,
|
|
157
200
|
ProjectConfigSchema,
|
|
158
201
|
ProjectStructureSchema,
|
|
159
|
-
|
|
202
|
+
RadiusSchema,
|
|
203
|
+
ShadcnStyleSchema,
|
|
160
204
|
ThemeColorSchema,
|
|
161
205
|
UploadsProviderSchema
|
|
162
206
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kofi-stack-types",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.36",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -10,6 +10,11 @@
|
|
|
10
10
|
"types": "./dist/index.d.ts"
|
|
11
11
|
}
|
|
12
12
|
},
|
|
13
|
+
"scripts": {
|
|
14
|
+
"build": "tsup src/index.ts --format esm --dts",
|
|
15
|
+
"dev": "tsup src/index.ts --format esm --dts --watch",
|
|
16
|
+
"typecheck": "tsc --noEmit"
|
|
17
|
+
},
|
|
13
18
|
"dependencies": {
|
|
14
19
|
"zod": "^3.23.0"
|
|
15
20
|
},
|
|
@@ -17,10 +22,5 @@
|
|
|
17
22
|
"@types/node": "^20.0.0",
|
|
18
23
|
"tsup": "^8.0.0",
|
|
19
24
|
"typescript": "^5.0.0"
|
|
20
|
-
},
|
|
21
|
-
"scripts": {
|
|
22
|
-
"build": "tsup src/index.ts --format esm --dts",
|
|
23
|
-
"dev": "tsup src/index.ts --format esm --dts --watch",
|
|
24
|
-
"typecheck": "tsc --noEmit"
|
|
25
25
|
}
|
|
26
|
-
}
|
|
26
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -5,15 +5,22 @@ export {
|
|
|
5
5
|
AuthProviderSchema,
|
|
6
6
|
AnalyticsProviderSchema,
|
|
7
7
|
UploadsProviderSchema,
|
|
8
|
+
PayloadStorageProviderSchema,
|
|
9
|
+
PaymentProviderSchema,
|
|
10
|
+
// shadcn v4 schemas
|
|
11
|
+
ComponentLibrarySchema,
|
|
12
|
+
ShadcnStyleSchema,
|
|
8
13
|
BaseColorSchema,
|
|
9
14
|
ThemeColorSchema,
|
|
10
|
-
MenuAccentSchema,
|
|
11
15
|
IconLibrarySchema,
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
16
|
+
FontSchema,
|
|
17
|
+
MenuAccentSchema,
|
|
18
|
+
MenuColorSchema,
|
|
19
|
+
RadiusSchema,
|
|
20
|
+
// Config schemas
|
|
15
21
|
PackageManagerSchema,
|
|
16
22
|
AddonSchema,
|
|
23
|
+
OptionalAppSchema,
|
|
17
24
|
DesignSystemConfigSchema,
|
|
18
25
|
AuthConfigSchema,
|
|
19
26
|
IntegrationsConfigSchema,
|
|
@@ -29,15 +36,22 @@ export type {
|
|
|
29
36
|
AuthProvider,
|
|
30
37
|
AnalyticsProvider,
|
|
31
38
|
UploadsProvider,
|
|
39
|
+
PayloadStorageProvider,
|
|
40
|
+
PaymentProvider,
|
|
41
|
+
// shadcn v4 types
|
|
42
|
+
ComponentLibrary,
|
|
43
|
+
ShadcnStyle,
|
|
32
44
|
BaseColor,
|
|
33
45
|
ThemeColor,
|
|
34
|
-
MenuAccent,
|
|
35
46
|
IconLibrary,
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
47
|
+
Font,
|
|
48
|
+
MenuAccent,
|
|
49
|
+
MenuColor,
|
|
50
|
+
Radius,
|
|
51
|
+
// Config types
|
|
39
52
|
PackageManager,
|
|
40
53
|
Addon,
|
|
54
|
+
OptionalApp,
|
|
41
55
|
DesignSystemConfig,
|
|
42
56
|
AuthConfig,
|
|
43
57
|
IntegrationsConfig,
|
package/src/schemas.ts
CHANGED
|
@@ -20,7 +20,7 @@ export const AuthProviderSchema = z.enum([
|
|
|
20
20
|
// Analytics providers
|
|
21
21
|
export const AnalyticsProviderSchema = z.enum(['none', 'posthog', 'vercel'])
|
|
22
22
|
|
|
23
|
-
// Upload/Storage providers
|
|
23
|
+
// Upload/Storage providers (for web app - Convex-based)
|
|
24
24
|
export const UploadsProviderSchema = z.enum([
|
|
25
25
|
'none',
|
|
26
26
|
'convex-fs',
|
|
@@ -30,43 +30,78 @@ export const UploadsProviderSchema = z.enum([
|
|
|
30
30
|
'vercel-blob',
|
|
31
31
|
])
|
|
32
32
|
|
|
33
|
+
// Payload CMS Storage providers
|
|
34
|
+
export const PayloadStorageProviderSchema = z.enum([
|
|
35
|
+
'local',
|
|
36
|
+
's3',
|
|
37
|
+
'vercel-blob',
|
|
38
|
+
'gcs',
|
|
39
|
+
'r2',
|
|
40
|
+
])
|
|
41
|
+
|
|
33
42
|
// Payment providers
|
|
34
43
|
export const PaymentProviderSchema = z.enum(['none', 'stripe', 'polar'])
|
|
35
44
|
|
|
45
|
+
// ============================================
|
|
46
|
+
// shadcn UI v4 Design System Options
|
|
47
|
+
// ============================================
|
|
48
|
+
|
|
49
|
+
// Component library (base or radix primitives)
|
|
50
|
+
export const ComponentLibrarySchema = z.enum(['base', 'radix'])
|
|
36
51
|
|
|
37
|
-
//
|
|
38
|
-
export const
|
|
52
|
+
// Style presets (shadcn v4)
|
|
53
|
+
export const ShadcnStyleSchema = z.enum(['vega', 'nova', 'maia', 'lyra', 'mira'])
|
|
39
54
|
|
|
40
|
-
//
|
|
55
|
+
// Base color (background/surface colors)
|
|
56
|
+
export const BaseColorSchema = z.enum(['neutral', 'stone', 'zinc', 'gray'])
|
|
57
|
+
|
|
58
|
+
// Theme color (accent/primary color)
|
|
41
59
|
export const ThemeColorSchema = z.enum([
|
|
42
|
-
'zinc',
|
|
43
|
-
'slate',
|
|
44
|
-
'stone',
|
|
45
|
-
'gray',
|
|
46
60
|
'neutral',
|
|
61
|
+
'amber',
|
|
62
|
+
'blue',
|
|
63
|
+
'cyan',
|
|
64
|
+
'emerald',
|
|
65
|
+
'fuchsia',
|
|
66
|
+
'green',
|
|
67
|
+
'indigo',
|
|
68
|
+
'lime',
|
|
69
|
+
'orange',
|
|
70
|
+
'pink',
|
|
71
|
+
'purple',
|
|
47
72
|
'red',
|
|
48
73
|
'rose',
|
|
49
|
-
'
|
|
50
|
-
'
|
|
51
|
-
'blue',
|
|
52
|
-
'yellow',
|
|
74
|
+
'sky',
|
|
75
|
+
'teal',
|
|
53
76
|
'violet',
|
|
77
|
+
'yellow',
|
|
54
78
|
])
|
|
55
79
|
|
|
56
|
-
// Menu accent
|
|
57
|
-
export const MenuAccentSchema = z.enum(['none', 'muted', 'primary'])
|
|
58
|
-
|
|
59
80
|
// Icon library
|
|
60
|
-
export const IconLibrarySchema = z.enum(['lucide', 'hugeicons'])
|
|
81
|
+
export const IconLibrarySchema = z.enum(['lucide', 'tabler', 'hugeicons', 'phosphor'])
|
|
82
|
+
|
|
83
|
+
// Font
|
|
84
|
+
export const FontSchema = z.enum([
|
|
85
|
+
'inter',
|
|
86
|
+
'noto-sans',
|
|
87
|
+
'nunito-sans',
|
|
88
|
+
'figtree',
|
|
89
|
+
'roboto',
|
|
90
|
+
'raleway',
|
|
91
|
+
'dm-sans',
|
|
92
|
+
'public-sans',
|
|
93
|
+
'outfit',
|
|
94
|
+
'jetbrains-mono',
|
|
95
|
+
])
|
|
61
96
|
|
|
62
|
-
//
|
|
63
|
-
export const
|
|
97
|
+
// Menu accent
|
|
98
|
+
export const MenuAccentSchema = z.enum(['subtle', 'bold'])
|
|
64
99
|
|
|
65
|
-
//
|
|
66
|
-
export const
|
|
100
|
+
// Menu color
|
|
101
|
+
export const MenuColorSchema = z.enum(['default', 'inverted'])
|
|
67
102
|
|
|
68
|
-
//
|
|
69
|
-
export const
|
|
103
|
+
// Border radius
|
|
104
|
+
export const RadiusSchema = z.enum(['default', 'none', 'small', 'medium', 'large'])
|
|
70
105
|
|
|
71
106
|
// Package manager
|
|
72
107
|
export const PackageManagerSchema = z.enum(['pnpm', 'npm', 'bun'])
|
|
@@ -82,16 +117,20 @@ export const AddonSchema = z.enum([
|
|
|
82
117
|
'monitoring',
|
|
83
118
|
])
|
|
84
119
|
|
|
85
|
-
//
|
|
120
|
+
// Optional apps (monorepo only)
|
|
121
|
+
export const OptionalAppSchema = z.enum(['design-system', 'mobile', 'admin'])
|
|
122
|
+
|
|
123
|
+
// Design system configuration (shadcn v4)
|
|
86
124
|
export const DesignSystemConfigSchema = z.object({
|
|
125
|
+
componentLibrary: ComponentLibrarySchema,
|
|
126
|
+
style: ShadcnStyleSchema,
|
|
87
127
|
baseColor: BaseColorSchema,
|
|
88
128
|
themeColor: ThemeColorSchema,
|
|
89
|
-
menuAccent: MenuAccentSchema,
|
|
90
129
|
iconLibrary: IconLibrarySchema,
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
130
|
+
font: FontSchema,
|
|
131
|
+
menuAccent: MenuAccentSchema,
|
|
132
|
+
menuColor: MenuColorSchema,
|
|
133
|
+
radius: RadiusSchema,
|
|
95
134
|
})
|
|
96
135
|
|
|
97
136
|
// Auth configuration
|
|
@@ -105,6 +144,7 @@ export const IntegrationsConfigSchema = z.object({
|
|
|
105
144
|
analytics: AnalyticsProviderSchema,
|
|
106
145
|
uploads: UploadsProviderSchema,
|
|
107
146
|
payments: PaymentProviderSchema,
|
|
147
|
+
payloadStorage: PayloadStorageProviderSchema.optional(),
|
|
108
148
|
})
|
|
109
149
|
|
|
110
150
|
// Complete project configuration
|
|
@@ -129,6 +169,9 @@ export const ProjectConfigSchema = z.object({
|
|
|
129
169
|
// Addons
|
|
130
170
|
addons: z.array(AddonSchema),
|
|
131
171
|
|
|
172
|
+
// Optional apps (monorepo only)
|
|
173
|
+
optionalApps: z.array(OptionalAppSchema),
|
|
174
|
+
|
|
132
175
|
// Setup options
|
|
133
176
|
packageManager: PackageManagerSchema,
|
|
134
177
|
})
|
|
@@ -138,18 +181,24 @@ export const CLIInputSchema = z.object({
|
|
|
138
181
|
projectName: z.string().optional(),
|
|
139
182
|
structure: ProjectStructureSchema.optional(),
|
|
140
183
|
marketingSite: MarketingSiteSchema.optional(),
|
|
184
|
+
// shadcn v4 options
|
|
185
|
+
componentLibrary: ComponentLibrarySchema.optional(),
|
|
186
|
+
style: ShadcnStyleSchema.optional(),
|
|
141
187
|
baseColor: BaseColorSchema.optional(),
|
|
142
188
|
themeColor: ThemeColorSchema.optional(),
|
|
143
|
-
menuAccent: MenuAccentSchema.optional(),
|
|
144
189
|
iconLibrary: IconLibrarySchema.optional(),
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
190
|
+
font: FontSchema.optional(),
|
|
191
|
+
menuAccent: MenuAccentSchema.optional(),
|
|
192
|
+
menuColor: MenuColorSchema.optional(),
|
|
193
|
+
radius: RadiusSchema.optional(),
|
|
194
|
+
// Auth
|
|
149
195
|
authProviders: z.array(AuthProviderSchema).optional(),
|
|
150
196
|
organizations: z.boolean().optional(),
|
|
197
|
+
// Integrations
|
|
151
198
|
analytics: AnalyticsProviderSchema.optional(),
|
|
152
199
|
uploads: UploadsProviderSchema.optional(),
|
|
200
|
+
payments: PaymentProviderSchema.optional(),
|
|
201
|
+
payloadStorage: PayloadStorageProviderSchema.optional(),
|
|
153
202
|
addons: z.array(AddonSchema).optional(),
|
|
154
203
|
git: z.boolean().optional(),
|
|
155
204
|
packageManager: PackageManagerSchema.optional(),
|
|
@@ -164,14 +213,15 @@ export const DEFAULT_CONFIG: z.infer<typeof ProjectConfigSchema> = {
|
|
|
164
213
|
structure: 'standalone',
|
|
165
214
|
marketingSite: 'none',
|
|
166
215
|
shadcn: {
|
|
216
|
+
componentLibrary: 'base',
|
|
217
|
+
style: 'nova',
|
|
167
218
|
baseColor: 'neutral',
|
|
168
|
-
themeColor: '
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
spacingScale: 'default',
|
|
219
|
+
themeColor: 'neutral',
|
|
220
|
+
iconLibrary: 'hugeicons',
|
|
221
|
+
font: 'inter',
|
|
222
|
+
menuAccent: 'subtle',
|
|
223
|
+
menuColor: 'default',
|
|
224
|
+
radius: 'default',
|
|
175
225
|
},
|
|
176
226
|
auth: {
|
|
177
227
|
providers: ['github', 'google'],
|
|
@@ -183,5 +233,6 @@ export const DEFAULT_CONFIG: z.infer<typeof ProjectConfigSchema> = {
|
|
|
183
233
|
payments: 'none',
|
|
184
234
|
},
|
|
185
235
|
addons: [],
|
|
236
|
+
optionalApps: [],
|
|
186
237
|
packageManager: 'pnpm',
|
|
187
238
|
}
|
package/src/types.ts
CHANGED
|
@@ -5,16 +5,21 @@ import type {
|
|
|
5
5
|
AuthProviderSchema,
|
|
6
6
|
AnalyticsProviderSchema,
|
|
7
7
|
UploadsProviderSchema,
|
|
8
|
+
PayloadStorageProviderSchema,
|
|
8
9
|
PaymentProviderSchema,
|
|
10
|
+
// shadcn v4 schemas
|
|
11
|
+
ComponentLibrarySchema,
|
|
12
|
+
ShadcnStyleSchema,
|
|
9
13
|
BaseColorSchema,
|
|
10
14
|
ThemeColorSchema,
|
|
11
|
-
MenuAccentSchema,
|
|
12
15
|
IconLibrarySchema,
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
+
FontSchema,
|
|
17
|
+
MenuAccentSchema,
|
|
18
|
+
MenuColorSchema,
|
|
19
|
+
RadiusSchema,
|
|
16
20
|
PackageManagerSchema,
|
|
17
21
|
AddonSchema,
|
|
22
|
+
OptionalAppSchema,
|
|
18
23
|
DesignSystemConfigSchema,
|
|
19
24
|
AuthConfigSchema,
|
|
20
25
|
IntegrationsConfigSchema,
|
|
@@ -28,16 +33,23 @@ export type MarketingSite = z.infer<typeof MarketingSiteSchema>
|
|
|
28
33
|
export type AuthProvider = z.infer<typeof AuthProviderSchema>
|
|
29
34
|
export type AnalyticsProvider = z.infer<typeof AnalyticsProviderSchema>
|
|
30
35
|
export type UploadsProvider = z.infer<typeof UploadsProviderSchema>
|
|
36
|
+
export type PayloadStorageProvider = z.infer<typeof PayloadStorageProviderSchema>
|
|
31
37
|
export type PaymentProvider = z.infer<typeof PaymentProviderSchema>
|
|
38
|
+
|
|
39
|
+
// shadcn v4 types
|
|
40
|
+
export type ComponentLibrary = z.infer<typeof ComponentLibrarySchema>
|
|
41
|
+
export type ShadcnStyle = z.infer<typeof ShadcnStyleSchema>
|
|
32
42
|
export type BaseColor = z.infer<typeof BaseColorSchema>
|
|
33
43
|
export type ThemeColor = z.infer<typeof ThemeColorSchema>
|
|
34
|
-
export type MenuAccent = z.infer<typeof MenuAccentSchema>
|
|
35
44
|
export type IconLibrary = z.infer<typeof IconLibrarySchema>
|
|
36
|
-
export type
|
|
37
|
-
export type
|
|
38
|
-
export type
|
|
45
|
+
export type Font = z.infer<typeof FontSchema>
|
|
46
|
+
export type MenuAccent = z.infer<typeof MenuAccentSchema>
|
|
47
|
+
export type MenuColor = z.infer<typeof MenuColorSchema>
|
|
48
|
+
export type Radius = z.infer<typeof RadiusSchema>
|
|
49
|
+
|
|
39
50
|
export type PackageManager = z.infer<typeof PackageManagerSchema>
|
|
40
51
|
export type Addon = z.infer<typeof AddonSchema>
|
|
52
|
+
export type OptionalApp = z.infer<typeof OptionalAppSchema>
|
|
41
53
|
export type DesignSystemConfig = z.infer<typeof DesignSystemConfigSchema>
|
|
42
54
|
export type AuthConfig = z.infer<typeof AuthConfigSchema>
|
|
43
55
|
export type IntegrationsConfig = z.infer<typeof IntegrationsConfigSchema>
|