@krate/core 0.4.0-beta.1 → 0.4.0-beta.2
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/bin/krate +0 -0
- package/dist/config.d.ts +103 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +29 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/package.json +9 -9
package/bin/krate
CHANGED
|
Binary file
|
package/dist/config.d.ts
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* outDir: "dist",
|
|
12
12
|
* plugins: [
|
|
13
13
|
* sitemap({ baseUrl: "https://example.com" }),
|
|
14
|
-
* docs({ contentDir: "content/docs", title: "Docs" }),
|
|
14
|
+
* docs({ contentDir: "src/content/docs", title: "Docs" }),
|
|
15
15
|
* ],
|
|
16
16
|
* });
|
|
17
17
|
* ```
|
|
@@ -158,6 +158,33 @@ export interface KrateConfig {
|
|
|
158
158
|
runtimeDirs?: string[];
|
|
159
159
|
pathAliases?: Record<string, string[]>;
|
|
160
160
|
tsBaseDir?: string;
|
|
161
|
+
/**
|
|
162
|
+
* Output mode. Default (`undefined`) allows request-time rendering
|
|
163
|
+
* (SSR/ISR/streaming and dynamic route fallbacks). `"static"` produces a
|
|
164
|
+
* fully static build: dynamic routes render only the params returned by
|
|
165
|
+
* `generateStaticParams`, unknown params 404, and SSR/ISR/streaming are
|
|
166
|
+
* disabled. A page can opt back in with `export const dynamicParams = true`.
|
|
167
|
+
*/
|
|
168
|
+
output?: "static";
|
|
169
|
+
/**
|
|
170
|
+
* Compiler-enforced quality gates. When configured, `krate build` runs the
|
|
171
|
+
* rules and fails on findings at or above `failOn`; `krate check` runs the
|
|
172
|
+
* same rules on an existing build. Categories run by default only when a
|
|
173
|
+
* `checks` object is present.
|
|
174
|
+
*/
|
|
175
|
+
checks?: ChecksConfig;
|
|
176
|
+
/**
|
|
177
|
+
* Typed content collections. Either a plain object or `defineContent({...})`:
|
|
178
|
+
*
|
|
179
|
+
* ```ts
|
|
180
|
+
* export default defineConfig({
|
|
181
|
+
* content: defineContent({
|
|
182
|
+
* blog: { dir: "src/content/blog", schema: { title: "string" } },
|
|
183
|
+
* }),
|
|
184
|
+
* });
|
|
185
|
+
* ```
|
|
186
|
+
*/
|
|
187
|
+
content?: ContentConfig;
|
|
161
188
|
/** Optional validation function called at build time with the loaded config. */
|
|
162
189
|
validate?: (config: KrateConfig) => void | Promise<void>;
|
|
163
190
|
}
|
|
@@ -175,4 +202,79 @@ export declare function sitemap(options: SitemapPluginOptions): PluginConfig;
|
|
|
175
202
|
* content directory.
|
|
176
203
|
*/
|
|
177
204
|
export declare function docs(options?: DocsPluginOptions): PluginConfig;
|
|
205
|
+
/** Shorthand field types accepted in a collection schema. */
|
|
206
|
+
export type ContentFieldType = "string" | "number" | "boolean" | "string[]" | "number[]" | "date";
|
|
207
|
+
/** Object form of a schema field. */
|
|
208
|
+
export interface ContentField {
|
|
209
|
+
type: ContentFieldType;
|
|
210
|
+
/** Require the field to be present in frontmatter (default: false). */
|
|
211
|
+
required?: boolean;
|
|
212
|
+
}
|
|
213
|
+
/** One field: a shorthand type string or a {@link ContentField} object. */
|
|
214
|
+
export type ContentFieldSpec = ContentFieldType | ContentField;
|
|
215
|
+
/** A single content collection. */
|
|
216
|
+
export interface ContentCollection {
|
|
217
|
+
/** Directory containing the collection's markdown/mdx entries, relative to
|
|
218
|
+
* the project root (default: `src/content/<name>`). */
|
|
219
|
+
dir?: string;
|
|
220
|
+
/** Frontmatter schema; each key maps to a field spec. */
|
|
221
|
+
schema?: Record<string, ContentFieldSpec>;
|
|
222
|
+
}
|
|
223
|
+
/** The shape passed to {@link defineContent}. */
|
|
224
|
+
export type ContentConfig = Record<string, ContentCollection>;
|
|
225
|
+
/**
|
|
226
|
+
* Define typed content collections. Optional identity helper — you can also
|
|
227
|
+
* pass a plain object to `defineConfig({ content: {...} })`; it exists purely
|
|
228
|
+
* for type-checking and editor assistance.
|
|
229
|
+
*
|
|
230
|
+
* Krate validates each entry's frontmatter against the schema at build time and
|
|
231
|
+
* generates typed declarations (`.krate/types/content.d.ts`).
|
|
232
|
+
*
|
|
233
|
+
* ```ts
|
|
234
|
+
* import { defineConfig, defineContent } from "@krate/core";
|
|
235
|
+
*
|
|
236
|
+
* export default defineConfig({
|
|
237
|
+
* content: defineContent({
|
|
238
|
+
* blog: {
|
|
239
|
+
* dir: "src/content/blog",
|
|
240
|
+
* schema: {
|
|
241
|
+
* title: "string",
|
|
242
|
+
* order: { type: "number", required: true },
|
|
243
|
+
* tags: "string[]",
|
|
244
|
+
* },
|
|
245
|
+
* },
|
|
246
|
+
* }),
|
|
247
|
+
* });
|
|
248
|
+
* ```
|
|
249
|
+
*/
|
|
250
|
+
export declare function defineContent(config: ContentConfig): ContentConfig;
|
|
251
|
+
/** Severity for a check rule or category. `false` disables it. */
|
|
252
|
+
export type CheckSeverity = "error" | "warning" | "off" | boolean;
|
|
253
|
+
/** Built-in check rule IDs. */
|
|
254
|
+
export type CheckRuleId = "a11y/img-alt" | "a11y/heading-order" | "a11y/accessible-name" | "seo/title" | "seo/description" | "seo/canonical" | "seo/og" | "seo/lang" | "perf/js-budget" | "perf/image-dims";
|
|
255
|
+
export interface ChecksConfig {
|
|
256
|
+
/** Master switch (default: true when `checks` is present). */
|
|
257
|
+
enabled?: boolean;
|
|
258
|
+
/** Accessibility rules. `false` turns the category off. */
|
|
259
|
+
a11y?: CheckSeverity;
|
|
260
|
+
/** SEO rules. */
|
|
261
|
+
seo?: CheckSeverity;
|
|
262
|
+
/** Performance-budget rules. */
|
|
263
|
+
perf?: CheckSeverity;
|
|
264
|
+
/** Per-rule severity overrides, keyed by rule ID. */
|
|
265
|
+
rules?: Partial<Record<CheckRuleId, CheckSeverity>>;
|
|
266
|
+
/** Rule IDs to suppress entirely. */
|
|
267
|
+
ignore?: CheckRuleId[];
|
|
268
|
+
/** Per-route budgets. `js` is the client-JS budget in kilobytes. */
|
|
269
|
+
budget?: {
|
|
270
|
+
js?: number;
|
|
271
|
+
};
|
|
272
|
+
/** Minimum severity that fails `krate check` / the build (default "error"). */
|
|
273
|
+
failOn?: "error" | "warning";
|
|
274
|
+
/**
|
|
275
|
+
* Paths (relative to the project root) to JS/TS modules that export a custom
|
|
276
|
+
* `check(page, krate)` rule. Runs in the embedded QuickJS runtime.
|
|
277
|
+
*/
|
|
278
|
+
custom?: string[];
|
|
279
|
+
}
|
|
178
280
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* outDir: "dist",
|
|
12
12
|
* plugins: [
|
|
13
13
|
* sitemap({ baseUrl: "https://example.com" }),
|
|
14
|
-
* docs({ contentDir: "content/docs", title: "Docs" }),
|
|
14
|
+
* docs({ contentDir: "src/content/docs", title: "Docs" }),
|
|
15
15
|
* ],
|
|
16
16
|
* });
|
|
17
17
|
* ```
|
|
@@ -36,3 +36,31 @@ export function sitemap(options) {
|
|
|
36
36
|
export function docs(options = {}) {
|
|
37
37
|
return { name: "docs", order: 10, options };
|
|
38
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Define typed content collections. Optional identity helper — you can also
|
|
41
|
+
* pass a plain object to `defineConfig({ content: {...} })`; it exists purely
|
|
42
|
+
* for type-checking and editor assistance.
|
|
43
|
+
*
|
|
44
|
+
* Krate validates each entry's frontmatter against the schema at build time and
|
|
45
|
+
* generates typed declarations (`.krate/types/content.d.ts`).
|
|
46
|
+
*
|
|
47
|
+
* ```ts
|
|
48
|
+
* import { defineConfig, defineContent } from "@krate/core";
|
|
49
|
+
*
|
|
50
|
+
* export default defineConfig({
|
|
51
|
+
* content: defineContent({
|
|
52
|
+
* blog: {
|
|
53
|
+
* dir: "src/content/blog",
|
|
54
|
+
* schema: {
|
|
55
|
+
* title: "string",
|
|
56
|
+
* order: { type: "number", required: true },
|
|
57
|
+
* tags: "string[]",
|
|
58
|
+
* },
|
|
59
|
+
* },
|
|
60
|
+
* }),
|
|
61
|
+
* });
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
export function defineContent(config) {
|
|
65
|
+
return config;
|
|
66
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { defineConfig, docs, sitemap } from "./config.js";
|
|
2
|
-
export type { KrateConfig, PluginConfig, DevServerConfig, TailwindConfig, CSPConfig, MarkdownConfig, SSRConfig, RedirectConfig, RewriteConfig, SEOConfig, RobotsConfig, DocsPluginOptions, DocsSidebarItem, DocsSearchOptions, DocsThemeDescriptor, DocsThemeOptions, SitemapPluginOptions, RuntimeName, } from "./config.js";
|
|
1
|
+
export { defineConfig, docs, sitemap, defineContent } from "./config.js";
|
|
2
|
+
export type { KrateConfig, PluginConfig, DevServerConfig, TailwindConfig, CSPConfig, MarkdownConfig, SSRConfig, RedirectConfig, RewriteConfig, SEOConfig, RobotsConfig, DocsPluginOptions, DocsSidebarItem, DocsSearchOptions, DocsThemeDescriptor, DocsThemeOptions, SitemapPluginOptions, RuntimeName, ContentConfig, ContentCollection, ContentField, ContentFieldSpec, ContentFieldType, ChecksConfig, CheckSeverity, CheckRuleId, } from "./config.js";
|
|
3
3
|
export type { DocsLayoutProps } from "./config.js";
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACzE,YAAY,EACV,WAAW,EACX,YAAY,EACZ,eAAe,EACf,cAAc,EACd,SAAS,EACT,cAAc,EACd,SAAS,EACT,cAAc,EACd,aAAa,EACb,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { defineConfig, docs, sitemap } from "./config.js";
|
|
1
|
+
export { defineConfig, docs, sitemap, defineContent } from "./config.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@krate/core",
|
|
3
|
-
"version": "0.4.0-beta.
|
|
3
|
+
"version": "0.4.0-beta.2",
|
|
4
4
|
"description": "The Krate CLI — a Go-native static site generator with signal-based reactivity.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -37,20 +37,20 @@
|
|
|
37
37
|
"install.js"
|
|
38
38
|
],
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@krate/plugin": "0.4.0-beta.
|
|
40
|
+
"@krate/plugin": "0.4.0-beta.2"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@types/node": "^20.19.43",
|
|
44
44
|
"typescript": "^5.5.0"
|
|
45
45
|
},
|
|
46
46
|
"optionalDependencies": {
|
|
47
|
-
"@krate/core-darwin-arm64": "0.4.0-beta.
|
|
48
|
-
"@krate/core-darwin-x64": "0.4.0-beta.
|
|
49
|
-
"@krate/core-linux-arm64": "0.4.0-beta.
|
|
50
|
-
"@krate/core-linux-x64": "0.4.0-beta.
|
|
51
|
-
"@krate/core-linux-x64-musl": "0.4.0-beta.
|
|
52
|
-
"@krate/core-win32-arm64": "0.4.0-beta.
|
|
53
|
-
"@krate/core-win32-x64": "0.4.0-beta.
|
|
47
|
+
"@krate/core-darwin-arm64": "0.4.0-beta.2",
|
|
48
|
+
"@krate/core-darwin-x64": "0.4.0-beta.2",
|
|
49
|
+
"@krate/core-linux-arm64": "0.4.0-beta.2",
|
|
50
|
+
"@krate/core-linux-x64": "0.4.0-beta.2",
|
|
51
|
+
"@krate/core-linux-x64-musl": "0.4.0-beta.2",
|
|
52
|
+
"@krate/core-win32-arm64": "0.4.0-beta.2",
|
|
53
|
+
"@krate/core-win32-x64": "0.4.0-beta.2"
|
|
54
54
|
},
|
|
55
55
|
"scripts": {
|
|
56
56
|
"build": "tsc",
|