@wildo-ai/zod-decorators 1.0.0
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/esm/__mocks__/mime.d.ts +12 -0
- package/dist/esm/__mocks__/mime.d.ts.map +1 -0
- package/dist/esm/__mocks__/mime.js +75 -0
- package/dist/esm/__mocks__/mime.js.map +1 -0
- package/dist/esm/commons.d.ts +26 -0
- package/dist/esm/commons.d.ts.map +1 -0
- package/dist/esm/commons.js +41 -0
- package/dist/esm/commons.js.map +1 -0
- package/dist/esm/currencies.shared.schemas.d.ts +208 -0
- package/dist/esm/currencies.shared.schemas.d.ts.map +1 -0
- package/dist/esm/currencies.shared.schemas.js +228 -0
- package/dist/esm/currencies.shared.schemas.js.map +1 -0
- package/dist/esm/files/agent-file-formats.d.ts +99 -0
- package/dist/esm/files/agent-file-formats.d.ts.map +1 -0
- package/dist/esm/files/agent-file-formats.js +163 -0
- package/dist/esm/files/agent-file-formats.js.map +1 -0
- package/dist/esm/files/extension-nature-map.d.ts +12 -0
- package/dist/esm/files/extension-nature-map.d.ts.map +1 -0
- package/dist/esm/files/extension-nature-map.js +63 -0
- package/dist/esm/files/extension-nature-map.js.map +1 -0
- package/dist/esm/files/file-extensions.enum.d.ts +58 -0
- package/dist/esm/files/file-extensions.enum.d.ts.map +1 -0
- package/dist/esm/files/file-extensions.enum.js +65 -0
- package/dist/esm/files/file-extensions.enum.js.map +1 -0
- package/dist/esm/files/mime-registry.d.ts +72 -0
- package/dist/esm/files/mime-registry.d.ts.map +1 -0
- package/dist/esm/files/mime-registry.js +174 -0
- package/dist/esm/files/mime-registry.js.map +1 -0
- package/dist/esm/files/unified-registry.d.ts +112 -0
- package/dist/esm/files/unified-registry.d.ts.map +1 -0
- package/dist/esm/files/unified-registry.js +190 -0
- package/dist/esm/files/unified-registry.js.map +1 -0
- package/dist/esm/index.d.ts +29 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +36 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/testing/decorated-test-schemas.d.ts +27 -0
- package/dist/esm/testing/decorated-test-schemas.d.ts.map +1 -0
- package/dist/esm/testing/decorated-test-schemas.js +26 -0
- package/dist/esm/testing/decorated-test-schemas.js.map +1 -0
- package/dist/esm/testing.d.ts +6 -0
- package/dist/esm/testing.d.ts.map +1 -0
- package/dist/esm/testing.js +6 -0
- package/dist/esm/testing.js.map +1 -0
- package/dist/esm/zod-bigdecimal.d.ts +193 -0
- package/dist/esm/zod-bigdecimal.d.ts.map +1 -0
- package/dist/esm/zod-bigdecimal.js +274 -0
- package/dist/esm/zod-bigdecimal.js.map +1 -0
- package/dist/esm/zod-code.d.ts +95 -0
- package/dist/esm/zod-code.d.ts.map +1 -0
- package/dist/esm/zod-code.js +160 -0
- package/dist/esm/zod-code.js.map +1 -0
- package/dist/esm/zod-color.d.ts +8 -0
- package/dist/esm/zod-color.d.ts.map +1 -0
- package/dist/esm/zod-color.js +88 -0
- package/dist/esm/zod-color.js.map +1 -0
- package/dist/esm/zod-decorators.types.d.ts +2207 -0
- package/dist/esm/zod-decorators.types.d.ts.map +1 -0
- package/dist/esm/zod-decorators.types.js +771 -0
- package/dist/esm/zod-decorators.types.js.map +1 -0
- package/dist/esm/zod-duration.d.ts +128 -0
- package/dist/esm/zod-duration.d.ts.map +1 -0
- package/dist/esm/zod-duration.js +174 -0
- package/dist/esm/zod-duration.js.map +1 -0
- package/dist/esm/zod-file.d.ts +219 -0
- package/dist/esm/zod-file.d.ts.map +1 -0
- package/dist/esm/zod-file.js +469 -0
- package/dist/esm/zod-file.js.map +1 -0
- package/dist/esm/zod-money.d.ts +223 -0
- package/dist/esm/zod-money.d.ts.map +1 -0
- package/dist/esm/zod-money.js +293 -0
- package/dist/esm/zod-money.js.map +1 -0
- package/dist/esm/zod-phone.d.ts +75 -0
- package/dist/esm/zod-phone.d.ts.map +1 -0
- package/dist/esm/zod-phone.js +116 -0
- package/dist/esm/zod-phone.js.map +1 -0
- package/dist/esm/zod-range.d.ts +87 -0
- package/dist/esm/zod-range.d.ts.map +1 -0
- package/dist/esm/zod-range.js +138 -0
- package/dist/esm/zod-range.js.map +1 -0
- package/dist/esm/zod-utils.shared.d.ts +783 -0
- package/dist/esm/zod-utils.shared.d.ts.map +1 -0
- package/dist/esm/zod-utils.shared.js +2647 -0
- package/dist/esm/zod-utils.shared.js.map +1 -0
- package/dist/esm/zod-versioned.d.ts +150 -0
- package/dist/esm/zod-versioned.d.ts.map +1 -0
- package/dist/esm/zod-versioned.js +172 -0
- package/dist/esm/zod-versioned.js.map +1 -0
- package/dist/esm/zod.module-override.d.ts +413 -0
- package/dist/esm/zod.module-override.d.ts.map +1 -0
- package/dist/esm/zod.module-override.js +1093 -0
- package/dist/esm/zod.module-override.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/package.json +63 -0
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
// ============================================================================
|
|
2
|
+
// CODE SCHEMA HELPER
|
|
3
|
+
// ============================================================================
|
|
4
|
+
import { SCHEMA_METADATA, ZodDecorator } from "./zod-decorators.types.js";
|
|
5
|
+
import { z } from "zod";
|
|
6
|
+
import { addChainableMethods } from "./zod.module-override.js";
|
|
7
|
+
/**
|
|
8
|
+
* Common programming languages for code schema language field.
|
|
9
|
+
* Can be extended with any string value.
|
|
10
|
+
*/
|
|
11
|
+
export const CommonCodeLanguages = [
|
|
12
|
+
'javascript', 'typescript', 'python', 'java', 'csharp', 'cpp', 'c',
|
|
13
|
+
'go', 'rust', 'ruby', 'php', 'swift', 'kotlin', 'scala',
|
|
14
|
+
'html', 'css', 'scss', 'less', 'json', 'yaml', 'xml', 'markdown',
|
|
15
|
+
'sql', 'graphql', 'bash', 'shell', 'powershell',
|
|
16
|
+
'dockerfile', 'nginx', 'apache',
|
|
17
|
+
'plaintext'
|
|
18
|
+
];
|
|
19
|
+
/**
|
|
20
|
+
* Zod schema for CodeValue.
|
|
21
|
+
*/
|
|
22
|
+
export const CodeValueSchema = z.object({
|
|
23
|
+
content: z.string(),
|
|
24
|
+
language: z.string(),
|
|
25
|
+
});
|
|
26
|
+
/**
|
|
27
|
+
* z_code() - Creates code schemas for code snippets with language.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```typescript
|
|
31
|
+
* import { z_code } from '@wildo-ai/zod-decorators';
|
|
32
|
+
*
|
|
33
|
+
* const snippet = z_code();
|
|
34
|
+
* const restrictedCode = z_code({
|
|
35
|
+
* allowedLanguages: ['javascript', 'typescript', 'python'],
|
|
36
|
+
* maxLength: 10000
|
|
37
|
+
* });
|
|
38
|
+
*
|
|
39
|
+
* // UI props are now set via .codeUI():
|
|
40
|
+
* z_code().codeUI({ defaultLanguage: 'javascript', syntaxHighlighting: true })
|
|
41
|
+
* z_code().codeUI({ display: { showLineNumbers: true }, edit: { showLineNumbers: false } })
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
/**
|
|
45
|
+
* Creates a code schema with metadata for detection and form component rendering.
|
|
46
|
+
*
|
|
47
|
+
* @param options - Configuration options for code field
|
|
48
|
+
* @returns A Zod object schema with metadata for code detection
|
|
49
|
+
*/
|
|
50
|
+
export function createCodeSchema(options = {}) {
|
|
51
|
+
const { allowedLanguages, maxLength, minLength, } = options;
|
|
52
|
+
// Create the content schema with optional length constraints
|
|
53
|
+
let contentSchema = z.string();
|
|
54
|
+
if (minLength !== undefined) {
|
|
55
|
+
contentSchema = contentSchema.min(minLength);
|
|
56
|
+
}
|
|
57
|
+
if (maxLength !== undefined) {
|
|
58
|
+
contentSchema = contentSchema.max(maxLength);
|
|
59
|
+
}
|
|
60
|
+
// Language is stored as a string. Allowed languages restriction is enforced
|
|
61
|
+
// through codeConfig.allowedLanguages metadata - UI components read this
|
|
62
|
+
// to filter available options, same pattern as money currencies.
|
|
63
|
+
const languageSchema = z.string();
|
|
64
|
+
// Create the code object schema
|
|
65
|
+
const codeSchema = z.object({
|
|
66
|
+
content: contentSchema,
|
|
67
|
+
language: languageSchema,
|
|
68
|
+
});
|
|
69
|
+
const codeMetadata = {
|
|
70
|
+
isCode: true,
|
|
71
|
+
...(allowedLanguages !== undefined && { allowedLanguages }),
|
|
72
|
+
...(maxLength !== undefined && { maxLength }),
|
|
73
|
+
...(minLength !== undefined && { minLength }),
|
|
74
|
+
};
|
|
75
|
+
// Initialize or extend SCHEMA_METADATA with code config
|
|
76
|
+
const existingMetadata = codeSchema[SCHEMA_METADATA] || {};
|
|
77
|
+
codeSchema[SCHEMA_METADATA] = {
|
|
78
|
+
...existingMetadata,
|
|
79
|
+
codeConfig: codeMetadata,
|
|
80
|
+
};
|
|
81
|
+
// Add chainable decorator methods to the code schema instance
|
|
82
|
+
addChainableMethods(codeSchema);
|
|
83
|
+
return codeSchema;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Creates a code schema for code snippets with language information.
|
|
87
|
+
* Named z_code to indicate it's a Zod helper function exported standalone.
|
|
88
|
+
*
|
|
89
|
+
* Code values are stored as: { content: string, language: string }
|
|
90
|
+
* - content: The actual code text
|
|
91
|
+
* - language: Programming language identifier for syntax highlighting
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```typescript
|
|
95
|
+
* import { z_code } from '@wildo-ai/zod-decorators';
|
|
96
|
+
*
|
|
97
|
+
* // Simple usage
|
|
98
|
+
* z_code() // All languages, default 'plaintext'
|
|
99
|
+
*
|
|
100
|
+
* // With options (structural only)
|
|
101
|
+
* z_code({ allowedLanguages: ['javascript', 'typescript'] })
|
|
102
|
+
* z_code({ maxLength: 5000 })
|
|
103
|
+
*
|
|
104
|
+
* // UI props via .codeUI()
|
|
105
|
+
* z_code().codeUI({ defaultLanguage: 'typescript' })
|
|
106
|
+
* z_code().codeUI({ display: { showLineNumbers: false } })
|
|
107
|
+
* ```
|
|
108
|
+
*/
|
|
109
|
+
export function z_code(options) {
|
|
110
|
+
return createCodeSchema(options);
|
|
111
|
+
}
|
|
112
|
+
// ============================================================================
|
|
113
|
+
// UTILITY FUNCTIONS
|
|
114
|
+
// ============================================================================
|
|
115
|
+
/**
|
|
116
|
+
* Get the display name for a code language.
|
|
117
|
+
*/
|
|
118
|
+
export function getLanguageDisplayName(language) {
|
|
119
|
+
const displayNames = {
|
|
120
|
+
javascript: 'JavaScript',
|
|
121
|
+
typescript: 'TypeScript',
|
|
122
|
+
python: 'Python',
|
|
123
|
+
java: 'Java',
|
|
124
|
+
csharp: 'C#',
|
|
125
|
+
cpp: 'C++',
|
|
126
|
+
c: 'C',
|
|
127
|
+
go: 'Go',
|
|
128
|
+
rust: 'Rust',
|
|
129
|
+
ruby: 'Ruby',
|
|
130
|
+
php: 'PHP',
|
|
131
|
+
swift: 'Swift',
|
|
132
|
+
kotlin: 'Kotlin',
|
|
133
|
+
scala: 'Scala',
|
|
134
|
+
html: 'HTML',
|
|
135
|
+
css: 'CSS',
|
|
136
|
+
scss: 'SCSS',
|
|
137
|
+
less: 'Less',
|
|
138
|
+
json: 'JSON',
|
|
139
|
+
yaml: 'YAML',
|
|
140
|
+
xml: 'XML',
|
|
141
|
+
markdown: 'Markdown',
|
|
142
|
+
sql: 'SQL',
|
|
143
|
+
graphql: 'GraphQL',
|
|
144
|
+
bash: 'Bash',
|
|
145
|
+
shell: 'Shell',
|
|
146
|
+
powershell: 'PowerShell',
|
|
147
|
+
dockerfile: 'Dockerfile',
|
|
148
|
+
nginx: 'Nginx',
|
|
149
|
+
apache: 'Apache',
|
|
150
|
+
plaintext: 'Plain Text',
|
|
151
|
+
};
|
|
152
|
+
return displayNames[language] || language;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Check if a language is in the common languages list.
|
|
156
|
+
*/
|
|
157
|
+
export function isCommonLanguage(language) {
|
|
158
|
+
return CommonCodeLanguages.includes(language);
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=zod-code.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod-code.js","sourceRoot":"","sources":["../../src/zod-code.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* Color validation schema for various color formats
|
|
4
|
+
* Supports: hex (3/6 digits), rgb, rgba, hsl, hsla, and named colors
|
|
5
|
+
*/
|
|
6
|
+
export declare const ZodTypeForColors: z.ZodString;
|
|
7
|
+
export type ZodBrandedColorInstance = typeof ZodTypeForColors;
|
|
8
|
+
//# sourceMappingURL=zod-color.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod-color.d.ts","sourceRoot":"","sources":["../../src/zod-color.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,CAAC,CAAC,SAyFiB,CAAC;AAEnD,MAAM,MAAM,uBAAuB,GAAG,OAAO,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* Color validation schema for various color formats
|
|
4
|
+
* Supports: hex (3/6 digits), rgb, rgba, hsl, hsla, and named colors
|
|
5
|
+
*/
|
|
6
|
+
export const ZodTypeForColors = z.string().refine((color) => {
|
|
7
|
+
// Remove whitespace
|
|
8
|
+
const trimmedColor = color.trim();
|
|
9
|
+
// Hex colors: #fff, #ffffff, #FFF, #FFFFFF
|
|
10
|
+
const hexRegex = /^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$/;
|
|
11
|
+
if (hexRegex.test(trimmedColor)) {
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
// RGB colors: rgb(255, 255, 255)
|
|
15
|
+
const rgbRegex = /^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$/;
|
|
16
|
+
const rgbMatch = trimmedColor.match(rgbRegex);
|
|
17
|
+
if (rgbMatch) {
|
|
18
|
+
const [, r, g, b] = rgbMatch;
|
|
19
|
+
return [r, g, b].every(val => parseInt(val) >= 0 && parseInt(val) <= 255);
|
|
20
|
+
}
|
|
21
|
+
// RGBA colors: rgba(255, 255, 255, 0.5)
|
|
22
|
+
const rgbaRegex = /^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(0|1|0?\.\d+)\s*\)$/;
|
|
23
|
+
const rgbaMatch = trimmedColor.match(rgbaRegex);
|
|
24
|
+
if (rgbaMatch) {
|
|
25
|
+
const [, r, g, b, a] = rgbaMatch;
|
|
26
|
+
const rgbValid = [r, g, b].every(val => parseInt(val) >= 0 && parseInt(val) <= 255);
|
|
27
|
+
const alphaValid = parseFloat(a) >= 0 && parseFloat(a) <= 1;
|
|
28
|
+
return rgbValid && alphaValid;
|
|
29
|
+
}
|
|
30
|
+
// HSL colors: hsl(360, 100%, 50%)
|
|
31
|
+
const hslRegex = /^hsl\(\s*(\d{1,3})\s*,\s*(\d{1,3})%\s*,\s*(\d{1,3})%\s*\)$/;
|
|
32
|
+
const hslMatch = trimmedColor.match(hslRegex);
|
|
33
|
+
if (hslMatch) {
|
|
34
|
+
const [, h, s, l] = hslMatch;
|
|
35
|
+
const hValid = parseInt(h) >= 0 && parseInt(h) <= 360;
|
|
36
|
+
const sValid = parseInt(s) >= 0 && parseInt(s) <= 100;
|
|
37
|
+
const lValid = parseInt(l) >= 0 && parseInt(l) <= 100;
|
|
38
|
+
return hValid && sValid && lValid;
|
|
39
|
+
}
|
|
40
|
+
// HSLA colors: hsla(360, 100%, 50%, 0.5)
|
|
41
|
+
const hslaRegex = /^hsla\(\s*(\d{1,3})\s*,\s*(\d{1,3})%\s*,\s*(\d{1,3})%\s*,\s*(0|1|0?\.\d+)\s*\)$/;
|
|
42
|
+
const hslaMatch = trimmedColor.match(hslaRegex);
|
|
43
|
+
if (hslaMatch) {
|
|
44
|
+
const [, h, s, l, a] = hslaMatch;
|
|
45
|
+
const hValid = parseInt(h) >= 0 && parseInt(h) <= 360;
|
|
46
|
+
const sValid = parseInt(s) >= 0 && parseInt(s) <= 100;
|
|
47
|
+
const lValid = parseInt(l) >= 0 && parseInt(l) <= 100;
|
|
48
|
+
const alphaValid = parseFloat(a) >= 0 && parseFloat(a) <= 1;
|
|
49
|
+
return hValid && sValid && lValid && alphaValid;
|
|
50
|
+
}
|
|
51
|
+
// Named colors (basic set)
|
|
52
|
+
const namedColors = [
|
|
53
|
+
'aliceblue', 'antiquewhite', 'aqua', 'aquamarine', 'azure',
|
|
54
|
+
'beige', 'bisque', 'black', 'blanchedalmond', 'blue', 'blueviolet', 'brown', 'burlywood',
|
|
55
|
+
'cadetblue', 'chartreuse', 'chocolate', 'coral', 'cornflowerblue', 'cornsilk', 'crimson', 'cyan',
|
|
56
|
+
'darkblue', 'darkcyan', 'darkgoldenrod', 'darkgray', 'darkgreen', 'darkkhaki', 'darkmagenta',
|
|
57
|
+
'darkolivegreen', 'darkorange', 'darkorchid', 'darkred', 'darksalmon', 'darkseagreen',
|
|
58
|
+
'darkslateblue', 'darkslategray', 'darkturquoise', 'darkviolet', 'deeppink', 'deepskyblue',
|
|
59
|
+
'dimgray', 'dodgerblue',
|
|
60
|
+
'firebrick', 'floralwhite', 'forestgreen', 'fuchsia',
|
|
61
|
+
'gainsboro', 'ghostwhite', 'gold', 'goldenrod', 'gray', 'green', 'greenyellow',
|
|
62
|
+
'honeydew', 'hotpink',
|
|
63
|
+
'indianred', 'indigo', 'ivory',
|
|
64
|
+
'khaki',
|
|
65
|
+
'lavender', 'lavenderblush', 'lawngreen', 'lemonchiffon', 'lightblue', 'lightcoral',
|
|
66
|
+
'lightcyan', 'lightgoldenrodyellow', 'lightgray', 'lightgreen', 'lightpink', 'lightsalmon',
|
|
67
|
+
'lightseagreen', 'lightskyblue', 'lightslategray', 'lightsteelblue', 'lightyellow', 'lime',
|
|
68
|
+
'limegreen', 'linen',
|
|
69
|
+
'magenta', 'maroon', 'mediumaquamarine', 'mediumblue', 'mediumorchid', 'mediumpurple',
|
|
70
|
+
'mediumseagreen', 'mediumslateblue', 'mediumspringgreen', 'mediumturquoise', 'mediumvioletred',
|
|
71
|
+
'midnightblue', 'mintcream', 'mistyrose', 'moccasin',
|
|
72
|
+
'navajowhite', 'navy',
|
|
73
|
+
'oldlace', 'olive', 'olivedrab', 'orange', 'orangered', 'orchid',
|
|
74
|
+
'palegoldenrod', 'palegreen', 'paleturquoise', 'palevioletred', 'papayawhip', 'peachpuff',
|
|
75
|
+
'peru', 'pink', 'plum', 'powderblue', 'purple',
|
|
76
|
+
'red', 'rosybrown', 'royalblue',
|
|
77
|
+
'saddlebrown', 'salmon', 'sandybrown', 'seagreen', 'seashell', 'sienna', 'silver', 'skyblue',
|
|
78
|
+
'slateblue', 'slategray', 'snow', 'springgreen', 'steelblue',
|
|
79
|
+
'tan', 'teal', 'thistle', 'tomato', 'turquoise',
|
|
80
|
+
'violet',
|
|
81
|
+
'wheat', 'white', 'whitesmoke',
|
|
82
|
+
'yellow', 'yellowgreen'
|
|
83
|
+
];
|
|
84
|
+
return namedColors.includes(trimmedColor.toLowerCase());
|
|
85
|
+
}, {
|
|
86
|
+
message: 'Invalid color format. Use hex (#fff, #ffffff), rgb(255,255,255), rgba(255,255,255,0.5), hsl(360,100%,50%), hsla(360,100%,50%,0.5), or named colors'
|
|
87
|
+
}).describe('color').brand('color');
|
|
88
|
+
//# sourceMappingURL=zod-color.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod-color.js","sourceRoot":"","sources":["../../src/zod-color.ts"],"names":[],"mappings":"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"}
|