@hashgraphonline/standards-agent-kit 0.2.136 → 0.2.138
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 +3 -4
- package/dist/cjs/builders/hcs10/hcs10-builder.d.ts +1 -0
- package/dist/cjs/builders/hcs2/hcs2-builder.d.ts +8 -7
- package/dist/cjs/builders/hcs6/hcs6-builder.d.ts +5 -4
- package/dist/cjs/builders/inscriber/inscriber-builder.d.ts +32 -1
- package/dist/cjs/index.d.ts +4 -0
- package/dist/cjs/signing/bytes-registry.d.ts +17 -0
- package/dist/cjs/signing/signer-provider.d.ts +45 -0
- package/dist/cjs/standards-agent-kit.cjs +1 -1
- package/dist/cjs/standards-agent-kit.cjs.map +1 -1
- package/dist/cjs/tools/hcs10/InitiateConnectionTool.d.ts +4 -4
- package/dist/cjs/tools/hcs2/CreateRegistryTool.d.ts +2 -2
- package/dist/cjs/tools/hcs2/DeleteEntryTool.d.ts +2 -2
- package/dist/cjs/tools/hcs2/UpdateEntryTool.d.ts +2 -2
- package/dist/cjs/tools/hcs6/RegisterDynamicHashinalTool.d.ts +10 -10
- package/dist/cjs/tools/hcs6/UpdateDynamicHashinalTool.d.ts +8 -8
- package/dist/cjs/tools/inscriber/InscribeFromBufferTool.d.ts +5 -4
- package/dist/cjs/tools/inscriber/InscribeFromFileTool.d.ts +2 -2
- package/dist/cjs/tools/inscriber/InscribeFromUrlTool.d.ts +4 -4
- package/dist/cjs/tools/inscriber/InscribeHashinalTool.d.ts +3 -3
- package/dist/cjs/types/inscription-response.d.ts +8 -0
- package/dist/cjs/types/tx-results.d.ts +15 -0
- package/dist/cjs/utils/CodedError.d.ts +4 -0
- package/dist/cjs/utils/inscription-utils.d.ts +21 -0
- package/dist/cjs/validation/hip412-schemas.d.ts +2 -2
- package/dist/es/builders/hcs10/hcs10-builder.d.ts +1 -0
- package/dist/es/builders/hcs2/hcs2-builder.d.ts +8 -7
- package/dist/es/builders/hcs6/hcs6-builder.d.ts +5 -4
- package/dist/es/builders/inscriber/inscriber-builder.d.ts +32 -1
- package/dist/es/index.d.ts +4 -0
- package/dist/es/signing/bytes-registry.d.ts +17 -0
- package/dist/es/signing/signer-provider.d.ts +45 -0
- package/dist/es/standards-agent-kit.es.js +46 -42
- package/dist/es/standards-agent-kit.es.js.map +1 -1
- package/dist/es/standards-agent-kit.es10.js +24 -83
- package/dist/es/standards-agent-kit.es10.js.map +1 -1
- package/dist/es/standards-agent-kit.es11.js +224 -20
- package/dist/es/standards-agent-kit.es11.js.map +1 -1
- package/dist/es/standards-agent-kit.es12.js +78 -27
- package/dist/es/standards-agent-kit.es12.js.map +1 -1
- package/dist/es/standards-agent-kit.es13.js +26 -36
- package/dist/es/standards-agent-kit.es13.js.map +1 -1
- package/dist/es/standards-agent-kit.es14.js +17 -39
- package/dist/es/standards-agent-kit.es14.js.map +1 -1
- package/dist/es/standards-agent-kit.es15.js +36 -58
- package/dist/es/standards-agent-kit.es15.js.map +1 -1
- package/dist/es/standards-agent-kit.es16.js +45 -18
- package/dist/es/standards-agent-kit.es16.js.map +1 -1
- package/dist/es/standards-agent-kit.es17.js +53 -16
- package/dist/es/standards-agent-kit.es17.js.map +1 -1
- package/dist/es/standards-agent-kit.es18.js +18 -28
- package/dist/es/standards-agent-kit.es18.js.map +1 -1
- package/dist/es/standards-agent-kit.es19.js +26 -12
- package/dist/es/standards-agent-kit.es19.js.map +1 -1
- package/dist/es/standards-agent-kit.es20.js +38 -136
- package/dist/es/standards-agent-kit.es20.js.map +1 -1
- package/dist/es/standards-agent-kit.es21.js +13 -24
- package/dist/es/standards-agent-kit.es21.js.map +1 -1
- package/dist/es/standards-agent-kit.es22.js +136 -39
- package/dist/es/standards-agent-kit.es22.js.map +1 -1
- package/dist/es/standards-agent-kit.es23.js +25 -41
- package/dist/es/standards-agent-kit.es23.js.map +1 -1
- package/dist/es/standards-agent-kit.es24.js +49 -31
- package/dist/es/standards-agent-kit.es24.js.map +1 -1
- package/dist/es/standards-agent-kit.es25.js +34 -18
- package/dist/es/standards-agent-kit.es25.js.map +1 -1
- package/dist/es/standards-agent-kit.es26.js +35 -19
- package/dist/es/standards-agent-kit.es26.js.map +1 -1
- package/dist/es/standards-agent-kit.es27.js +45 -32
- package/dist/es/standards-agent-kit.es27.js.map +1 -1
- package/dist/es/standards-agent-kit.es28.js +54 -25
- package/dist/es/standards-agent-kit.es28.js.map +1 -1
- package/dist/es/standards-agent-kit.es29.js +35 -23
- package/dist/es/standards-agent-kit.es29.js.map +1 -1
- package/dist/es/standards-agent-kit.es3.js +41 -1545
- package/dist/es/standards-agent-kit.es3.js.map +1 -1
- package/dist/es/standards-agent-kit.es30.js +23 -39
- package/dist/es/standards-agent-kit.es30.js.map +1 -1
- package/dist/es/standards-agent-kit.es31.js +30 -28
- package/dist/es/standards-agent-kit.es31.js.map +1 -1
- package/dist/es/standards-agent-kit.es32.js +45 -32
- package/dist/es/standards-agent-kit.es32.js.map +1 -1
- package/dist/es/standards-agent-kit.es33.js +50 -89
- package/dist/es/standards-agent-kit.es33.js.map +1 -1
- package/dist/es/standards-agent-kit.es34.js +35 -228
- package/dist/es/standards-agent-kit.es34.js.map +1 -1
- package/dist/es/standards-agent-kit.es35.js +87 -212
- package/dist/es/standards-agent-kit.es35.js.map +1 -1
- package/dist/es/standards-agent-kit.es36.js +188 -128
- package/dist/es/standards-agent-kit.es36.js.map +1 -1
- package/dist/es/standards-agent-kit.es37.js +167 -561
- package/dist/es/standards-agent-kit.es37.js.map +1 -1
- package/dist/es/standards-agent-kit.es38.js +236 -31
- package/dist/es/standards-agent-kit.es38.js.map +1 -1
- package/dist/es/standards-agent-kit.es39.js +483 -206
- package/dist/es/standards-agent-kit.es39.js.map +1 -1
- package/dist/es/standards-agent-kit.es4.js +359 -81
- package/dist/es/standards-agent-kit.es4.js.map +1 -1
- package/dist/es/standards-agent-kit.es40.js +39 -135
- package/dist/es/standards-agent-kit.es40.js.map +1 -1
- package/dist/es/standards-agent-kit.es41.js +244 -28
- package/dist/es/standards-agent-kit.es41.js.map +1 -1
- package/dist/es/standards-agent-kit.es42.js +132 -418
- package/dist/es/standards-agent-kit.es42.js.map +1 -1
- package/dist/es/standards-agent-kit.es43.js +28 -184
- package/dist/es/standards-agent-kit.es43.js.map +1 -1
- package/dist/es/standards-agent-kit.es44.js +423 -3
- package/dist/es/standards-agent-kit.es44.js.map +1 -1
- package/dist/es/standards-agent-kit.es45.js +185 -24
- package/dist/es/standards-agent-kit.es45.js.map +1 -1
- package/dist/es/standards-agent-kit.es46.js +3 -3
- package/dist/es/standards-agent-kit.es46.js.map +1 -1
- package/dist/es/standards-agent-kit.es47.js +21 -50
- package/dist/es/standards-agent-kit.es47.js.map +1 -1
- package/dist/es/standards-agent-kit.es48.js +8 -3
- package/dist/es/standards-agent-kit.es48.js.map +1 -1
- package/dist/es/standards-agent-kit.es49.js +3 -39
- package/dist/es/standards-agent-kit.es49.js.map +1 -1
- package/dist/es/standards-agent-kit.es5.js +1747 -73
- package/dist/es/standards-agent-kit.es5.js.map +1 -1
- package/dist/es/standards-agent-kit.es50.js +18 -16
- package/dist/es/standards-agent-kit.es50.js.map +1 -1
- package/dist/es/standards-agent-kit.es51.js +49 -49
- package/dist/es/standards-agent-kit.es51.js.map +1 -1
- package/dist/es/standards-agent-kit.es52.js +6 -0
- package/dist/es/standards-agent-kit.es52.js.map +1 -0
- package/dist/es/standards-agent-kit.es53.js +43 -0
- package/dist/es/standards-agent-kit.es53.js.map +1 -0
- package/dist/es/standards-agent-kit.es54.js +22 -0
- package/dist/es/standards-agent-kit.es54.js.map +1 -0
- package/dist/es/standards-agent-kit.es55.js +77 -0
- package/dist/es/standards-agent-kit.es55.js.map +1 -0
- package/dist/es/standards-agent-kit.es56.js +7 -0
- package/dist/es/standards-agent-kit.es56.js.map +1 -0
- package/dist/es/standards-agent-kit.es6.js +347 -32
- package/dist/es/standards-agent-kit.es6.js.map +1 -1
- package/dist/es/standards-agent-kit.es7.js +142 -293
- package/dist/es/standards-agent-kit.es7.js.map +1 -1
- package/dist/es/standards-agent-kit.es8.js +201 -21
- package/dist/es/standards-agent-kit.es8.js.map +1 -1
- package/dist/es/standards-agent-kit.es9.js +301 -213
- package/dist/es/standards-agent-kit.es9.js.map +1 -1
- package/dist/es/tools/hcs10/InitiateConnectionTool.d.ts +4 -4
- package/dist/es/tools/hcs2/CreateRegistryTool.d.ts +2 -2
- package/dist/es/tools/hcs2/DeleteEntryTool.d.ts +2 -2
- package/dist/es/tools/hcs2/UpdateEntryTool.d.ts +2 -2
- package/dist/es/tools/hcs6/RegisterDynamicHashinalTool.d.ts +10 -10
- package/dist/es/tools/hcs6/UpdateDynamicHashinalTool.d.ts +8 -8
- package/dist/es/tools/inscriber/InscribeFromBufferTool.d.ts +5 -4
- package/dist/es/tools/inscriber/InscribeFromFileTool.d.ts +2 -2
- package/dist/es/tools/inscriber/InscribeFromUrlTool.d.ts +4 -4
- package/dist/es/tools/inscriber/InscribeHashinalTool.d.ts +3 -3
- package/dist/es/types/inscription-response.d.ts +8 -0
- package/dist/es/types/tx-results.d.ts +15 -0
- package/dist/es/utils/CodedError.d.ts +4 -0
- package/dist/es/utils/inscription-utils.d.ts +21 -0
- package/dist/es/validation/hip412-schemas.d.ts +2 -2
- package/dist/umd/builders/hcs10/hcs10-builder.d.ts +1 -0
- package/dist/umd/builders/hcs2/hcs2-builder.d.ts +8 -7
- package/dist/umd/builders/hcs6/hcs6-builder.d.ts +5 -4
- package/dist/umd/builders/inscriber/inscriber-builder.d.ts +32 -1
- package/dist/umd/index.d.ts +4 -0
- package/dist/umd/signing/bytes-registry.d.ts +17 -0
- package/dist/umd/signing/signer-provider.d.ts +45 -0
- package/dist/umd/standards-agent-kit.umd.js +1 -1
- package/dist/umd/standards-agent-kit.umd.js.map +1 -1
- package/dist/umd/tools/hcs10/InitiateConnectionTool.d.ts +4 -4
- package/dist/umd/tools/hcs2/CreateRegistryTool.d.ts +2 -2
- package/dist/umd/tools/hcs2/DeleteEntryTool.d.ts +2 -2
- package/dist/umd/tools/hcs2/UpdateEntryTool.d.ts +2 -2
- package/dist/umd/tools/hcs6/RegisterDynamicHashinalTool.d.ts +10 -10
- package/dist/umd/tools/hcs6/UpdateDynamicHashinalTool.d.ts +8 -8
- package/dist/umd/tools/inscriber/InscribeFromBufferTool.d.ts +5 -4
- package/dist/umd/tools/inscriber/InscribeFromFileTool.d.ts +2 -2
- package/dist/umd/tools/inscriber/InscribeFromUrlTool.d.ts +4 -4
- package/dist/umd/tools/inscriber/InscribeHashinalTool.d.ts +3 -3
- package/dist/umd/types/inscription-response.d.ts +8 -0
- package/dist/umd/types/tx-results.d.ts +15 -0
- package/dist/umd/utils/CodedError.d.ts +4 -0
- package/dist/umd/utils/inscription-utils.d.ts +21 -0
- package/dist/umd/validation/hip412-schemas.d.ts +2 -2
- package/package.json +10 -5
- package/src/builders/hcs10/hcs10-builder.ts +239 -6
- package/src/builders/hcs2/hcs2-builder.ts +302 -9
- package/src/builders/hcs6/hcs6-builder.ts +79 -4
- package/src/builders/inscriber/inscriber-builder.ts +235 -2
- package/src/hcs10/HCS10Client.ts +1 -1
- package/src/index.ts +5 -1
- package/src/lib/zod-render/schema-extension.ts +0 -1
- package/src/signing/bytes-registry.ts +501 -0
- package/src/signing/signer-provider.ts +120 -0
- package/src/tools/hcs2/CreateRegistryTool.ts +30 -5
- package/src/tools/hcs2/DeleteEntryTool.ts +16 -2
- package/src/tools/hcs2/MigrateRegistryTool.ts +16 -2
- package/src/tools/hcs2/QueryRegistryTool.ts +11 -2
- package/src/tools/hcs2/RegisterEntryTool.ts +17 -3
- package/src/tools/hcs2/UpdateEntryTool.ts +16 -2
- package/src/tools/hcs6/CreateDynamicRegistryTool.ts +17 -3
- package/src/tools/hcs6/RegisterDynamicHashinalTool.ts +17 -3
- package/src/tools/hcs6/UpdateDynamicHashinalTool.ts +17 -3
- package/src/tools/inscriber/InscribeFromBufferTool.ts +126 -21
- package/src/tools/inscriber/InscribeFromFileTool.ts +10 -13
- package/src/tools/inscriber/InscribeFromUrlTool.ts +15 -11
- package/src/tools/inscriber/InscribeHashinalTool.ts +40 -168
- package/src/tools/inscriber/RetrieveInscriptionTool.ts +15 -16
- package/src/types/inscription-response.ts +27 -0
- package/src/types/tx-results.ts +18 -0
- package/src/utils/CodedError.ts +8 -0
- package/src/utils/Encryption.ts +0 -2
- package/src/utils/ensure-agent-has-hbar.ts +4 -5
- package/src/utils/inscription-utils.ts +53 -0
|
@@ -1,7 +1,427 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { ZodType } from "zod";
|
|
2
|
+
function extendZodSchema(schema) {
|
|
3
|
+
const extendedSchema = schema;
|
|
4
|
+
extendedSchema.withRender = function(config) {
|
|
5
|
+
const newSchema = Object.create(this);
|
|
6
|
+
const currentConfig = this._renderConfig || {};
|
|
7
|
+
const mergedConfig = {
|
|
8
|
+
...currentConfig,
|
|
9
|
+
...config,
|
|
10
|
+
ui: {
|
|
11
|
+
...currentConfig.ui || {},
|
|
12
|
+
...config.ui || {}
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
if (currentConfig.progressive || config.progressive) {
|
|
16
|
+
mergedConfig.progressive = {
|
|
17
|
+
...currentConfig.progressive || {},
|
|
18
|
+
...config.progressive || {}
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
if (currentConfig.block || config.block) {
|
|
22
|
+
mergedConfig.block = {
|
|
23
|
+
...currentConfig.block || {},
|
|
24
|
+
...config.block || {}
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
newSchema._renderConfig = mergedConfig;
|
|
28
|
+
newSchema.withRender = extendedSchema.withRender;
|
|
29
|
+
newSchema.withProgressive = extendedSchema.withProgressive;
|
|
30
|
+
newSchema.withBlock = extendedSchema.withBlock;
|
|
31
|
+
return newSchema;
|
|
32
|
+
};
|
|
33
|
+
extendedSchema.withProgressive = function(priority, group) {
|
|
34
|
+
const currentConfig = this._renderConfig || { fieldType: inferFieldTypeFromSchema(schema) };
|
|
35
|
+
return this.withRender({
|
|
36
|
+
...currentConfig,
|
|
37
|
+
progressive: {
|
|
38
|
+
priority,
|
|
39
|
+
group
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
extendedSchema.withBlock = function(blockId) {
|
|
44
|
+
const currentConfig = this._renderConfig || { fieldType: inferFieldTypeFromSchema(schema) };
|
|
45
|
+
return this.withRender({
|
|
46
|
+
...currentConfig,
|
|
47
|
+
block: {
|
|
48
|
+
id: blockId,
|
|
49
|
+
type: "field",
|
|
50
|
+
reusable: true
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
return extendedSchema;
|
|
55
|
+
}
|
|
56
|
+
function hasRenderConfig(schema) {
|
|
57
|
+
return Boolean(schema && typeof schema.withRender === "function");
|
|
58
|
+
}
|
|
59
|
+
function getRenderConfig(schema) {
|
|
60
|
+
if (hasRenderConfig(schema)) {
|
|
61
|
+
return schema._renderConfig;
|
|
62
|
+
}
|
|
63
|
+
return void 0;
|
|
64
|
+
}
|
|
65
|
+
function inferFieldTypeFromSchema(schema) {
|
|
66
|
+
const typeName = schema._def?.typeName;
|
|
67
|
+
switch (typeName) {
|
|
68
|
+
case "ZodString": {
|
|
69
|
+
const stringChecks = schema._def?.checks || [];
|
|
70
|
+
for (const check of stringChecks) {
|
|
71
|
+
if (check.kind === "email") {
|
|
72
|
+
return "text";
|
|
73
|
+
}
|
|
74
|
+
if (check.kind === "url") {
|
|
75
|
+
return "text";
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return "text";
|
|
79
|
+
}
|
|
80
|
+
case "ZodNumber":
|
|
81
|
+
case "ZodBigInt":
|
|
82
|
+
return "number";
|
|
83
|
+
case "ZodBoolean":
|
|
84
|
+
return "checkbox";
|
|
85
|
+
case "ZodEnum":
|
|
86
|
+
case "ZodNativeEnum":
|
|
87
|
+
return "select";
|
|
88
|
+
case "ZodArray":
|
|
89
|
+
return "array";
|
|
90
|
+
case "ZodUnion":
|
|
91
|
+
case "ZodDiscriminatedUnion":
|
|
92
|
+
return "select";
|
|
93
|
+
case "ZodDate":
|
|
94
|
+
return "text";
|
|
95
|
+
case "ZodObject":
|
|
96
|
+
return "object";
|
|
97
|
+
case "ZodOptional":
|
|
98
|
+
case "ZodDefault": {
|
|
99
|
+
const innerType = schema._def?.innerType;
|
|
100
|
+
if (innerType) {
|
|
101
|
+
return inferFieldTypeFromSchema(innerType);
|
|
102
|
+
}
|
|
103
|
+
return "text";
|
|
104
|
+
}
|
|
105
|
+
default:
|
|
106
|
+
return "text";
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
function extractOptionsFromSchema(schema) {
|
|
110
|
+
const typeName = schema._def?.typeName;
|
|
111
|
+
if (typeName === "ZodEnum") {
|
|
112
|
+
const values = schema._def?.values;
|
|
113
|
+
if (Array.isArray(values)) {
|
|
114
|
+
return values.map((value) => ({
|
|
115
|
+
value,
|
|
116
|
+
label: value.charAt(0).toUpperCase() + value.slice(1).replace(/[_-]/g, " ")
|
|
117
|
+
}));
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
if (typeName === "ZodNativeEnum") {
|
|
121
|
+
const enumObject = schema._def?.values;
|
|
122
|
+
if (enumObject) {
|
|
123
|
+
return Object.entries(enumObject).map(([key, value]) => ({
|
|
124
|
+
value,
|
|
125
|
+
label: key.replace(/[_-]/g, " ")
|
|
126
|
+
}));
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
if (typeName === "ZodUnion") {
|
|
130
|
+
const options = [];
|
|
131
|
+
const unionOptions = schema._def?.options;
|
|
132
|
+
if (Array.isArray(unionOptions)) {
|
|
133
|
+
for (const option of unionOptions) {
|
|
134
|
+
if (option._def?.typeName === "ZodLiteral") {
|
|
135
|
+
const value = option._def?.value;
|
|
136
|
+
if (value !== void 0) {
|
|
137
|
+
options.push({
|
|
138
|
+
value,
|
|
139
|
+
label: typeof value === "string" ? value.charAt(0).toUpperCase() + value.slice(1) : String(value)
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return options.length > 0 ? options : void 0;
|
|
146
|
+
}
|
|
147
|
+
return void 0;
|
|
148
|
+
}
|
|
149
|
+
function isOptionalSchema(schema) {
|
|
150
|
+
const typeName = schema._def?.typeName;
|
|
151
|
+
return typeName === "ZodOptional" || typeName === "ZodDefault";
|
|
152
|
+
}
|
|
153
|
+
function getInnerSchema(schema) {
|
|
154
|
+
const typeName = schema._def?.typeName;
|
|
155
|
+
if (typeName === "ZodOptional" || typeName === "ZodDefault") {
|
|
156
|
+
const innerType = schema._def?.innerType;
|
|
157
|
+
return innerType || schema;
|
|
158
|
+
}
|
|
159
|
+
return schema;
|
|
160
|
+
}
|
|
161
|
+
function extractValidationConstraints(schema) {
|
|
162
|
+
const innerSchema = getInnerSchema(schema);
|
|
163
|
+
const typeName = innerSchema._def?.typeName;
|
|
164
|
+
const constraints = {};
|
|
165
|
+
if (typeName === "ZodString") {
|
|
166
|
+
const def = innerSchema._def;
|
|
167
|
+
const checks = def.checks;
|
|
168
|
+
if (checks && Array.isArray(checks)) {
|
|
169
|
+
for (const check of checks) {
|
|
170
|
+
switch (check.kind) {
|
|
171
|
+
case "min":
|
|
172
|
+
constraints.minLength = check.value;
|
|
173
|
+
break;
|
|
174
|
+
case "max":
|
|
175
|
+
constraints.maxLength = check.value;
|
|
176
|
+
break;
|
|
177
|
+
case "email":
|
|
178
|
+
constraints.type = "email";
|
|
179
|
+
break;
|
|
180
|
+
case "url":
|
|
181
|
+
constraints.type = "url";
|
|
182
|
+
break;
|
|
183
|
+
case "regex":
|
|
184
|
+
constraints.pattern = check.regex;
|
|
185
|
+
break;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
if (typeName === "ZodNumber") {
|
|
191
|
+
const def = innerSchema._def;
|
|
192
|
+
const checks = def.checks;
|
|
193
|
+
if (checks && Array.isArray(checks)) {
|
|
194
|
+
for (const check of checks) {
|
|
195
|
+
switch (check.kind) {
|
|
196
|
+
case "min":
|
|
197
|
+
constraints.min = check.value;
|
|
198
|
+
break;
|
|
199
|
+
case "max":
|
|
200
|
+
constraints.max = check.value;
|
|
201
|
+
break;
|
|
202
|
+
case "int":
|
|
203
|
+
constraints.step = 1;
|
|
204
|
+
break;
|
|
205
|
+
case "multipleOf":
|
|
206
|
+
constraints.step = check.value;
|
|
207
|
+
break;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
if (typeName === "ZodArray") {
|
|
213
|
+
const def = innerSchema._def;
|
|
214
|
+
const minLength = def.minLength;
|
|
215
|
+
const maxLength = def.maxLength;
|
|
216
|
+
if (minLength !== void 0) {
|
|
217
|
+
constraints.minItems = minLength.value;
|
|
218
|
+
}
|
|
219
|
+
if (maxLength !== void 0) {
|
|
220
|
+
constraints.maxItems = maxLength.value;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
return constraints;
|
|
224
|
+
}
|
|
225
|
+
function getDefaultValue(schema) {
|
|
226
|
+
const typeName = schema._def?.typeName;
|
|
227
|
+
if (typeName === "ZodDefault") {
|
|
228
|
+
const defaultValue = schema._def?.defaultValue;
|
|
229
|
+
if (typeof defaultValue === "function") {
|
|
230
|
+
return defaultValue();
|
|
231
|
+
}
|
|
232
|
+
return defaultValue;
|
|
233
|
+
}
|
|
234
|
+
const innerSchema = getInnerSchema(schema);
|
|
235
|
+
const innerTypeName = innerSchema._def?.typeName;
|
|
236
|
+
switch (innerTypeName) {
|
|
237
|
+
case "ZodString":
|
|
238
|
+
return "";
|
|
239
|
+
case "ZodNumber":
|
|
240
|
+
case "ZodBigInt":
|
|
241
|
+
return 0;
|
|
242
|
+
case "ZodBoolean":
|
|
243
|
+
return false;
|
|
244
|
+
case "ZodArray":
|
|
245
|
+
return [];
|
|
246
|
+
case "ZodObject": {
|
|
247
|
+
const shape = innerSchema._def?.shape;
|
|
248
|
+
if (shape) {
|
|
249
|
+
const defaultObj = {};
|
|
250
|
+
for (const [key, value] of Object.entries(shape)) {
|
|
251
|
+
defaultObj[key] = getDefaultValue(value);
|
|
252
|
+
}
|
|
253
|
+
return defaultObj;
|
|
254
|
+
}
|
|
255
|
+
return {};
|
|
256
|
+
}
|
|
257
|
+
case "ZodDate":
|
|
258
|
+
return /* @__PURE__ */ new Date();
|
|
259
|
+
case "ZodEnum": {
|
|
260
|
+
const values = innerSchema._def?.values;
|
|
261
|
+
return Array.isArray(values) && values.length > 0 ? values[0] : void 0;
|
|
262
|
+
}
|
|
263
|
+
default:
|
|
264
|
+
return void 0;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
function extractFieldMetadata(schema) {
|
|
268
|
+
const innerSchema = getInnerSchema(schema);
|
|
269
|
+
const fieldType = inferFieldTypeFromSchema(schema);
|
|
270
|
+
const required = !isOptionalSchema(schema);
|
|
271
|
+
const optional = isOptionalSchema(schema);
|
|
272
|
+
const defaultValue = getDefaultValue(schema);
|
|
273
|
+
const options = extractOptionsFromSchema(innerSchema);
|
|
274
|
+
const constraints = extractValidationConstraints(schema);
|
|
275
|
+
const description = schema?.description;
|
|
276
|
+
return {
|
|
277
|
+
type: fieldType,
|
|
278
|
+
required,
|
|
279
|
+
optional,
|
|
280
|
+
default: defaultValue,
|
|
281
|
+
options,
|
|
282
|
+
constraints,
|
|
283
|
+
description,
|
|
284
|
+
validation: {
|
|
285
|
+
minLength: constraints.minLength,
|
|
286
|
+
maxLength: constraints.maxLength,
|
|
287
|
+
min: constraints.min,
|
|
288
|
+
max: constraints.max,
|
|
289
|
+
pattern: constraints.pattern ? new RegExp(constraints.pattern) : void 0
|
|
290
|
+
}
|
|
291
|
+
};
|
|
292
|
+
}
|
|
293
|
+
const renderConfigs = {
|
|
294
|
+
text: (label, placeholder, priority = "common") => ({
|
|
295
|
+
fieldType: "text",
|
|
296
|
+
ui: { label, placeholder, priority },
|
|
297
|
+
progressive: { priority }
|
|
298
|
+
}),
|
|
299
|
+
number: (label, min, max, priority = "common") => ({
|
|
300
|
+
fieldType: "number",
|
|
301
|
+
ui: { label, priority },
|
|
302
|
+
constraints: { min, max },
|
|
303
|
+
progressive: { priority }
|
|
304
|
+
}),
|
|
305
|
+
select: (label, options, priority = "common") => ({
|
|
306
|
+
fieldType: "select",
|
|
307
|
+
ui: { label, priority },
|
|
308
|
+
options,
|
|
309
|
+
progressive: { priority }
|
|
310
|
+
}),
|
|
311
|
+
textarea: (label, rows = 3, priority = "common") => ({
|
|
312
|
+
fieldType: "textarea",
|
|
313
|
+
ui: { label, priority },
|
|
314
|
+
props: { rows },
|
|
315
|
+
progressive: { priority }
|
|
316
|
+
}),
|
|
317
|
+
currency: (label, symbol = "HBAR", priority = "common") => ({
|
|
318
|
+
fieldType: "currency",
|
|
319
|
+
ui: { label, priority },
|
|
320
|
+
props: { symbol },
|
|
321
|
+
progressive: { priority }
|
|
322
|
+
}),
|
|
323
|
+
array: (label, itemLabel, priority = "advanced") => ({
|
|
324
|
+
fieldType: "array",
|
|
325
|
+
ui: { label, priority },
|
|
326
|
+
props: { itemLabel },
|
|
327
|
+
progressive: { priority }
|
|
328
|
+
}),
|
|
329
|
+
essential: {
|
|
330
|
+
text: (label, placeholder) => renderConfigs.text(label, placeholder, "essential"),
|
|
331
|
+
number: (label, min, max) => renderConfigs.number(label, min, max, "essential"),
|
|
332
|
+
select: (label, options) => renderConfigs.select(label, options, "essential"),
|
|
333
|
+
textarea: (label, rows) => renderConfigs.textarea(label, rows, "essential")
|
|
334
|
+
},
|
|
335
|
+
advanced: {
|
|
336
|
+
text: (label, placeholder) => renderConfigs.text(label, placeholder, "advanced"),
|
|
337
|
+
number: (label, min, max) => renderConfigs.number(label, min, max, "advanced"),
|
|
338
|
+
select: (label, options) => renderConfigs.select(label, options, "advanced"),
|
|
339
|
+
textarea: (label, rows) => renderConfigs.textarea(label, rows, "advanced"),
|
|
340
|
+
array: (label, itemLabel) => renderConfigs.array(label, itemLabel, "advanced")
|
|
341
|
+
},
|
|
342
|
+
expert: {
|
|
343
|
+
text: (label, placeholder) => renderConfigs.text(label, placeholder, "expert"),
|
|
344
|
+
number: (label, min, max) => renderConfigs.number(label, min, max, "expert"),
|
|
345
|
+
select: (label, options) => renderConfigs.select(label, options, "expert"),
|
|
346
|
+
textarea: (label, rows) => renderConfigs.textarea(label, rows, "expert")
|
|
347
|
+
}
|
|
348
|
+
};
|
|
349
|
+
function installZodRenderExtensions() {
|
|
350
|
+
if (!ZodType.prototype.withRender) {
|
|
351
|
+
ZodType.prototype.withRender = function(config) {
|
|
352
|
+
return extendZodSchema(this).withRender(config);
|
|
353
|
+
};
|
|
354
|
+
ZodType.prototype.withProgressive = function(priority, group) {
|
|
355
|
+
return extendZodSchema(this).withProgressive(priority, group);
|
|
356
|
+
};
|
|
357
|
+
ZodType.prototype.withBlock = function(blockId) {
|
|
358
|
+
return extendZodSchema(this).withBlock(blockId);
|
|
359
|
+
};
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
function createProgressiveSchema(baseSchema, groups) {
|
|
363
|
+
const extendedSchema = extendZodSchema(baseSchema);
|
|
364
|
+
const typeName = baseSchema._def?.typeName;
|
|
365
|
+
if (typeName === "ZodObject") {
|
|
366
|
+
const shape = baseSchema._def?.shape;
|
|
367
|
+
if (shape) {
|
|
368
|
+
for (const [fieldName, fieldSchema] of Object.entries(shape)) {
|
|
369
|
+
let fieldGroup;
|
|
370
|
+
let fieldPriority = "common";
|
|
371
|
+
for (const [groupName, groupConfig] of Object.entries(groups)) {
|
|
372
|
+
if (groupConfig.fields.includes(fieldName)) {
|
|
373
|
+
fieldGroup = groupName;
|
|
374
|
+
fieldPriority = groupConfig.priority;
|
|
375
|
+
break;
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
extendZodSchema(fieldSchema).withProgressive(fieldPriority, fieldGroup);
|
|
379
|
+
}
|
|
380
|
+
return extendedSchema;
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
return extendedSchema;
|
|
384
|
+
}
|
|
385
|
+
function enhanceRenderConfig(config) {
|
|
386
|
+
return {
|
|
387
|
+
...config,
|
|
388
|
+
progressive: {
|
|
389
|
+
priority: config.ui?.priority || "common",
|
|
390
|
+
group: config.ui?.group
|
|
391
|
+
}
|
|
392
|
+
};
|
|
393
|
+
}
|
|
394
|
+
function extractProgressiveInfo(schema) {
|
|
395
|
+
const renderConfig = getRenderConfig(schema);
|
|
396
|
+
if (renderConfig?.progressive) {
|
|
397
|
+
return {
|
|
398
|
+
priority: renderConfig.progressive.priority,
|
|
399
|
+
group: renderConfig.progressive.group
|
|
400
|
+
};
|
|
401
|
+
}
|
|
402
|
+
if (renderConfig?.ui?.priority) {
|
|
403
|
+
return {
|
|
404
|
+
priority: renderConfig.ui.priority,
|
|
405
|
+
group: renderConfig.ui.group
|
|
406
|
+
};
|
|
407
|
+
}
|
|
408
|
+
return { priority: "common" };
|
|
3
409
|
}
|
|
4
410
|
export {
|
|
5
|
-
|
|
411
|
+
createProgressiveSchema,
|
|
412
|
+
enhanceRenderConfig,
|
|
413
|
+
extendZodSchema,
|
|
414
|
+
extractFieldMetadata,
|
|
415
|
+
extractOptionsFromSchema,
|
|
416
|
+
extractProgressiveInfo,
|
|
417
|
+
extractValidationConstraints,
|
|
418
|
+
getDefaultValue,
|
|
419
|
+
getInnerSchema,
|
|
420
|
+
getRenderConfig,
|
|
421
|
+
hasRenderConfig,
|
|
422
|
+
inferFieldTypeFromSchema,
|
|
423
|
+
installZodRenderExtensions,
|
|
424
|
+
isOptionalSchema,
|
|
425
|
+
renderConfigs
|
|
6
426
|
};
|
|
7
427
|
//# sourceMappingURL=standards-agent-kit.es44.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-agent-kit.es44.js","sources":["../../src/interfaces/FormValidatable.ts"],"sourcesContent":["import { z } from 'zod';\n\n/**\n * Interface for tools that can provide custom form validation logic\n */\nexport interface FormValidatable {\n /**\n * Determines if a form should be generated for the given input\n * @param input The input data to validate\n * @returns true if a form should be generated, false if the tool can execute\n */\n shouldGenerateForm(input: unknown): boolean;\n\n /**\n * Returns the schema to use for form generation\n * This allows tools to provide a focused schema for forms\n * @returns The schema to use for generating forms\n */\n getFormSchema(): z.ZodSchema;\n\n /**\n * Defines which fields are essential for this tool\n * Essential fields are always shown in forms even if marked as optional\n * @returns Array of field names that are essential for user experience\n */\n getEssentialFields(): string[];\n\n /**\n * Determines if a field value should be considered empty\n * Allows tools to define custom empty logic for their specific data types\n * @param fieldName The name of the field\n * @param value The value to check\n * @returns true if the field should be considered empty\n */\n isFieldEmpty(fieldName: string, value: unknown): boolean;\n}\n\n/**\n * Type guard to check if a tool implements FormValidatable\n */\nexport function isFormValidatable(tool: unknown): tool is FormValidatable {\n return (\n tool !== null &&\n typeof tool === 'object' &&\n 'shouldGenerateForm' in tool &&\n 'getFormSchema' in tool &&\n 'getEssentialFields' in tool &&\n 'isFieldEmpty' in tool &&\n typeof (tool as FormValidatable).shouldGenerateForm === 'function' &&\n typeof (tool as FormValidatable).getFormSchema === 'function' &&\n typeof (tool as FormValidatable).getEssentialFields === 'function' &&\n typeof (tool as FormValidatable).isFieldEmpty === 'function'\n );\n}"],"names":[],"mappings":"AAwCO,SAAS,kBAAkB,MAAwC;AACxE,SACE,SAAS,QACT,OAAO,SAAS,YAChB,wBAAwB,QACxB,mBAAmB,QACnB,wBAAwB,QACxB,kBAAkB,QAClB,OAAQ,KAAyB,uBAAuB,cACxD,OAAQ,KAAyB,kBAAkB,cACnD,OAAQ,KAAyB,uBAAuB,cACxD,OAAQ,KAAyB,iBAAiB;AAEtD;"}
|
|
1
|
+
{"version":3,"file":"standards-agent-kit.es44.js","sources":["../../src/lib/zod-render/schema-extension.ts"],"sourcesContent":["import { ZodType } from 'zod';\nimport { RenderConfigSchema, EnhancedRenderConfig, ZodSchemaWithRender, FormFieldType, FieldMetadata, SelectOption } from './types';\n\ninterface ExtendedZodSchema {\n description?: string;\n merge?: (other: ZodType<unknown>) => ZodType<unknown>;\n extend?: (extensions: Record<string, ZodType<unknown>>) => ZodType<unknown>;\n pick?: (fields: Record<string, boolean>) => ZodType<unknown>;\n omit?: (fields: Record<string, boolean>) => ZodType<unknown>;\n withRender?: (config: EnhancedRenderConfig | RenderConfigSchema) => ZodSchemaWithRender<unknown>;\n withProgressive?: (priority: 'essential' | 'common' | 'advanced' | 'expert', group?: string) => ZodSchemaWithRender<unknown>;\n withBlock?: (blockId: string) => ZodSchemaWithRender<unknown>;\n}\n\n/**\n * Extends a Zod schema with render configuration capabilities\n */\nexport function extendZodSchema<TSchema>(schema: ZodType<TSchema>): ZodSchemaWithRender<TSchema> {\n const extendedSchema = schema as ZodSchemaWithRender<TSchema>;\n\n extendedSchema.withRender = function(config: EnhancedRenderConfig | RenderConfigSchema): ZodSchemaWithRender<TSchema> {\n const newSchema = Object.create(this);\n const currentConfig = this._renderConfig || {} as EnhancedRenderConfig;\n\n const mergedConfig: EnhancedRenderConfig = {\n ...currentConfig,\n ...config,\n ui: {\n ...(currentConfig.ui || {}),\n ...(config.ui || {})\n }\n };\n\n if (currentConfig.progressive || (config as EnhancedRenderConfig).progressive) {\n mergedConfig.progressive = {\n ...(currentConfig.progressive || {} as NonNullable<EnhancedRenderConfig['progressive']>),\n ...((config as EnhancedRenderConfig).progressive || {} as NonNullable<EnhancedRenderConfig['progressive']>)\n };\n }\n\n if (currentConfig.block || (config as EnhancedRenderConfig).block) {\n mergedConfig.block = {\n ...(currentConfig.block || {} as NonNullable<EnhancedRenderConfig['block']>),\n ...((config as EnhancedRenderConfig).block || {} as NonNullable<EnhancedRenderConfig['block']>)\n };\n }\n\n (newSchema as ZodSchemaWithRender<TSchema>)._renderConfig = mergedConfig;\n (newSchema as ZodSchemaWithRender<TSchema>).withRender = extendedSchema.withRender;\n (newSchema as ZodSchemaWithRender<TSchema>).withProgressive = extendedSchema.withProgressive;\n (newSchema as ZodSchemaWithRender<TSchema>).withBlock = extendedSchema.withBlock;\n return newSchema as ZodSchemaWithRender<TSchema>;\n };\n\n extendedSchema.withProgressive = function(\n priority: 'essential' | 'common' | 'advanced' | 'expert',\n group?: string\n ): ZodSchemaWithRender<TSchema> {\n const currentConfig = this._renderConfig || { fieldType: inferFieldTypeFromSchema(schema) };\n return this.withRender({\n ...currentConfig,\n progressive: {\n priority,\n group\n }\n });\n };\n\n extendedSchema.withBlock = function(blockId: string): ZodSchemaWithRender<TSchema> {\n const currentConfig = this._renderConfig || { fieldType: inferFieldTypeFromSchema(schema) };\n return this.withRender({\n ...currentConfig,\n block: {\n id: blockId,\n type: 'field',\n reusable: true\n }\n });\n };\n\n return extendedSchema;\n}\n\n/**\n * Checks if a schema has render configuration\n */\nexport function hasRenderConfig(schema: unknown): schema is ZodSchemaWithRender {\n return Boolean(schema && typeof (schema as Record<string, unknown>).withRender === 'function');\n}\n\n/**\n * Extracts render configuration from a schema\n */\nexport function getRenderConfig(schema: ZodType<unknown>): EnhancedRenderConfig | undefined {\n if (hasRenderConfig(schema)) {\n return schema._renderConfig;\n }\n return undefined;\n}\n\n/**\n * Infers form field type from Zod schema type with enhanced field detection\n */\nexport function inferFieldTypeFromSchema(schema: ZodType<unknown>): FormFieldType {\n const typeName = (schema._def as Record<string, unknown>)?.typeName;\n\n switch (typeName) {\n case 'ZodString': {\n const stringChecks = ((schema._def as Record<string, unknown>)?.checks as Array<Record<string, unknown>>) || [];\n for (const check of stringChecks) {\n if (check.kind === 'email') {return 'text';}\n if (check.kind === 'url') {return 'text';}\n }\n return 'text';\n }\n\n case 'ZodNumber':\n case 'ZodBigInt':\n return 'number';\n\n case 'ZodBoolean':\n return 'checkbox';\n\n case 'ZodEnum':\n case 'ZodNativeEnum':\n return 'select';\n\n case 'ZodArray':\n return 'array';\n\n case 'ZodUnion':\n case 'ZodDiscriminatedUnion':\n return 'select';\n\n case 'ZodDate':\n return 'text';\n\n case 'ZodObject':\n return 'object';\n\n case 'ZodOptional':\n case 'ZodDefault': {\n const innerType = (schema._def as Record<string, unknown>)?.innerType as ZodType<unknown>;\n if (innerType) {\n return inferFieldTypeFromSchema(innerType);\n }\n return 'text';\n }\n\n default:\n return 'text';\n }\n}\n\n/**\n * Extracts options from enum, union, or literal schemas\n */\nexport function extractOptionsFromSchema(schema: ZodType<unknown>): SelectOption[] | undefined {\n const typeName = (schema._def as Record<string, unknown>)?.typeName;\n\n if (typeName === 'ZodEnum') {\n const values = (schema._def as Record<string, unknown>)?.values;\n if (Array.isArray(values)) {\n return values.map((value: string) => ({\n value,\n label: value.charAt(0).toUpperCase() + value.slice(1).replace(/[_-]/g, ' '),\n }));\n }\n }\n\n if (typeName === 'ZodNativeEnum') {\n const enumObject = (schema._def as Record<string, unknown>)?.values as Record<string, unknown>;\n if (enumObject) {\n return Object.entries(enumObject).map(([key, value]) => ({\n value,\n label: key.replace(/[_-]/g, ' '),\n }));\n }\n }\n\n if (typeName === 'ZodUnion') {\n const options: SelectOption[] = [];\n const unionOptions = (schema._def as Record<string, unknown>)?.options as Array<ZodType<unknown>>;\n\n if (Array.isArray(unionOptions)) {\n for (const option of unionOptions) {\n if ((option._def as Record<string, unknown>)?.typeName === 'ZodLiteral') {\n const value = (option._def as Record<string, unknown>)?.value;\n if (value !== undefined) {\n options.push({\n value,\n label: typeof value === 'string'\n ? value.charAt(0).toUpperCase() + value.slice(1)\n : String(value),\n });\n }\n }\n }\n }\n\n return options.length > 0 ? options : undefined;\n }\n\n return undefined;\n}\n\n/**\n * Checks if a schema is optional\n */\nexport function isOptionalSchema(schema: ZodType<unknown>): boolean {\n const typeName = (schema._def as Record<string, unknown>)?.typeName;\n return typeName === 'ZodOptional' || typeName === 'ZodDefault';\n}\n\n/**\n * Gets the inner schema from optional/default wrappers\n */\nexport function getInnerSchema(schema: ZodType<unknown>): ZodType<unknown> {\n const typeName = (schema._def as Record<string, unknown>)?.typeName;\n if (typeName === 'ZodOptional' || typeName === 'ZodDefault') {\n const innerType = (schema._def as Record<string, unknown>)?.innerType as ZodType<unknown>;\n return innerType || schema;\n }\n return schema;\n}\n\n/**\n * Extracts validation constraints from a schema with enhanced support\n */\nexport function extractValidationConstraints(schema: ZodType<unknown>): Record<string, unknown> {\n const innerSchema = getInnerSchema(schema);\n const typeName = (innerSchema._def as Record<string, unknown>)?.typeName;\n const constraints: Record<string, unknown> = {};\n\n if (typeName === 'ZodString') {\n const def = innerSchema._def as Record<string, unknown>;\n const checks = def.checks as Array<Record<string, unknown>>;\n if (checks && Array.isArray(checks)) {\n for (const check of checks) {\n switch (check.kind) {\n case 'min':\n constraints.minLength = check.value;\n break;\n case 'max':\n constraints.maxLength = check.value;\n break;\n case 'email':\n constraints.type = 'email';\n break;\n case 'url':\n constraints.type = 'url';\n break;\n case 'regex':\n constraints.pattern = check.regex as string;\n break;\n }\n }\n }\n }\n\n if (typeName === 'ZodNumber') {\n const def = innerSchema._def as Record<string, unknown>;\n const checks = def.checks as Array<Record<string, unknown>>;\n if (checks && Array.isArray(checks)) {\n for (const check of checks) {\n switch (check.kind) {\n case 'min':\n constraints.min = check.value;\n break;\n case 'max':\n constraints.max = check.value;\n break;\n case 'int':\n constraints.step = 1;\n break;\n case 'multipleOf':\n constraints.step = check.value;\n break;\n }\n }\n }\n }\n\n if (typeName === 'ZodArray') {\n const def = innerSchema._def as Record<string, unknown>;\n const minLength = def.minLength as Record<string, unknown> | undefined;\n const maxLength = def.maxLength as Record<string, unknown> | undefined;\n if (minLength !== undefined) {\n constraints.minItems = minLength.value;\n }\n if (maxLength !== undefined) {\n constraints.maxItems = maxLength.value;\n }\n }\n\n return constraints;\n}\n\n/**\n * Gets default value from schema with comprehensive type support\n */\nexport function getDefaultValue(schema: ZodType<unknown>): unknown {\n const typeName = (schema._def as Record<string, unknown>)?.typeName;\n if (typeName === 'ZodDefault') {\n const defaultValue = (schema._def as Record<string, unknown>)?.defaultValue;\n if (typeof defaultValue === 'function') {\n return (defaultValue as () => unknown)();\n }\n return defaultValue;\n }\n\n const innerSchema = getInnerSchema(schema);\n const innerTypeName = (innerSchema._def as Record<string, unknown>)?.typeName;\n\n switch (innerTypeName) {\n case 'ZodString':\n return '';\n case 'ZodNumber':\n case 'ZodBigInt':\n return 0;\n case 'ZodBoolean':\n return false;\n case 'ZodArray':\n return [];\n case 'ZodObject': {\n const shape = (innerSchema._def as Record<string, unknown>)?.shape as Record<string, ZodType<unknown>>;\n if (shape) {\n const defaultObj: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(shape)) {\n defaultObj[key] = getDefaultValue(value);\n }\n return defaultObj;\n }\n return {};\n }\n case 'ZodDate':\n return new Date();\n case 'ZodEnum': {\n const values = (innerSchema._def as Record<string, unknown>)?.values as unknown[];\n return Array.isArray(values) && values.length > 0 ? values[0] : undefined;\n }\n default:\n return undefined;\n }\n}\n\n/**\n * Extracts field metadata from schema including render configuration\n */\nexport function extractFieldMetadata(schema: ZodType<unknown>): FieldMetadata {\n const innerSchema = getInnerSchema(schema);\n const fieldType = inferFieldTypeFromSchema(schema);\n const required = !isOptionalSchema(schema);\n const optional = isOptionalSchema(schema);\n const defaultValue = getDefaultValue(schema);\n const options = extractOptionsFromSchema(innerSchema);\n const constraints = extractValidationConstraints(schema);\n const description = (schema as ZodType<unknown> & ExtendedZodSchema)?.description;\n\n return {\n type: fieldType,\n required,\n optional,\n default: defaultValue,\n options,\n constraints,\n description,\n validation: {\n minLength: constraints.minLength as number,\n maxLength: constraints.maxLength as number,\n min: constraints.min as number,\n max: constraints.max as number,\n pattern: constraints.pattern ? new RegExp(constraints.pattern as string) : undefined,\n }\n };\n}\n\n\n\n/**\n * Helper function to create common render configurations\n */\nexport const renderConfigs = {\n text: (label: string, placeholder?: string, priority: 'essential' | 'common' | 'advanced' | 'expert' = 'common'): EnhancedRenderConfig => ({\n fieldType: 'text',\n ui: { label, placeholder, priority },\n progressive: { priority }\n }),\n\n number: (label: string, min?: number, max?: number, priority: 'essential' | 'common' | 'advanced' | 'expert' = 'common'): EnhancedRenderConfig => ({\n fieldType: 'number',\n ui: { label, priority },\n constraints: { min, max },\n progressive: { priority }\n }),\n\n select: (label: string, options: SelectOption[], priority: 'essential' | 'common' | 'advanced' | 'expert' = 'common'): EnhancedRenderConfig => ({\n fieldType: 'select',\n ui: { label, priority },\n options,\n progressive: { priority }\n }),\n\n textarea: (label: string, rows = 3, priority: 'essential' | 'common' | 'advanced' | 'expert' = 'common'): EnhancedRenderConfig => ({\n fieldType: 'textarea',\n ui: { label, priority },\n props: { rows },\n progressive: { priority }\n }),\n\n currency: (label: string, symbol = 'HBAR', priority: 'essential' | 'common' | 'advanced' | 'expert' = 'common'): EnhancedRenderConfig => ({\n fieldType: 'currency',\n ui: { label, priority },\n props: { symbol },\n progressive: { priority }\n }),\n\n array: (label: string, itemLabel?: string, priority: 'essential' | 'common' | 'advanced' | 'expert' = 'advanced'): EnhancedRenderConfig => ({\n fieldType: 'array',\n ui: { label, priority },\n props: { itemLabel },\n progressive: { priority }\n }),\n\n essential: {\n text: (label: string, placeholder?: string) => renderConfigs.text(label, placeholder, 'essential'),\n number: (label: string, min?: number, max?: number) => renderConfigs.number(label, min, max, 'essential'),\n select: (label: string, options: SelectOption[]) => renderConfigs.select(label, options, 'essential'),\n textarea: (label: string, rows?: number) => renderConfigs.textarea(label, rows, 'essential'),\n },\n\n advanced: {\n text: (label: string, placeholder?: string) => renderConfigs.text(label, placeholder, 'advanced'),\n number: (label: string, min?: number, max?: number) => renderConfigs.number(label, min, max, 'advanced'),\n select: (label: string, options: SelectOption[]) => renderConfigs.select(label, options, 'advanced'),\n textarea: (label: string, rows?: number) => renderConfigs.textarea(label, rows, 'advanced'),\n array: (label: string, itemLabel?: string) => renderConfigs.array(label, itemLabel, 'advanced'),\n },\n\n expert: {\n text: (label: string, placeholder?: string) => renderConfigs.text(label, placeholder, 'expert'),\n number: (label: string, min?: number, max?: number) => renderConfigs.number(label, min, max, 'expert'),\n select: (label: string, options: SelectOption[]) => renderConfigs.select(label, options, 'expert'),\n textarea: (label: string, rows?: number) => renderConfigs.textarea(label, rows, 'expert'),\n }\n};\n\n/**\n * Extends Zod prototype to add withRender functionality globally\n */\nexport function installZodRenderExtensions() {\n if (!(ZodType.prototype as typeof ZodType.prototype & ExtendedZodSchema).withRender) {\n (ZodType.prototype as typeof ZodType.prototype & ExtendedZodSchema).withRender = function(config: EnhancedRenderConfig | RenderConfigSchema) {\n return extendZodSchema(this).withRender(config);\n };\n\n (ZodType.prototype as typeof ZodType.prototype & ExtendedZodSchema).withProgressive = function(\n priority: 'essential' | 'common' | 'advanced' | 'expert',\n group?: string\n ) {\n return extendZodSchema(this).withProgressive(priority, group);\n };\n\n (ZodType.prototype as typeof ZodType.prototype & ExtendedZodSchema).withBlock = function(blockId: string) {\n return extendZodSchema(this).withBlock(blockId);\n };\n }\n}\n\n/**\n * Creates a progressive form schema with grouped fields\n */\nexport function createProgressiveSchema<TSchema>(\n baseSchema: ZodType<TSchema>,\n groups: Record<string, { priority: 'essential' | 'common' | 'advanced' | 'expert'; fields: string[] }>\n): ZodSchemaWithRender<TSchema> {\n const extendedSchema = extendZodSchema(baseSchema);\n\n const typeName = (baseSchema._def as Record<string, unknown>)?.typeName;\n if (typeName === 'ZodObject') {\n const shape = (baseSchema._def as Record<string, unknown>)?.shape as Record<string, ZodType<unknown>>;\n if (shape) {\n const enhancedShape: Record<string, ZodType<unknown>> = {};\n\n for (const [fieldName, fieldSchema] of Object.entries(shape)) {\n let fieldGroup: string | undefined;\n let fieldPriority: 'essential' | 'common' | 'advanced' | 'expert' = 'common';\n\n for (const [groupName, groupConfig] of Object.entries(groups)) {\n if (groupConfig.fields.includes(fieldName)) {\n fieldGroup = groupName;\n fieldPriority = groupConfig.priority;\n break;\n }\n }\n\n enhancedShape[fieldName] = extendZodSchema(fieldSchema).withProgressive(fieldPriority, fieldGroup);\n }\n\n return extendedSchema;\n }\n }\n\n return extendedSchema;\n}\n\n/**\n * Utility to convert legacy render configs to enhanced configs\n */\nexport function enhanceRenderConfig(config: RenderConfigSchema): EnhancedRenderConfig {\n return {\n ...config,\n progressive: {\n priority: config.ui?.priority || 'common',\n group: config.ui?.group\n }\n };\n}\n\n/**\n * Helper to extract progressive disclosure information from schema\n */\nexport function extractProgressiveInfo(schema: ZodType<unknown>): {\n priority: 'essential' | 'common' | 'advanced' | 'expert';\n group?: string;\n} {\n const renderConfig = getRenderConfig(schema);\n if (renderConfig?.progressive) {\n return {\n priority: renderConfig.progressive.priority,\n group: renderConfig.progressive.group\n };\n }\n\n if (renderConfig?.ui?.priority) {\n return {\n priority: renderConfig.ui.priority,\n group: renderConfig.ui.group\n };\n }\n\n return { priority: 'common' };\n}"],"names":[],"mappings":"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"}
|