@vesk/types 0.2.8

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/README.md ADDED
@@ -0,0 +1,13 @@
1
+ # @vesk/types
2
+
3
+ Shared type definitions for the Vesk framework. This package is the **single
4
+ source of truth** for every public framework type — config, plugins, security,
5
+ middleware context, request/response shapes, route nodes and build options.
6
+ It has zero runtime dependencies and ships compiled `.d.ts` + no-op `.js`.
7
+
8
+ ```ts
9
+ import type { MiddlewareContext, VeskConfig, VeskRequest } from '@vesk/types';
10
+ ```
11
+
12
+ Framework packages (`@vesk/compiler`, `@vesk/adapter`) re-export these types so
13
+ existing deep imports keep working, but new code should import from here.
@@ -0,0 +1,412 @@
1
+ /**
2
+ * @vesk/types — single source of truth for every public Vesk framework type.
3
+ *
4
+ * This package is a pure leaf: no imports from other framework packages, no
5
+ * runtime values. Framework packages re-export these types for backward
6
+ * compatibility, but new code should import from '@vesk/types' directly.
7
+ */
8
+ export interface RouteNode {
9
+ path: string;
10
+ fullPath: string;
11
+ isGroup: boolean;
12
+ isDynamic: boolean;
13
+ isCatchAll: boolean;
14
+ page: string | null;
15
+ layout: string | null;
16
+ loading: string | null;
17
+ error: string | null;
18
+ notFound: string | null;
19
+ offline: string | null;
20
+ network: string | null;
21
+ hasMiddleware: boolean;
22
+ children: RouteNode[];
23
+ sourceDir: string;
24
+ segmentCount: number;
25
+ /** ISR: seconds after which the cached page may be revalidated. */
26
+ _revalidate?: number;
27
+ _isrTags?: string[];
28
+ _pageName?: string;
29
+ _layoutName?: string;
30
+ _errorName?: string;
31
+ _notFoundName?: string;
32
+ /** Client-bundle chunk URL for this node (code-split dev/prod builds). */
33
+ chunk?: string;
34
+ chunkError?: string;
35
+ }
36
+ export interface ApiRouteNode {
37
+ path: string;
38
+ fullPath: string;
39
+ isDynamic: boolean;
40
+ isCatchAll: boolean;
41
+ filePath: string | null;
42
+ children: ApiRouteNode[];
43
+ }
44
+ export interface MiddlewareContext {
45
+ request: Request;
46
+ params: Record<string, string>;
47
+ url: URL;
48
+ locals: Record<string, unknown>;
49
+ cookies: Record<string, string>;
50
+ set(key: string, value: unknown): void;
51
+ get(key: string): unknown;
52
+ [key: string]: unknown;
53
+ }
54
+ export interface MiddlewareEntry {
55
+ sourcePath: string;
56
+ node: RouteNode;
57
+ }
58
+ export interface MiddlewareChainOptions {
59
+ onLast?: (rewriteUrl: string | null, ctx?: MiddlewareContext) => Response | Promise<Response | null> | null;
60
+ plugins?: VeskPlugin[];
61
+ }
62
+ export interface MiddlewareChainItem {
63
+ sourcePath: string;
64
+ node: RouteNode;
65
+ }
66
+ export interface MiddlewareExtractResult {
67
+ params: string;
68
+ body: string;
69
+ }
70
+ export interface VeskPlugin {
71
+ name: string;
72
+ provides?: Record<string, (() => unknown | Promise<unknown>) | unknown>;
73
+ onRequest?: (ctx: MiddlewareContext) => void | Promise<void>;
74
+ onCSS?: (content: string, filePath: string) => string | null | Promise<string | null>;
75
+ onFileWatch?: (filePath: string) => {
76
+ handled: boolean;
77
+ } | Promise<{
78
+ handled: boolean;
79
+ }>;
80
+ onTransformJS?: (code: string, filePath: string) => string | null | Promise<string | null>;
81
+ onBuildStart?: () => void | Promise<void>;
82
+ onBuildEnd?: () => void | Promise<void>;
83
+ [key: string]: unknown;
84
+ }
85
+ export interface VeskCors {
86
+ origin: string | string[];
87
+ methods?: string;
88
+ headers?: string;
89
+ credentials?: boolean;
90
+ maxAge?: number;
91
+ }
92
+ export interface VeskRateLimit {
93
+ windowMs?: number;
94
+ max?: number;
95
+ }
96
+ export type VeskSecurityPreset = 'strict' | 'default' | 'minimal' | 'off';
97
+ export interface VeskSecurity {
98
+ xFrameOptions?: string | false;
99
+ hsts?: string | false;
100
+ referrerPolicy?: string | false;
101
+ contentSecurityPolicy?: boolean | string;
102
+ autoEscape?: boolean;
103
+ csrf?: boolean;
104
+ cors?: VeskCors;
105
+ trustProxy?: boolean | string;
106
+ rateLimit?: VeskRateLimit;
107
+ redactLogs?: boolean;
108
+ [key: string]: unknown;
109
+ }
110
+ /** Adapter-side alias kept for the prod server / platform handlers. */
111
+ export interface SecurityConfig {
112
+ security?: VeskSecurity;
113
+ trustProxy?: boolean;
114
+ rateLimit?: VeskRateLimit;
115
+ }
116
+ /** Raw-HTML handling policy for the `<Md>` renderer.
117
+ * - `'escape'` (default): every HTML-ish construct renders as visible text.
118
+ * - `'allow'`: raw HTML passes through verbatim — only use with trusted content.
119
+ * - `'allowlist'`: only `allowTags` pass through; event-handler attributes are
120
+ * dropped and `href`/`src` go through URL sanitization. */
121
+ export type MdHtmlMode = 'escape' | 'allow' | 'allowlist';
122
+ export interface MdConfig {
123
+ /** Raw-HTML policy for Markdown rendering. Default 'escape'. */
124
+ html?: MdHtmlMode;
125
+ /** Tag allowlist for `html: 'allowlist'`. Lowercased during validation. */
126
+ allowTags?: string[];
127
+ }
128
+ export interface VeskConfig {
129
+ appDir?: string;
130
+ outDir?: string;
131
+ publicDir?: string;
132
+ ssg?: {
133
+ getStaticPaths?: () => Promise<{
134
+ paths: Array<{
135
+ params: Record<string, string>;
136
+ }>;
137
+ }>;
138
+ };
139
+ plugins?: VeskPlugin[];
140
+ security?: VeskSecurity | VeskSecurityPreset | false | ((preset: (name: string, overrides?: VeskSecurity) => VeskSecurity) => VeskSecurity);
141
+ /** Client router route-data freshness TTL in milliseconds. The SPA router
142
+ * refetches a route's server data when it is older than this. Default 0 =
143
+ * always fetch fresh data on every SPA visit. */
144
+ routeDataCache?: number;
145
+ /** Markdown (`<Md>`) rendering options. */
146
+ md?: MdConfig;
147
+ }
148
+ export interface AncestorLayout {
149
+ sourceDir: string;
150
+ layoutCompName: string;
151
+ }
152
+ export interface BuildOptions {
153
+ outDir?: string;
154
+ publicDir?: string;
155
+ plugins?: VeskPlugin[];
156
+ seo?: boolean;
157
+ strictSeo?: boolean;
158
+ siteUrl?: string;
159
+ ssg?: boolean;
160
+ codeSplit?: boolean;
161
+ hmr?: boolean;
162
+ target?: 'node' | 'edge';
163
+ platform?: 'node' | 'vercel' | 'netlify' | 'cloudflare' | 'deno' | 'aws' | 'edge' | 'coxmos';
164
+ /** Client router route-data freshness TTL (ms). Default 0 = always refetch. */
165
+ routeDataCache?: number;
166
+ /** Markdown policy applied for the build (SSG prerender warnings). */
167
+ md?: MdConfig;
168
+ }
169
+ export interface DevServerOptions {
170
+ port?: number;
171
+ /** Bind address. Defaults to 127.0.0.1 (loopback) — pass '0.0.0.0' to expose. */
172
+ host?: string;
173
+ publicDir?: string;
174
+ block?: boolean;
175
+ /** Request body size cap in bytes. Default 1 MiB. */
176
+ maxBodyBytes?: number;
177
+ }
178
+ export interface ProdServerOptions {
179
+ port?: number;
180
+ /** Bind address. Defaults to 127.0.0.1 (loopback) — pass '0.0.0.0' to expose. */
181
+ host?: string;
182
+ /** Request body size cap in bytes. Default 1 MiB. */
183
+ maxBodyBytes?: number;
184
+ }
185
+ export interface SsrFunctionOptions {
186
+ ancestorLayouts?: AncestorLayout[];
187
+ middlewareCode?: string | null;
188
+ }
189
+ export interface ApiFunctionOptions {
190
+ middlewareCode?: string | null;
191
+ }
192
+ export interface ClientBundleFileEntry {
193
+ mtimeMs: number;
194
+ size: number;
195
+ compCode: string;
196
+ hydCode: string;
197
+ actualName: string | null;
198
+ runtimeNames: string[];
199
+ /** Absolute paths of this file's .vsk imports, in emission order. */
200
+ imports: string[];
201
+ }
202
+ export interface ClientBundleCache {
203
+ files: Map<string, ClientBundleFileEntry>;
204
+ mainBundle?: {
205
+ key: string;
206
+ code: string;
207
+ };
208
+ }
209
+ export interface ClientBundleOptions {
210
+ codeSplit?: boolean;
211
+ hmr?: boolean;
212
+ importRuntime?: boolean;
213
+ routeDataCache?: number;
214
+ /**
215
+ * Incremental compile cache for dev rebuilds. Pass the same object across
216
+ * calls; unchanged files (matched by mtime + size) reuse their previously
217
+ * compiled output instead of re-running compileClient, and the main bundle
218
+ * is reused when its inputs (route tree + runtime import names) are
219
+ * unchanged.
220
+ */
221
+ cache?: ClientBundleCache;
222
+ /**
223
+ * Hot-path restriction for dev rebuilds: only these absolute paths are
224
+ * checked against the filesystem; every other cached file is reused
225
+ * WITHOUT a stat call.
226
+ */
227
+ only?: string[];
228
+ /**
229
+ * When set together with `only`, the result carries the raw compiled
230
+ * component source for each restricted path (imports/wrappers stripped),
231
+ * so callers building HMR fnSources don't need a second compileClient
232
+ * pass.
233
+ */
234
+ returnEditedSources?: boolean;
235
+ }
236
+ export interface ChunkEntry {
237
+ name: string;
238
+ code: string;
239
+ }
240
+ export interface MonolithicBundleParts {
241
+ componentLines: string[];
242
+ hydratorLines: string[];
243
+ aliasLines: string[];
244
+ hydratorAliasLines: string[];
245
+ }
246
+ export interface ClientBundleResult {
247
+ main: string;
248
+ chunks: ChunkEntry[];
249
+ /** Present when a cache was passed: files served from the incremental cache. */
250
+ cachedFileHits?: number;
251
+ /** Present when a cache was passed: files actually recompiled this call. */
252
+ compiledFiles?: number;
253
+ /** Present when a cache was passed: true when the main bundle was reused. */
254
+ mainFromCache?: boolean;
255
+ /** Present when returnEditedSources was set: path → stripped component source. */
256
+ editedSources?: Map<string, string>;
257
+ /** Present when returnEditedSources was set: path → resolved component name. */
258
+ editedNames?: Map<string, string | null>;
259
+ }
260
+ export interface ManifestRouteEntry {
261
+ path: string;
262
+ type: 'ssr' | 'api';
263
+ function: string;
264
+ revalidate?: number;
265
+ tags?: string[];
266
+ }
267
+ export interface ManifestActionEntry {
268
+ id: string;
269
+ function: string;
270
+ }
271
+ export interface ManifestPrerenderedEntry {
272
+ path: string;
273
+ file: string;
274
+ }
275
+ export interface Manifest {
276
+ version: number;
277
+ middleware: boolean;
278
+ routes: ManifestRouteEntry[];
279
+ prerendered: ManifestPrerenderedEntry[];
280
+ static: {
281
+ prefix: string;
282
+ dir: string;
283
+ };
284
+ actions?: ManifestActionEntry[];
285
+ }
286
+ export interface SsgRouteResult {
287
+ path: string;
288
+ html: string;
289
+ static: boolean;
290
+ params?: Record<string, string>;
291
+ }
292
+ export interface BuildResult {
293
+ routeTree: RouteNode[];
294
+ apiTree: ApiRouteNode[];
295
+ ssrRoutes: RouteNode[];
296
+ apiRoutes: ApiRouteNode[];
297
+ manifest: Manifest;
298
+ }
299
+ export interface ImageRef {
300
+ source: string;
301
+ src: string;
302
+ }
303
+ export interface ImageResult {
304
+ src: string;
305
+ baseName: string;
306
+ files: string[];
307
+ widths: number[];
308
+ }
309
+ export interface SeoCheckIssue {
310
+ severity: 'warn' | 'error';
311
+ message: string;
312
+ }
313
+ export interface SeoAuditResult {
314
+ passed: number;
315
+ errors: number;
316
+ warnings: number;
317
+ }
318
+ export interface CombinedPageInfo {
319
+ path: string;
320
+ src: string;
321
+ hasLayout: boolean;
322
+ }
323
+ export interface RenderPageResult {
324
+ body: string;
325
+ head: string;
326
+ props: Record<string, unknown>;
327
+ }
328
+ export interface SSGResult {
329
+ html: string;
330
+ body: string;
331
+ head: string;
332
+ props: string;
333
+ clientCode: string;
334
+ static: boolean;
335
+ staticLists: boolean;
336
+ }
337
+ export interface DataScriptPayload {
338
+ props?: Record<string, unknown>;
339
+ ssrData?: Record<string, unknown>;
340
+ }
341
+ /**
342
+ * When provided, hydration data (serialized props + useFetch SSR data) is
343
+ * served as an external classic script (`<script src="...">`) instead of an
344
+ * inline `<script>globalThis.__vsk_ssr_data = ...</script>`. Inline data
345
+ * scripts are blocked by strict Content-Security-Policy headers
346
+ * (`script-src 'self'` without `'unsafe-inline'`), so servers must deliver
347
+ * the payload through an origin-served file. The callback stores the payload
348
+ * server-side and returns the script src URL (or null to fall back to inline).
349
+ */
350
+ export type ExternalDataScript = (payload: DataScriptPayload) => string | null;
351
+ /**
352
+ * Renderable component content. Text values, arrays of them (what `{list.map(...)}`
353
+ * produces), or nothing — this is the type of `children` and of any JSX-expression
354
+ * container's value.
355
+ */
356
+ export type Component = string | number | boolean | null | undefined | Component[];
357
+ /**
358
+ * Props shape for layouts: they receive their child tree as `children`.
359
+ */
360
+ export interface LayoutProps {
361
+ children?: Component;
362
+ }
363
+ export interface CookieStore {
364
+ get(name: string): string | undefined;
365
+ getAll(): Array<{
366
+ name: string;
367
+ value: string;
368
+ }>;
369
+ toString(): string;
370
+ [name: string]: unknown;
371
+ }
372
+ export interface ServerRequest extends Request {
373
+ cookies: CookieStore | Record<string, string>;
374
+ params: Record<string, string>;
375
+ locals: Record<string, unknown>;
376
+ }
377
+ export interface VeskRequest extends ServerRequest {
378
+ readonly query: Record<string, string>;
379
+ ip: string;
380
+ protocol: string;
381
+ hostname: string;
382
+ parsedUrl: URL;
383
+ getBody(): Promise<unknown>;
384
+ }
385
+ export interface SetCookieOptions {
386
+ maxAge?: number;
387
+ httpOnly?: boolean;
388
+ secure?: boolean;
389
+ sameSite?: 'Lax' | 'Strict' | 'None';
390
+ path?: string;
391
+ domain?: string;
392
+ }
393
+ export interface VeskResponse extends Response {
394
+ setStatus(code: number): VeskResponse;
395
+ build(): VeskResponse;
396
+ setCookie(name: string, value: string, opts?: SetCookieOptions): VeskResponse;
397
+ clearCookie(name: string, opts?: {
398
+ path?: string;
399
+ domain?: string;
400
+ }): VeskResponse;
401
+ setCsp(policy: string | false): VeskResponse;
402
+ setSecurityHeader(name: string, value: string | false): VeskResponse;
403
+ cache(ttlSeconds: number): VeskResponse;
404
+ noCache(): VeskResponse;
405
+ cors(opts?: {
406
+ origin?: string;
407
+ methods?: string;
408
+ headers?: string;
409
+ credentials?: boolean;
410
+ }): VeskResponse;
411
+ }
412
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @vesk/types — single source of truth for every public Vesk framework type.
3
+ *
4
+ * This package is a pure leaf: no imports from other framework packages, no
5
+ * runtime values. Framework packages re-export these types for backward
6
+ * compatibility, but new code should import from '@vesk/types' directly.
7
+ */
8
+ export {};
package/package.json ADDED
@@ -0,0 +1,41 @@
1
+ {
2
+ "name": "@vesk/types",
3
+ "version": "0.2.8",
4
+ "type": "module",
5
+ "description": "Vesk shared type definitions — the single source for all public framework types",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "default": "./dist/index.js"
12
+ },
13
+ "./src/*": "./dist/*.js",
14
+ "./package.json": "./package.json"
15
+ },
16
+ "scripts": {
17
+ "typecheck": "tsc --noEmit",
18
+ "build": "tsc -p tsconfig.build.json",
19
+ "prepublishOnly": "npm run build"
20
+ },
21
+ "license": "MIT",
22
+ "author": "emeraldlinks",
23
+ "repository": {
24
+ "type": "git",
25
+ "url": "https://github.com/emeraldlinks/veskTs.git"
26
+ },
27
+ "homepage": "https://github.com/emeraldlinks/veskTs#readme",
28
+ "bugs": {
29
+ "url": "https://github.com/emeraldlinks/veskTs/issues"
30
+ },
31
+ "engines": {
32
+ "node": ">=20.0.0"
33
+ },
34
+ "files": [
35
+ "dist",
36
+ "README.md"
37
+ ],
38
+ "publishConfig": {
39
+ "access": "public"
40
+ }
41
+ }