@voyantjs/utils 0.1.0 → 0.2.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/kms-aws.d.ts.map +1 -1
- package/dist/kms-aws.js +1 -4
- package/dist/kms-aws.js.map +1 -1
- package/dist/kms.d.ts +1 -1
- package/dist/kms.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/accounting-countries.d.ts +0 -12
- package/dist/accounting-countries.d.ts.map +0 -1
- package/dist/accounting-countries.js +0 -307
- package/dist/accounting-countries.js.map +0 -1
- package/dist/accounting-regions.d.ts +0 -103
- package/dist/accounting-regions.d.ts.map +0 -1
- package/dist/accounting-regions.js +0 -38
- package/dist/accounting-regions.js.map +0 -1
- package/dist/airlines.d.ts +0 -960
- package/dist/airlines.d.ts.map +0 -1
- package/dist/airlines.js +0 -989
- package/dist/airlines.js.map +0 -1
- package/dist/analytics/api-key-events.d.ts +0 -89
- package/dist/analytics/api-key-events.d.ts.map +0 -1
- package/dist/analytics/api-key-events.js +0 -99
- package/dist/analytics/api-key-events.js.map +0 -1
- package/dist/api-keys-client.d.ts +0 -40
- package/dist/api-keys-client.d.ts.map +0 -1
- package/dist/api-keys-client.js +0 -63
- package/dist/api-keys-client.js.map +0 -1
- package/dist/api-keys.d.ts +0 -48
- package/dist/api-keys.d.ts.map +0 -1
- package/dist/api-keys.js +0 -108
- package/dist/api-keys.js.map +0 -1
- package/dist/checkout-signature.d.ts +0 -15
- package/dist/checkout-signature.d.ts.map +0 -1
- package/dist/checkout-signature.js +0 -64
- package/dist/checkout-signature.js.map +0 -1
- package/dist/conditions.d.ts +0 -36
- package/dist/conditions.d.ts.map +0 -1
- package/dist/conditions.js +0 -396
- package/dist/conditions.js.map +0 -1
- package/dist/email/send.d.ts +0 -20
- package/dist/email/send.d.ts.map +0 -1
- package/dist/email/send.js +0 -53
- package/dist/email/send.js.map +0 -1
- package/dist/form-runtime.d.ts +0 -38
- package/dist/form-runtime.d.ts.map +0 -1
- package/dist/form-runtime.js +0 -174
- package/dist/form-runtime.js.map +0 -1
- package/dist/gcs/storage.d.ts +0 -23
- package/dist/gcs/storage.d.ts.map +0 -1
- package/dist/gcs/storage.js +0 -25
- package/dist/gcs/storage.js.map +0 -1
- package/dist/geo.d.ts +0 -85
- package/dist/geo.d.ts.map +0 -1
- package/dist/geo.js +0 -141
- package/dist/geo.js.map +0 -1
- package/dist/kms-crypto.d.ts +0 -20
- package/dist/kms-crypto.d.ts.map +0 -1
- package/dist/kms-crypto.js +0 -108
- package/dist/kms-crypto.js.map +0 -1
- package/dist/kv-codecs.d.ts +0 -6
- package/dist/kv-codecs.d.ts.map +0 -1
- package/dist/kv-codecs.js +0 -4
- package/dist/kv-codecs.js.map +0 -1
- package/dist/price/resolve.d.ts +0 -91
- package/dist/price/resolve.d.ts.map +0 -1
- package/dist/price/resolve.js +0 -227
- package/dist/price/resolve.js.map +0 -1
- package/dist/redis.d.ts +0 -13
- package/dist/redis.d.ts.map +0 -1
- package/dist/redis.js +0 -16
- package/dist/redis.js.map +0 -1
- package/dist/region-only.d.ts +0 -11
- package/dist/region-only.d.ts.map +0 -1
- package/dist/region-only.js +0 -49
- package/dist/region-only.js.map +0 -1
- package/dist/region.d.ts +0 -11
- package/dist/region.d.ts.map +0 -1
- package/dist/region.js +0 -47
- package/dist/region.js.map +0 -1
- package/dist/romania-bucharest-sectors.d.ts +0 -6
- package/dist/romania-bucharest-sectors.d.ts.map +0 -1
- package/dist/romania-bucharest-sectors.js +0 -27
- package/dist/romania-bucharest-sectors.js.map +0 -1
- package/dist/romania-counties.d.ts +0 -6
- package/dist/romania-counties.d.ts.map +0 -1
- package/dist/romania-counties.js +0 -171
- package/dist/romania-counties.js.map +0 -1
- package/dist/sms/provider.d.ts +0 -28
- package/dist/sms/provider.d.ts.map +0 -1
- package/dist/sms/provider.js +0 -50
- package/dist/sms/provider.js.map +0 -1
- package/dist/sms/segments.d.ts +0 -3
- package/dist/sms/segments.d.ts.map +0 -1
- package/dist/sms/segments.js +0 -33
- package/dist/sms/segments.js.map +0 -1
- package/dist/twilio/client.d.ts +0 -13
- package/dist/twilio/client.d.ts.map +0 -1
- package/dist/twilio/client.js +0 -26
- package/dist/twilio/client.js.map +0 -1
- package/dist/usage/index.d.ts +0 -34
- package/dist/usage/index.d.ts.map +0 -1
- package/dist/usage/index.js +0 -18
- package/dist/usage/index.js.map +0 -1
- package/dist/usage/policy.d.ts +0 -27
- package/dist/usage/policy.d.ts.map +0 -1
- package/dist/usage/policy.js +0 -17
- package/dist/usage/policy.js.map +0 -1
- package/dist/validation/log.d.ts +0 -10
- package/dist/validation/log.d.ts.map +0 -1
- package/dist/validation/log.js +0 -37
- package/dist/validation/log.js.map +0 -1
- package/dist/zod-form-builder.d.ts +0 -45
- package/dist/zod-form-builder.d.ts.map +0 -1
- package/dist/zod-form-builder.js +0 -216
- package/dist/zod-form-builder.js.map +0 -1
package/dist/zod-form-builder.js
DELETED
|
@@ -1,216 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Zod Form Builder
|
|
3
|
-
*
|
|
4
|
-
* Transforms FormDefinition into Zod validation schemas for
|
|
5
|
-
* server and client-side validation.
|
|
6
|
-
*/
|
|
7
|
-
import { z } from "zod";
|
|
8
|
-
import { evaluatePredicate } from "./conditions.js";
|
|
9
|
-
/**
|
|
10
|
-
* Map field type to base Zod schema
|
|
11
|
-
*/
|
|
12
|
-
function getBaseZodSchema(field) {
|
|
13
|
-
switch (field.type) {
|
|
14
|
-
case "text":
|
|
15
|
-
case "textarea":
|
|
16
|
-
return z.string();
|
|
17
|
-
case "email":
|
|
18
|
-
return z.string().email("Invalid email address");
|
|
19
|
-
case "phone":
|
|
20
|
-
return z.string().min(1, "Phone number is required");
|
|
21
|
-
case "number":
|
|
22
|
-
return z.coerce.number();
|
|
23
|
-
case "date":
|
|
24
|
-
return z.string().regex(/^\d{4}-\d{2}-\d{2}$/, "Invalid date format (YYYY-MM-DD)");
|
|
25
|
-
case "select":
|
|
26
|
-
case "radio":
|
|
27
|
-
if (field.options && field.options.length > 0) {
|
|
28
|
-
const values = field.options.map((opt) => opt.value);
|
|
29
|
-
return z.enum(values);
|
|
30
|
-
}
|
|
31
|
-
return z.string();
|
|
32
|
-
case "country":
|
|
33
|
-
return z.string().length(2, "Country code must be 2 characters");
|
|
34
|
-
case "checkbox":
|
|
35
|
-
return z.boolean();
|
|
36
|
-
default:
|
|
37
|
-
return z.string();
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Apply constraints to Zod schema
|
|
42
|
-
*/
|
|
43
|
-
function applyConstraints(schema, field) {
|
|
44
|
-
let result = schema;
|
|
45
|
-
// String-specific constraints
|
|
46
|
-
if (result instanceof z.ZodString) {
|
|
47
|
-
let str = result;
|
|
48
|
-
if (field.minLength !== undefined) {
|
|
49
|
-
str = str.min(field.minLength, `Must be at least ${field.minLength} characters`);
|
|
50
|
-
}
|
|
51
|
-
if (field.maxLength !== undefined) {
|
|
52
|
-
str = str.max(field.maxLength, `Must be at most ${field.maxLength} characters`);
|
|
53
|
-
}
|
|
54
|
-
if (field.pattern) {
|
|
55
|
-
try {
|
|
56
|
-
const regex = new RegExp(field.pattern);
|
|
57
|
-
str = str.regex(regex, "Invalid format");
|
|
58
|
-
}
|
|
59
|
-
catch (error) {
|
|
60
|
-
console.error(`Invalid regex pattern for field ${field.id}:`, error);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
result = str;
|
|
64
|
-
}
|
|
65
|
-
return result;
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Check if field should be visible based on context
|
|
69
|
-
*/
|
|
70
|
-
function isFieldVisible(field, context) {
|
|
71
|
-
// If explicitly hidden, not visible
|
|
72
|
-
if (field.hidden) {
|
|
73
|
-
return false;
|
|
74
|
-
}
|
|
75
|
-
// If has visibility condition, evaluate it
|
|
76
|
-
if (field.visibleWhen) {
|
|
77
|
-
try {
|
|
78
|
-
return evaluatePredicate(field.visibleWhen, context);
|
|
79
|
-
}
|
|
80
|
-
catch (error) {
|
|
81
|
-
console.error(`Error evaluating visibility for field ${field.id}:`, error);
|
|
82
|
-
return false;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
// Default: visible
|
|
86
|
-
return true;
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Check if field should be required based on context
|
|
90
|
-
*/
|
|
91
|
-
function isFieldRequired(field, context) {
|
|
92
|
-
// If has conditional required, evaluate it
|
|
93
|
-
if (field.requiredWhen) {
|
|
94
|
-
try {
|
|
95
|
-
return evaluatePredicate(field.requiredWhen, context);
|
|
96
|
-
}
|
|
97
|
-
catch (error) {
|
|
98
|
-
console.error(`Error evaluating required condition for field ${field.id}:`, error);
|
|
99
|
-
return field.required || false;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
// Fall back to base required
|
|
103
|
-
return field.required || false;
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Build Zod schema for a single field
|
|
107
|
-
*/
|
|
108
|
-
export function buildFieldSchema(field, context) {
|
|
109
|
-
// Check visibility first
|
|
110
|
-
if (!isFieldVisible(field, context)) {
|
|
111
|
-
return null; // Field not visible, exclude from schema
|
|
112
|
-
}
|
|
113
|
-
let schema = getBaseZodSchema(field);
|
|
114
|
-
schema = applyConstraints(schema, field);
|
|
115
|
-
// Handle required/optional
|
|
116
|
-
const required = isFieldRequired(field, context);
|
|
117
|
-
if (!required) {
|
|
118
|
-
// Make optional and nullable
|
|
119
|
-
schema = schema.optional().nullable();
|
|
120
|
-
}
|
|
121
|
-
else {
|
|
122
|
-
// For strings, ensure not empty
|
|
123
|
-
if (schema instanceof z.ZodString) {
|
|
124
|
-
schema = (schema).min(1, "This field is required");
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
return schema;
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Build Zod schema for an entire form
|
|
131
|
-
*/
|
|
132
|
-
export function buildFormSchema(formDef, context) {
|
|
133
|
-
if (!formDef || !formDef.fields || formDef.fields.length === 0) {
|
|
134
|
-
return z.object({});
|
|
135
|
-
}
|
|
136
|
-
const shape = {};
|
|
137
|
-
for (const field of formDef.fields) {
|
|
138
|
-
const fieldSchema = buildFieldSchema(field, context);
|
|
139
|
-
if (fieldSchema) {
|
|
140
|
-
shape[field.id] = fieldSchema;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
return z.object(shape);
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* Build Zod schema for billing form
|
|
147
|
-
*/
|
|
148
|
-
export function buildBillingSchema(formDef, context) {
|
|
149
|
-
return buildFormSchema(formDef, {
|
|
150
|
-
...context,
|
|
151
|
-
// Ensure billing context is available
|
|
152
|
-
billing: context.billing || {},
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* Build Zod schema for passenger form (per passenger)
|
|
157
|
-
*/
|
|
158
|
-
export function buildPassengerSchema(formDef, context, passengerIndex) {
|
|
159
|
-
return buildFormSchema(formDef, {
|
|
160
|
-
...context,
|
|
161
|
-
// Ensure passenger context is available
|
|
162
|
-
passenger: context.passenger || {},
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
/**
|
|
166
|
-
* Get visible fields from form definition based on context
|
|
167
|
-
*/
|
|
168
|
-
export function getVisibleFields(formDef, context) {
|
|
169
|
-
if (!formDef || !formDef.fields) {
|
|
170
|
-
return [];
|
|
171
|
-
}
|
|
172
|
-
return formDef.fields.filter((field) => isFieldVisible(field, context));
|
|
173
|
-
}
|
|
174
|
-
/**
|
|
175
|
-
* Get required fields from form definition based on context
|
|
176
|
-
*/
|
|
177
|
-
export function getRequiredFields(formDef, context) {
|
|
178
|
-
if (!formDef || !formDef.fields) {
|
|
179
|
-
return [];
|
|
180
|
-
}
|
|
181
|
-
return formDef.fields
|
|
182
|
-
.filter((field) => isFieldVisible(field, context) && isFieldRequired(field, context))
|
|
183
|
-
.map((field) => field.id);
|
|
184
|
-
}
|
|
185
|
-
/**
|
|
186
|
-
* Validate form data against form definition
|
|
187
|
-
*/
|
|
188
|
-
export function validateFormData(formDef, data, context) {
|
|
189
|
-
const schema = buildFormSchema(formDef, context);
|
|
190
|
-
try {
|
|
191
|
-
const validated = schema.parse(data);
|
|
192
|
-
return { success: true, data: validated };
|
|
193
|
-
}
|
|
194
|
-
catch (error) {
|
|
195
|
-
if (error instanceof z.ZodError) {
|
|
196
|
-
return { success: false, errors: error };
|
|
197
|
-
}
|
|
198
|
-
throw error;
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
/**
|
|
202
|
-
* Get default values for visible fields
|
|
203
|
-
*/
|
|
204
|
-
export function getDefaultValues(formDef, context) {
|
|
205
|
-
if (!formDef || !formDef.fields) {
|
|
206
|
-
return {};
|
|
207
|
-
}
|
|
208
|
-
const defaults = {};
|
|
209
|
-
for (const field of formDef.fields) {
|
|
210
|
-
if (isFieldVisible(field, context) && field.default !== undefined) {
|
|
211
|
-
defaults[field.id] = field.default;
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
return defaults;
|
|
215
|
-
}
|
|
216
|
-
//# sourceMappingURL=zod-form-builder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"zod-form-builder.js","sourceRoot":"","sources":["../src/zod-form-builder.ts"],"names":[],"mappings":"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"}
|