@getvision/core 0.0.8-2635948-develop → 0.1.0-d5bfbe0-develop

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/dist/index.d.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  export { VisionCore } from './core';
2
2
  export { VisionWebSocketServer } from './server/index';
3
3
  export * from './tracing/index';
4
- export { generateZodTemplate } from './utils/zod-utils';
4
+ export * from './validation/index';
5
+ export { generateZodTemplate, generateValibotTemplate, generateTemplate } from './utils/template-generator';
5
6
  export { autoDetectPackageInfo, autoDetectIntegrations, detectDrizzle, startDrizzleStudio, stopDrizzleStudio, } from './utils/service-detection';
6
7
  export type { PackageInfo, IntegrationConfig, DrizzleInfo } from './utils/service-detection';
7
8
  export type * from './types/index';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AACtD,cAAc,iBAAiB,CAAA;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,2BAA2B,CAAA;AAClC,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAC5F,mBAAmB,eAAe,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AACtD,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC3G,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,2BAA2B,CAAA;AAClC,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAC5F,mBAAmB,eAAe,CAAA"}
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  export { VisionCore } from './core';
2
2
  export { VisionWebSocketServer } from './server/index';
3
3
  export * from './tracing/index';
4
- export { generateZodTemplate } from './utils/zod-utils';
4
+ export * from './validation/index';
5
+ export { generateZodTemplate, generateValibotTemplate, generateTemplate } from './utils/template-generator';
5
6
  export { autoDetectPackageInfo, autoDetectIntegrations, detectDrizzle, startDrizzleStudio, stopDrizzleStudio, } from './utils/service-detection';
@@ -2,6 +2,7 @@
2
2
  * Core types for Vision Dashboard
3
3
  */
4
4
  import { LogEntry } from "./logs";
5
+ import type { ValidationSchema } from '../validation';
5
6
  export interface JsonRpcRequest {
6
7
  jsonrpc: '2.0';
7
8
  method: string;
@@ -85,7 +86,10 @@ export interface RouteMetadata {
85
86
  requestBody?: RequestBodySchema;
86
87
  responseBody?: RequestBodySchema;
87
88
  response?: RouteResponse;
88
- schema?: any;
89
+ schema?: {
90
+ input?: ValidationSchema;
91
+ output?: ValidationSchema;
92
+ };
89
93
  }
90
94
  export interface RequestBodySchema {
91
95
  template: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { RequestBodySchema } from '../../types';
2
+ import { generateZodTemplate as _generateZodTemplate } from '../zod-utils';
3
+ import { generateValibotTemplate as _generateValibotTemplate } from '../valibot-utils';
4
+ /**
5
+ * Universal template generator that works with any validation library
6
+ */
7
+ export declare function generateTemplate(schema: any): RequestBodySchema | undefined;
8
+ /**
9
+ * Generate template for Zod schema (re-export for backward compatibility)
10
+ */
11
+ export declare const generateZodTemplate: typeof _generateZodTemplate;
12
+ /**
13
+ * Generate template for Valibot schema (re-export for backward compatibility)
14
+ */
15
+ export declare const generateValibotTemplate: typeof _generateValibotTemplate;
16
+ /**
17
+ * Register a custom template generator for a validation library
18
+ */
19
+ export declare function registerTemplateGenerator(vendor: string, generator: (schema: any) => RequestBodySchema | undefined): void;
20
+ /**
21
+ * Get template generator for a vendor
22
+ */
23
+ export declare function getTemplateGenerator(vendor: string): ((schema: any) => RequestBodySchema | undefined) | undefined;
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/template-generator/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAGpD,OAAO,EAAE,mBAAmB,IAAI,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAC1E,OAAO,EAAE,uBAAuB,IAAI,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAEtF;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,GAAG,GAAG,iBAAiB,GAAG,SAAS,CAqB3E;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,6BAAuB,CAAA;AAEvD;;GAEG;AACH,eAAO,MAAM,uBAAuB,iCAA2B,CAAA;AAmB/D;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,iBAAiB,GAAG,SAAS,GACxD,IAAI,CAEN;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,aAfC,GAAG,KAAK,iBAAiB,GAAG,SAAS,cAiBxF"}
@@ -0,0 +1,63 @@
1
+ import { isStandardSchema, isZodSchema, isValibotSchema } from '../../validation';
2
+ import { generateZodTemplate as _generateZodTemplate } from '../zod-utils';
3
+ import { generateValibotTemplate as _generateValibotTemplate } from '../valibot-utils';
4
+ /**
5
+ * Universal template generator that works with any validation library
6
+ */
7
+ export function generateTemplate(schema) {
8
+ if (!schema)
9
+ return undefined;
10
+ // Try Zod
11
+ if (isZodSchema(schema)) {
12
+ return _generateZodTemplate(schema);
13
+ }
14
+ // Try Valibot
15
+ if (isValibotSchema(schema)) {
16
+ return _generateValibotTemplate(schema);
17
+ }
18
+ // Try Standard Schema as a fallback
19
+ if (isStandardSchema(schema)) {
20
+ return generateStandardSchemaTemplate(schema);
21
+ }
22
+ // Unknown schema type
23
+ console.warn('Unsupported schema type for template generation');
24
+ return undefined;
25
+ }
26
+ /**
27
+ * Generate template for Zod schema (re-export for backward compatibility)
28
+ */
29
+ export const generateZodTemplate = _generateZodTemplate;
30
+ /**
31
+ * Generate template for Valibot schema (re-export for backward compatibility)
32
+ */
33
+ export const generateValibotTemplate = _generateValibotTemplate;
34
+ /**
35
+ * Generate template for Standard Schema (limited introspection)
36
+ */
37
+ function generateStandardSchemaTemplate(schema) {
38
+ // Standard Schema only exposes validate() method, not structure
39
+ // We can only provide a generic template
40
+ return {
41
+ template: '{\n // Schema structure not available for Standard Schema\n}',
42
+ fields: []
43
+ };
44
+ }
45
+ /**
46
+ * Registry for custom template generators
47
+ */
48
+ const templateGenerators = new Map();
49
+ /**
50
+ * Register a custom template generator for a validation library
51
+ */
52
+ export function registerTemplateGenerator(vendor, generator) {
53
+ templateGenerators.set(vendor, generator);
54
+ }
55
+ /**
56
+ * Get template generator for a vendor
57
+ */
58
+ export function getTemplateGenerator(vendor) {
59
+ return templateGenerators.get(vendor);
60
+ }
61
+ // Initialize with built-in generators
62
+ registerTemplateGenerator('zod', generateZodTemplate);
63
+ registerTemplateGenerator('valibot', _generateValibotTemplate);
@@ -0,0 +1,6 @@
1
+ import type { RequestBodySchema } from '../types';
2
+ /**
3
+ * Generate JSON template with comments from Valibot schema
4
+ */
5
+ export declare function generateValibotTemplate(schema: any): RequestBodySchema | undefined;
6
+ //# sourceMappingURL=valibot-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"valibot-utils.d.ts","sourceRoot":"","sources":["../../src/utils/valibot-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAe,MAAM,UAAU,CAAA;AAiB9D;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,GAAG,GAAG,iBAAiB,GAAG,SAAS,CAYlF"}
@@ -0,0 +1,133 @@
1
+ /**
2
+ * Generate JSON template with comments from Valibot schema
3
+ */
4
+ export function generateValibotTemplate(schema) {
5
+ try {
6
+ if (!isValibotSchema(schema))
7
+ return undefined;
8
+ const fields = extractValibotFields(schema);
9
+ const template = generateJsonTemplate(fields);
10
+ return { template, fields };
11
+ }
12
+ catch (error) {
13
+ console.warn('Failed to generate template from Valibot schema:', error);
14
+ return undefined;
15
+ }
16
+ }
17
+ function isValibotSchema(obj) {
18
+ return obj && typeof obj === 'object' && 'type' in obj;
19
+ }
20
+ function extractValibotFields(schema, path = []) {
21
+ const fields = [];
22
+ let currentSchema = schema;
23
+ if (schema.type === 'pipe') {
24
+ const pipeSchema = schema;
25
+ if (pipeSchema.items && pipeSchema.items.length > 0) {
26
+ currentSchema = pipeSchema.items[0];
27
+ }
28
+ }
29
+ if (currentSchema.type === 'object') {
30
+ const objSchema = currentSchema;
31
+ const entries = objSchema.entries || {};
32
+ for (const [key, value] of Object.entries(entries)) {
33
+ const fieldSchema = value;
34
+ let isOptional = false;
35
+ let actualSchema = fieldSchema;
36
+ if (fieldSchema.type === 'optional') {
37
+ isOptional = true;
38
+ actualSchema = fieldSchema.wrapped;
39
+ }
40
+ if (actualSchema.type === 'pipe') {
41
+ const pipeSchema = actualSchema;
42
+ if (pipeSchema.items && pipeSchema.items.length > 0) {
43
+ actualSchema = pipeSchema.items[0];
44
+ }
45
+ }
46
+ let description;
47
+ const pipe = fieldSchema.pipe;
48
+ if (fieldSchema.type === 'pipe' && pipe) {
49
+ for (const pipeItem of pipe) {
50
+ if (pipeItem?.type === 'description' && pipeItem.description) {
51
+ description = pipeItem.description;
52
+ break;
53
+ }
54
+ if (pipeItem?.type === 'metadata' && pipeItem.metadata) {
55
+ const desc = pipeItem.metadata.find((m) => m.key === 'description');
56
+ if (desc?.value) {
57
+ description = desc.value;
58
+ break;
59
+ }
60
+ }
61
+ }
62
+ }
63
+ const fieldType = getValibotType(actualSchema);
64
+ const nested = extractValibotFields(actualSchema, [...path, key]);
65
+ fields.push({
66
+ name: key,
67
+ type: fieldType,
68
+ description,
69
+ required: !isOptional,
70
+ nested: nested.length > 0 ? nested : undefined,
71
+ example: getValibotExample(fieldType),
72
+ });
73
+ }
74
+ }
75
+ return fields;
76
+ }
77
+ function getValibotType(schema) {
78
+ switch (schema.type) {
79
+ case 'string':
80
+ return 'string';
81
+ case 'number':
82
+ return 'number';
83
+ case 'boolean':
84
+ return 'boolean';
85
+ case 'array':
86
+ return 'array';
87
+ case 'object':
88
+ return 'object';
89
+ case 'enum':
90
+ return 'enum';
91
+ case 'date':
92
+ return 'date';
93
+ default:
94
+ return 'any';
95
+ }
96
+ }
97
+ function getValibotExample(type) {
98
+ switch (type) {
99
+ case 'string':
100
+ return '';
101
+ case 'number':
102
+ return 0;
103
+ case 'boolean':
104
+ return false;
105
+ case 'array':
106
+ return [];
107
+ case 'object':
108
+ return {};
109
+ default:
110
+ return null;
111
+ }
112
+ }
113
+ function generateJsonTemplate(fields, indent = 0) {
114
+ const lines = [];
115
+ const spacing = ' '.repeat(indent);
116
+ lines.push('{');
117
+ fields.forEach((field, index) => {
118
+ const isLast = index === fields.length - 1;
119
+ if (field.description) {
120
+ lines.push(`${spacing} // ${field.description}`);
121
+ }
122
+ let value;
123
+ if (field.nested && field.nested.length > 0) {
124
+ value = generateJsonTemplate(field.nested, indent + 1);
125
+ }
126
+ else {
127
+ value = JSON.stringify(field.example);
128
+ }
129
+ lines.push(`${spacing} "${field.name}": ${value}${isLast ? '' : ','}`);
130
+ });
131
+ lines.push(`${spacing}}`);
132
+ return lines.join('\n');
133
+ }
@@ -127,9 +127,9 @@ function generateJsonTemplate(fields, indent = 0) {
127
127
  lines.push('{');
128
128
  fields.forEach((field, index) => {
129
129
  const isLast = index === fields.length - 1;
130
- const description = field.description || field.name;
131
- // Add comment
132
- lines.push(`${spacing} // ${description}`);
130
+ if (field.description) {
131
+ lines.push(`${spacing} // ${field.description}`);
132
+ }
133
133
  // Add field
134
134
  let value;
135
135
  if (field.nested && field.nested.length > 0) {
@@ -0,0 +1,10 @@
1
+ import type { StandardSchemaV1 } from '../standard-schema';
2
+ /**
3
+ * Convert Valibot schema to Standard Schema
4
+ */
5
+ export declare function toStandardSchema<TInput = unknown, TOutput = TInput>(valibotSchema: any): StandardSchemaV1<TInput, TOutput>;
6
+ /**
7
+ * Check if a schema is a Valibot schema
8
+ */
9
+ export declare function isValibotSchema(obj: any): obj is any;
10
+ //# sourceMappingURL=valibot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"valibot.d.ts","sourceRoot":"","sources":["../../../src/validation/adapters/valibot.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAE1D;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,MAAM,EACjE,aAAa,EAAE,GAAG,GACjB,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAiCnC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,GAAG,CAQpD"}
@@ -0,0 +1,57 @@
1
+ // Valibot adapter - only available if valibot is installed
2
+ // This file will be ignored if valibot is not a dependency
3
+ import { createRequire } from 'node:module';
4
+ const require = createRequire(import.meta.url);
5
+ let v;
6
+ try {
7
+ v = require('valibot');
8
+ }
9
+ catch {
10
+ // Valibot not installed, module will be undefined
11
+ v = undefined;
12
+ }
13
+ /**
14
+ * Convert Valibot schema to Standard Schema
15
+ */
16
+ export function toStandardSchema(valibotSchema) {
17
+ if (!v) {
18
+ throw new Error('Valibot is not installed. Please install it with: npm install valibot');
19
+ }
20
+ return {
21
+ "~standard": {
22
+ version: 1,
23
+ vendor: "valibot",
24
+ validate: (value) => {
25
+ const result = v.safeParse(valibotSchema, value);
26
+ if (result.success) {
27
+ return { value: result.output };
28
+ }
29
+ return {
30
+ issues: result.issues.map((issue) => {
31
+ const rawPath = Array.isArray(issue?.path)
32
+ ? issue.path
33
+ : v.getIssuePath?.(issue) ?? [];
34
+ return {
35
+ path: rawPath.map((p) => {
36
+ if (typeof p === "string" || typeof p === "number")
37
+ return p;
38
+ return p?.key ?? p?.path ?? String(p);
39
+ }),
40
+ message: issue.message,
41
+ };
42
+ }),
43
+ };
44
+ },
45
+ },
46
+ };
47
+ }
48
+ /**
49
+ * Check if a schema is a Valibot schema
50
+ */
51
+ export function isValibotSchema(obj) {
52
+ return (obj &&
53
+ typeof obj === "object" &&
54
+ "type" in obj &&
55
+ ("~standard" in obj || "~run" in obj) &&
56
+ !("_def" in obj));
57
+ }
@@ -0,0 +1,11 @@
1
+ import { z } from 'zod';
2
+ import type { StandardSchemaV1 } from '../standard-schema';
3
+ /**
4
+ * Convert Zod schema to Standard Schema
5
+ */
6
+ export declare function toStandardSchema<T extends z.ZodType>(zodSchema: T): StandardSchemaV1<z.input<T>, z.output<T>>;
7
+ /**
8
+ * Check if a schema is a Zod schema
9
+ */
10
+ export declare function isZodSchema(obj: any): obj is z.ZodType;
11
+ //# sourceMappingURL=zod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod.d.ts","sourceRoot":"","sources":["../../../src/validation/adapters/zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAE1D;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAClD,SAAS,EAAE,CAAC,GACX,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAqB3C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,OAAO,CAEtD"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Convert Zod schema to Standard Schema
3
+ */
4
+ export function toStandardSchema(zodSchema) {
5
+ return {
6
+ "~standard": {
7
+ version: 1,
8
+ vendor: "zod",
9
+ validate: (value) => {
10
+ const result = zodSchema.safeParse(value);
11
+ if (result.success) {
12
+ return { value: result.data };
13
+ }
14
+ return {
15
+ issues: result.error.issues.map((issue) => ({
16
+ path: issue.path.map(p => typeof p === 'string' || typeof p === 'number' ? p : String(p)),
17
+ message: issue.message,
18
+ })),
19
+ };
20
+ },
21
+ },
22
+ };
23
+ }
24
+ /**
25
+ * Check if a schema is a Zod schema
26
+ */
27
+ export function isZodSchema(obj) {
28
+ return obj && typeof obj === "object" && "_def" in obj && "parse" in obj;
29
+ }
@@ -0,0 +1,43 @@
1
+ import type { StandardSchemaV1 } from './standard-schema';
2
+ export interface ValidationErrorResponse {
3
+ error: {
4
+ code: 'VALIDATION_ERROR';
5
+ message: string;
6
+ details: {
7
+ field: string;
8
+ message: string;
9
+ path: readonly (string | number)[];
10
+ }[];
11
+ };
12
+ timestamp: string;
13
+ requestId?: string;
14
+ }
15
+ export interface ErrorResponse {
16
+ error: {
17
+ code: string;
18
+ message: string;
19
+ details?: any;
20
+ };
21
+ timestamp: string;
22
+ requestId?: string;
23
+ }
24
+ /**
25
+ * Creates a standardized validation error response
26
+ */
27
+ export declare function createValidationErrorResponse(issues: readonly StandardSchemaV1.Issue[], requestId?: string): ValidationErrorResponse;
28
+ /**
29
+ * Creates a standardized error response
30
+ */
31
+ export declare function createErrorResponse(code: string, message: string, details?: any, requestId?: string): ErrorResponse;
32
+ /**
33
+ * Common error codes
34
+ */
35
+ export declare const ERROR_CODES: {
36
+ readonly VALIDATION_ERROR: "VALIDATION_ERROR";
37
+ readonly INTERNAL_SERVER_ERROR: "INTERNAL_SERVER_ERROR";
38
+ readonly NOT_FOUND: "NOT_FOUND";
39
+ readonly UNAUTHORIZED: "UNAUTHORIZED";
40
+ readonly FORBIDDEN: "FORBIDDEN";
41
+ readonly BAD_REQUEST: "BAD_REQUEST";
42
+ };
43
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/validation/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEzD,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE;QACL,IAAI,EAAE,kBAAkB,CAAA;QACxB,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE;YACP,KAAK,EAAE,MAAM,CAAA;YACb,OAAO,EAAE,MAAM,CAAA;YACf,IAAI,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;SACnC,EAAE,CAAA;KACJ,CAAA;IACD,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,CAAC,EAAE,GAAG,CAAA;KACd,CAAA;IACD,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,SAAS,gBAAgB,CAAC,KAAK,EAAE,EACzC,SAAS,CAAC,EAAE,MAAM,GACjB,uBAAuB,CAczB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,GAAG,EACb,SAAS,CAAC,EAAE,MAAM,GACjB,aAAa,CAUf;AAED;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;CAOd,CAAA"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Creates a standardized validation error response
3
+ */
4
+ export function createValidationErrorResponse(issues, requestId) {
5
+ return {
6
+ error: {
7
+ code: 'VALIDATION_ERROR',
8
+ message: 'Request validation failed',
9
+ details: issues.map(issue => ({
10
+ field: issue.path.join('.'),
11
+ message: issue.message,
12
+ path: issue.path
13
+ }))
14
+ },
15
+ timestamp: new Date().toISOString(),
16
+ requestId
17
+ };
18
+ }
19
+ /**
20
+ * Creates a standardized error response
21
+ */
22
+ export function createErrorResponse(code, message, details, requestId) {
23
+ return {
24
+ error: {
25
+ code,
26
+ message,
27
+ details
28
+ },
29
+ timestamp: new Date().toISOString(),
30
+ requestId
31
+ };
32
+ }
33
+ /**
34
+ * Common error codes
35
+ */
36
+ export const ERROR_CODES = {
37
+ VALIDATION_ERROR: 'VALIDATION_ERROR',
38
+ INTERNAL_SERVER_ERROR: 'INTERNAL_SERVER_ERROR',
39
+ NOT_FOUND: 'NOT_FOUND',
40
+ UNAUTHORIZED: 'UNAUTHORIZED',
41
+ FORBIDDEN: 'FORBIDDEN',
42
+ BAD_REQUEST: 'BAD_REQUEST'
43
+ };
@@ -0,0 +1,6 @@
1
+ export * from './standard-schema';
2
+ export * from './validator';
3
+ export * from './errors';
4
+ export { toStandardSchema as zodToStandardSchema, isZodSchema } from './adapters/zod';
5
+ export { toStandardSchema as valibotToStandardSchema, isValibotSchema } from './adapters/valibot';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"AACA,cAAc,mBAAmB,CAAA;AAGjC,cAAc,aAAa,CAAA;AAG3B,cAAc,UAAU,CAAA;AAGxB,OAAO,EAAE,gBAAgB,IAAI,mBAAmB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACrF,OAAO,EAAE,gBAAgB,IAAI,uBAAuB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA"}
@@ -0,0 +1,9 @@
1
+ // Standard Schema interface
2
+ export * from './standard-schema';
3
+ // Universal validator
4
+ export * from './validator';
5
+ // Error handling
6
+ export * from './errors';
7
+ // Adapters for specific libraries
8
+ export { toStandardSchema as zodToStandardSchema, isZodSchema } from './adapters/zod';
9
+ export { toStandardSchema as valibotToStandardSchema, isValibotSchema } from './adapters/valibot';
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Standard Schema validation interface
3
+ * Compatible with https://standardschema.dev/
4
+ */
5
+ export interface StandardSchemaV1<TInput = unknown, TOutput = TInput> {
6
+ "~standard": {
7
+ version: 1;
8
+ vendor: string;
9
+ validate: (value: TInput) => StandardSchemaV1.Result<TOutput>;
10
+ };
11
+ }
12
+ export declare namespace StandardSchemaV1 {
13
+ interface Issue {
14
+ path: readonly (string | number)[];
15
+ message: string;
16
+ }
17
+ interface Result<T> {
18
+ readonly issues?: readonly Issue[];
19
+ readonly value?: T;
20
+ }
21
+ interface Infer<T> {
22
+ readonly input: T extends StandardSchemaV1<infer I, any> ? I : never;
23
+ readonly output: T extends StandardSchemaV1<any, infer O> ? O : never;
24
+ }
25
+ }
26
+ /**
27
+ * Validates data using Standard Schema interface
28
+ */
29
+ export declare function validateWithStandard<T>(schema: StandardSchemaV1<T>, data: unknown): StandardSchemaV1.Result<T>;
30
+ /**
31
+ * Type guard to check if a schema implements Standard Schema
32
+ */
33
+ export declare function isStandardSchema(obj: any): obj is StandardSchemaV1;
34
+ /**
35
+ * Convert Standard Schema issues to a more user-friendly format
36
+ */
37
+ export declare function formatValidationIssues(issues: readonly StandardSchemaV1.Issue[]): {
38
+ field: string;
39
+ message: string;
40
+ path: readonly (string | number)[];
41
+ }[];
42
+ //# sourceMappingURL=standard-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standard-schema.d.ts","sourceRoot":"","sources":["../../src/validation/standard-schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,gBAAgB,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,MAAM;IAClE,WAAW,EAAE;QACX,OAAO,EAAE,CAAC,CAAA;QACV,MAAM,EAAE,MAAM,CAAA;QACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;KAC9D,CAAA;CACF;AAED,yBAAiB,gBAAgB,CAAC;IAChC,UAAiB,KAAK;QACpB,IAAI,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;QAClC,OAAO,EAAE,MAAM,CAAA;KAChB;IAED,UAAiB,MAAM,CAAC,CAAC;QACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,KAAK,EAAE,CAAA;QAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;KACnB;IAED,UAAiB,KAAK,CAAC,CAAC;QACtB,QAAQ,CAAC,KAAK,EAAE,CAAC,SAAS,gBAAgB,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;QACpE,QAAQ,CAAC,MAAM,EAAE,CAAC,SAAS,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;KACtE;CACF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EACpC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC3B,IAAI,EAAE,OAAO,GACZ,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAE5B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,gBAAgB,CAWlE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,gBAAgB,CAAC,KAAK,EAAE,GAAG;IACjF,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;CACnC,EAAE,CAMF"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Standard Schema validation interface
3
+ * Compatible with https://standardschema.dev/
4
+ */
5
+ /**
6
+ * Validates data using Standard Schema interface
7
+ */
8
+ export function validateWithStandard(schema, data) {
9
+ return schema["~standard"].validate(data);
10
+ }
11
+ /**
12
+ * Type guard to check if a schema implements Standard Schema
13
+ */
14
+ export function isStandardSchema(obj) {
15
+ return (obj &&
16
+ typeof obj === "object" &&
17
+ "~standard" in obj &&
18
+ typeof obj["~standard"] === "object" &&
19
+ "version" in obj["~standard"] &&
20
+ obj["~standard"].version === 1 &&
21
+ "validate" in obj["~standard"] &&
22
+ typeof obj["~standard"].validate === "function");
23
+ }
24
+ /**
25
+ * Convert Standard Schema issues to a more user-friendly format
26
+ */
27
+ export function formatValidationIssues(issues) {
28
+ return issues.map((issue) => ({
29
+ field: issue.path.join("."),
30
+ message: issue.message,
31
+ path: issue.path,
32
+ }));
33
+ }
@@ -0,0 +1,27 @@
1
+ import type { StandardSchemaV1 } from './standard-schema';
2
+ export type ValidationSchema = StandardSchemaV1 | any;
3
+ /**
4
+ * Universal validator that accepts any Standard Schema-compliant validation library
5
+ */
6
+ export declare class UniversalValidator {
7
+ /**
8
+ * Convert any supported schema to Standard Schema format
9
+ */
10
+ static toStandardSchema<T = unknown>(schema: ValidationSchema): StandardSchemaV1<T>;
11
+ /**
12
+ * Validate data using any supported schema
13
+ */
14
+ static validate<T>(schema: ValidationSchema, data: unknown): StandardSchemaV1.Result<T>;
15
+ /**
16
+ * Parse data - throws on validation error
17
+ */
18
+ static parse<T>(schema: ValidationSchema, data: unknown): T;
19
+ }
20
+ /**
21
+ * Custom validation error with detailed issues
22
+ */
23
+ export declare class ValidationError extends Error {
24
+ issues: readonly StandardSchemaV1.Issue[];
25
+ constructor(message: string, issues: readonly StandardSchemaV1.Issue[]);
26
+ }
27
+ //# sourceMappingURL=validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/validation/validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAKzD,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,GAAG,GAAG,CAAA;AAErD;;GAEG;AACH,qBAAa,kBAAkB;IAC7B;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,gBAAgB,GAAG,gBAAgB,CAAC,CAAC,CAAC;IAwBnF;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAC,EACf,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,OAAO,GACZ,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IAK7B;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,CAAC,EACZ,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,OAAO,GACZ,CAAC;CAUL;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IAG/B,MAAM,EAAE,SAAS,gBAAgB,CAAC,KAAK,EAAE;gBADhD,OAAO,EAAE,MAAM,EACR,MAAM,EAAE,SAAS,gBAAgB,CAAC,KAAK,EAAE;CAKnD"}
@@ -0,0 +1,59 @@
1
+ import { isStandardSchema } from './standard-schema';
2
+ import { toStandardSchema as zodToStandard, isZodSchema } from './adapters/zod';
3
+ import { toStandardSchema as valibotToStandard, isValibotSchema } from './adapters/valibot';
4
+ /**
5
+ * Universal validator that accepts any Standard Schema-compliant validation library
6
+ */
7
+ export class UniversalValidator {
8
+ /**
9
+ * Convert any supported schema to Standard Schema format
10
+ */
11
+ static toStandardSchema(schema) {
12
+ // Try Zod first (most specific check with _def)
13
+ if (isZodSchema(schema)) {
14
+ return zodToStandard(schema);
15
+ }
16
+ // Try Valibot (has type and ~run/~standard but not _def)
17
+ if (isValibotSchema(schema)) {
18
+ return valibotToStandard(schema);
19
+ }
20
+ // If it's already a Standard Schema, return as-is
21
+ if (isStandardSchema(schema)) {
22
+ return schema;
23
+ }
24
+ // If we can't identify the library, try to use it as Standard Schema directly
25
+ if (schema && typeof schema === "object" && "~standard" in schema) {
26
+ return schema;
27
+ }
28
+ throw new Error("Unsupported validation schema. Please use a library that implements Standard Schema v1.");
29
+ }
30
+ /**
31
+ * Validate data using any supported schema
32
+ */
33
+ static validate(schema, data) {
34
+ const standardSchema = this.toStandardSchema(schema);
35
+ return standardSchema["~standard"].validate(data);
36
+ }
37
+ /**
38
+ * Parse data - throws on validation error
39
+ */
40
+ static parse(schema, data) {
41
+ const result = this.validate(schema, data);
42
+ if (result.issues) {
43
+ const error = new ValidationError("Validation failed", result.issues);
44
+ throw error;
45
+ }
46
+ return result.value;
47
+ }
48
+ }
49
+ /**
50
+ * Custom validation error with detailed issues
51
+ */
52
+ export class ValidationError extends Error {
53
+ issues;
54
+ constructor(message, issues) {
55
+ super(message);
56
+ this.issues = issues;
57
+ this.name = "ValidationError";
58
+ }
59
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getvision/core",
3
- "version": "0.0.8-2635948-develop",
3
+ "version": "0.1.0-d5bfbe0-develop",
4
4
  "type": "module",
5
5
  "types": "dist/index.d.ts",
6
6
  "module": "dist/index.js",
@@ -10,6 +10,11 @@
10
10
  "import": "./dist/index.js",
11
11
  "default": "./dist/index.js"
12
12
  },
13
+ "./validation": {
14
+ "types": "./dist/validation/index.d.ts",
15
+ "import": "./dist/validation/index.js",
16
+ "default": "./dist/validation/index.js"
17
+ },
13
18
  "./server": {
14
19
  "types": "./dist/server/index.d.ts",
15
20
  "import": "./dist/server/index.js",
@@ -41,11 +46,15 @@
41
46
  "mime-types": "^2.1.35"
42
47
  },
43
48
  "peerDependencies": {
44
- "zod": "^3.0.0 || ^4.0.0"
49
+ "zod": "^3.0.0 || ^4.0.0",
50
+ "valibot": "^1.0.0"
45
51
  },
46
52
  "peerDependenciesMeta": {
47
53
  "zod": {
48
54
  "optional": true
55
+ },
56
+ "valibot": {
57
+ "optional": true
49
58
  }
50
59
  },
51
60
  "devDependencies": {
@@ -55,6 +64,8 @@
55
64
  "@types/mime-types": "^2.1.4",
56
65
  "@types/node": "^20.14.9",
57
66
  "@types/ws": "^8.5.12",
67
+ "@types/bun": "latest",
68
+ "valibot": "^1.2.0",
58
69
  "typescript": "5.9.3"
59
70
  },
60
71
  "files": [