@aws-amplify/graphql-api-construct 1.1.3 → 1.1.4
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/.jsii +34 -34
- package/CHANGELOG.md +8 -0
- package/README.md +9 -3
- package/lib/amplify-graphql-api.d.ts +9 -3
- package/lib/amplify-graphql-api.js +11 -5
- package/lib/amplify-graphql-definition.js +1 -1
- package/lib/internal/codegen-assets.js +6 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-auth-transformer/package.json +8 -8
- package/node_modules/@aws-amplify/graphql-default-value-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-default-value-transformer/package.json +5 -5
- package/node_modules/@aws-amplify/graphql-function-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-function-transformer/package.json +4 -4
- package/node_modules/@aws-amplify/graphql-http-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-http-transformer/package.json +4 -4
- package/node_modules/@aws-amplify/graphql-index-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-index-transformer/package.json +5 -5
- package/node_modules/@aws-amplify/graphql-maps-to-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/assets/mapping-lambda.zip +0 -0
- package/node_modules/@aws-amplify/graphql-maps-to-transformer/package.json +8 -8
- package/node_modules/@aws-amplify/graphql-model-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-lambda.zip +0 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-notification-lambda.zip +0 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-patching-lambda.zip +0 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/package.json +4 -4
- package/node_modules/@aws-amplify/graphql-predictions-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/predictionsLambdaFunction.zip +0 -0
- package/node_modules/@aws-amplify/graphql-predictions-transformer/package.json +4 -4
- package/node_modules/@aws-amplify/graphql-relational-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/package.json +6 -6
- package/node_modules/@aws-amplify/graphql-searchable-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/streaming-lambda.zip +0 -0
- package/node_modules/@aws-amplify/graphql-searchable-transformer/package.json +5 -5
- package/node_modules/@aws-amplify/graphql-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-transformer/package.json +13 -13
- package/node_modules/@aws-amplify/graphql-transformer-core/API.md +1 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/CHANGELOG.md +6 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/output.d.ts +8 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/output.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/output.js +60 -23
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/output.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/defaultSchema.d.ts +4 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/defaultSchema.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/defaultSchema.js +35 -36
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/defaultSchema.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/package.json +2 -2
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/package.json +1 -2
- package/node_modules/zod/README.md +215 -120
- package/node_modules/zod/lib/ZodError.js +8 -0
- package/node_modules/zod/lib/helpers/parseUtil.js +3 -2
- package/node_modules/zod/lib/helpers/util.js +4 -4
- package/node_modules/zod/lib/index.mjs +121 -57
- package/node_modules/zod/lib/index.umd.js +121 -56
- package/node_modules/zod/lib/types.d.ts +55 -10
- package/node_modules/zod/lib/types.js +301 -58
- package/node_modules/zod/package.json +29 -15
- package/package.json +15 -15
- package/src/amplify-graphql-api.ts +9 -3
- package/src/internal/codegen-assets.ts +5 -0
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/LICENSE +0 -201
@@ -484,7 +484,8 @@
|
|
484
484
|
status.dirty();
|
485
485
|
if (value.status === "dirty")
|
486
486
|
status.dirty();
|
487
|
-
if (
|
487
|
+
if (key.value !== "__proto__" &&
|
488
|
+
(typeof value.value !== "undefined" || pair.alwaysSet)) {
|
488
489
|
finalObject[key.value] = value.value;
|
489
490
|
}
|
490
491
|
}
|
@@ -592,6 +593,7 @@
|
|
592
593
|
this.catch = this.catch.bind(this);
|
593
594
|
this.describe = this.describe.bind(this);
|
594
595
|
this.pipe = this.pipe.bind(this);
|
596
|
+
this.readonly = this.readonly.bind(this);
|
595
597
|
this.isNullable = this.isNullable.bind(this);
|
596
598
|
this.isOptional = this.isOptional.bind(this);
|
597
599
|
}
|
@@ -808,6 +810,9 @@
|
|
808
810
|
pipe(target) {
|
809
811
|
return ZodPipeline.create(this, target);
|
810
812
|
}
|
813
|
+
readonly() {
|
814
|
+
return ZodReadonly.create(this);
|
815
|
+
}
|
811
816
|
isOptional() {
|
812
817
|
return this.safeParse(undefined).success;
|
813
818
|
}
|
@@ -817,17 +822,28 @@
|
|
817
822
|
}
|
818
823
|
const cuidRegex = /^c[^\s-]{8,}$/i;
|
819
824
|
const cuid2Regex = /^[a-z][a-z0-9]*$/;
|
820
|
-
const ulidRegex =
|
821
|
-
const uuidRegex =
|
825
|
+
const ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/;
|
826
|
+
// const uuidRegex =
|
827
|
+
// /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;
|
828
|
+
const uuidRegex = /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i;
|
822
829
|
// from https://stackoverflow.com/a/46181/1550155
|
823
830
|
// old version: too slow, didn't support unicode
|
824
831
|
// const emailRegex = /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i;
|
825
832
|
//old email regex
|
826
833
|
// const emailRegex = /^(([^<>()[\].,;:\s@"]+(\.[^<>()[\].,;:\s@"]+)*)|(".+"))@((?!-)([^<>()[\].,;:\s@"]+\.)+[^<>()[\].,;:\s@"]{1,})[^-<>()[\].,;:\s@"]$/i;
|
827
834
|
// eslint-disable-next-line
|
828
|
-
const emailRegex =
|
835
|
+
// const emailRegex =
|
836
|
+
// /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\])|(\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\.[A-Za-z]{2,})+))$/;
|
837
|
+
// const emailRegex =
|
838
|
+
// /^[a-zA-Z0-9\.\!\#\$\%\&\'\*\+\/\=\?\^\_\`\{\|\}\~\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
|
839
|
+
// const emailRegex =
|
840
|
+
// /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$/i;
|
841
|
+
const emailRegex = /^(?!\.)(?!.*\.\.)([A-Z0-9_+-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i;
|
842
|
+
// const emailRegex =
|
843
|
+
// /^[a-z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\.[a-z0-9\-]+)*$/i;
|
829
844
|
// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression
|
830
|
-
const
|
845
|
+
const _emojiRegex = `^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`;
|
846
|
+
let emojiRegex;
|
831
847
|
const ipv4Regex = /^(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))$/;
|
832
848
|
const ipv6Regex = /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;
|
833
849
|
// Adapted from https://stackoverflow.com/a/3143231
|
@@ -867,31 +883,6 @@
|
|
867
883
|
return false;
|
868
884
|
}
|
869
885
|
class ZodString extends ZodType {
|
870
|
-
constructor() {
|
871
|
-
super(...arguments);
|
872
|
-
this._regex = (regex, validation, message) => this.refinement((data) => regex.test(data), {
|
873
|
-
validation,
|
874
|
-
code: ZodIssueCode.invalid_string,
|
875
|
-
...errorUtil.errToObj(message),
|
876
|
-
});
|
877
|
-
/**
|
878
|
-
* @deprecated Use z.string().min(1) instead.
|
879
|
-
* @see {@link ZodString.min}
|
880
|
-
*/
|
881
|
-
this.nonempty = (message) => this.min(1, errorUtil.errToObj(message));
|
882
|
-
this.trim = () => new ZodString({
|
883
|
-
...this._def,
|
884
|
-
checks: [...this._def.checks, { kind: "trim" }],
|
885
|
-
});
|
886
|
-
this.toLowerCase = () => new ZodString({
|
887
|
-
...this._def,
|
888
|
-
checks: [...this._def.checks, { kind: "toLowerCase" }],
|
889
|
-
});
|
890
|
-
this.toUpperCase = () => new ZodString({
|
891
|
-
...this._def,
|
892
|
-
checks: [...this._def.checks, { kind: "toUpperCase" }],
|
893
|
-
});
|
894
|
-
}
|
895
886
|
_parse(input) {
|
896
887
|
if (this._def.coerce) {
|
897
888
|
input.data = String(input.data);
|
@@ -979,6 +970,9 @@
|
|
979
970
|
}
|
980
971
|
}
|
981
972
|
else if (check.kind === "emoji") {
|
973
|
+
if (!emojiRegex) {
|
974
|
+
emojiRegex = new RegExp(_emojiRegex, "u");
|
975
|
+
}
|
982
976
|
if (!emojiRegex.test(input.data)) {
|
983
977
|
ctx = this._getOrReturnCtx(input, ctx);
|
984
978
|
addIssueToContext(ctx, {
|
@@ -1131,6 +1125,13 @@
|
|
1131
1125
|
}
|
1132
1126
|
return { status: status.value, value: input.data };
|
1133
1127
|
}
|
1128
|
+
_regex(regex, validation, message) {
|
1129
|
+
return this.refinement((data) => regex.test(data), {
|
1130
|
+
validation,
|
1131
|
+
code: ZodIssueCode.invalid_string,
|
1132
|
+
...errorUtil.errToObj(message),
|
1133
|
+
});
|
1134
|
+
}
|
1134
1135
|
_addCheck(check) {
|
1135
1136
|
return new ZodString({
|
1136
1137
|
...this._def,
|
@@ -1228,6 +1229,31 @@
|
|
1228
1229
|
...errorUtil.errToObj(message),
|
1229
1230
|
});
|
1230
1231
|
}
|
1232
|
+
/**
|
1233
|
+
* @deprecated Use z.string().min(1) instead.
|
1234
|
+
* @see {@link ZodString.min}
|
1235
|
+
*/
|
1236
|
+
nonempty(message) {
|
1237
|
+
return this.min(1, errorUtil.errToObj(message));
|
1238
|
+
}
|
1239
|
+
trim() {
|
1240
|
+
return new ZodString({
|
1241
|
+
...this._def,
|
1242
|
+
checks: [...this._def.checks, { kind: "trim" }],
|
1243
|
+
});
|
1244
|
+
}
|
1245
|
+
toLowerCase() {
|
1246
|
+
return new ZodString({
|
1247
|
+
...this._def,
|
1248
|
+
checks: [...this._def.checks, { kind: "toLowerCase" }],
|
1249
|
+
});
|
1250
|
+
}
|
1251
|
+
toUpperCase() {
|
1252
|
+
return new ZodString({
|
1253
|
+
...this._def,
|
1254
|
+
checks: [...this._def.checks, { kind: "toUpperCase" }],
|
1255
|
+
});
|
1256
|
+
}
|
1231
1257
|
get isDatetime() {
|
1232
1258
|
return !!this._def.checks.find((ch) => ch.kind === "datetime");
|
1233
1259
|
}
|
@@ -2936,6 +2962,12 @@
|
|
2936
2962
|
}
|
2937
2963
|
}
|
2938
2964
|
class ZodMap extends ZodType {
|
2965
|
+
get keySchema() {
|
2966
|
+
return this._def.keyType;
|
2967
|
+
}
|
2968
|
+
get valueSchema() {
|
2969
|
+
return this._def.valueType;
|
2970
|
+
}
|
2939
2971
|
_parse(input) {
|
2940
2972
|
const { status, ctx } = this._processInputParams(input);
|
2941
2973
|
if (ctx.parsedType !== ZodParsedType.map) {
|
@@ -3132,16 +3164,20 @@
|
|
3132
3164
|
const params = { errorMap: ctx.common.contextualErrorMap };
|
3133
3165
|
const fn = ctx.data;
|
3134
3166
|
if (this._def.returns instanceof ZodPromise) {
|
3135
|
-
|
3167
|
+
// Would love a way to avoid disabling this rule, but we need
|
3168
|
+
// an alias (using an arrow function was what caused 2651).
|
3169
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
3170
|
+
const me = this;
|
3171
|
+
return OK(async function (...args) {
|
3136
3172
|
const error = new ZodError([]);
|
3137
|
-
const parsedArgs = await
|
3173
|
+
const parsedArgs = await me._def.args
|
3138
3174
|
.parseAsync(args, params)
|
3139
3175
|
.catch((e) => {
|
3140
3176
|
error.addIssue(makeArgsIssue(args, e));
|
3141
3177
|
throw error;
|
3142
3178
|
});
|
3143
|
-
const result = await fn
|
3144
|
-
const parsedReturns = await
|
3179
|
+
const result = await Reflect.apply(fn, this, parsedArgs);
|
3180
|
+
const parsedReturns = await me._def.returns._def.type
|
3145
3181
|
.parseAsync(result, params)
|
3146
3182
|
.catch((e) => {
|
3147
3183
|
error.addIssue(makeReturnsIssue(result, e));
|
@@ -3151,13 +3187,17 @@
|
|
3151
3187
|
});
|
3152
3188
|
}
|
3153
3189
|
else {
|
3154
|
-
|
3155
|
-
|
3190
|
+
// Would love a way to avoid disabling this rule, but we need
|
3191
|
+
// an alias (using an arrow function was what caused 2651).
|
3192
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
3193
|
+
const me = this;
|
3194
|
+
return OK(function (...args) {
|
3195
|
+
const parsedArgs = me._def.args.safeParse(args, params);
|
3156
3196
|
if (!parsedArgs.success) {
|
3157
3197
|
throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);
|
3158
3198
|
}
|
3159
|
-
const result = fn
|
3160
|
-
const parsedReturns =
|
3199
|
+
const result = Reflect.apply(fn, this, parsedArgs.data);
|
3200
|
+
const parsedReturns = me._def.returns.safeParse(result, params);
|
3161
3201
|
if (!parsedReturns.success) {
|
3162
3202
|
throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);
|
3163
3203
|
}
|
@@ -3245,7 +3285,7 @@
|
|
3245
3285
|
};
|
3246
3286
|
function createZodEnum(values, params) {
|
3247
3287
|
return new ZodEnum({
|
3248
|
-
values
|
3288
|
+
values,
|
3249
3289
|
typeName: exports.ZodFirstPartyTypeKind.ZodEnum,
|
3250
3290
|
...processCreateParams(params),
|
3251
3291
|
});
|
@@ -3387,8 +3427,29 @@
|
|
3387
3427
|
_parse(input) {
|
3388
3428
|
const { status, ctx } = this._processInputParams(input);
|
3389
3429
|
const effect = this._def.effect || null;
|
3430
|
+
const checkCtx = {
|
3431
|
+
addIssue: (arg) => {
|
3432
|
+
addIssueToContext(ctx, arg);
|
3433
|
+
if (arg.fatal) {
|
3434
|
+
status.abort();
|
3435
|
+
}
|
3436
|
+
else {
|
3437
|
+
status.dirty();
|
3438
|
+
}
|
3439
|
+
},
|
3440
|
+
get path() {
|
3441
|
+
return ctx.path;
|
3442
|
+
},
|
3443
|
+
};
|
3444
|
+
checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);
|
3390
3445
|
if (effect.type === "preprocess") {
|
3391
|
-
const processed = effect.transform(ctx.data);
|
3446
|
+
const processed = effect.transform(ctx.data, checkCtx);
|
3447
|
+
if (ctx.common.issues.length) {
|
3448
|
+
return {
|
3449
|
+
status: "dirty",
|
3450
|
+
value: ctx.data,
|
3451
|
+
};
|
3452
|
+
}
|
3392
3453
|
if (ctx.common.async) {
|
3393
3454
|
return Promise.resolve(processed).then((processed) => {
|
3394
3455
|
return this._def.schema._parseAsync({
|
@@ -3406,21 +3467,6 @@
|
|
3406
3467
|
});
|
3407
3468
|
}
|
3408
3469
|
}
|
3409
|
-
const checkCtx = {
|
3410
|
-
addIssue: (arg) => {
|
3411
|
-
addIssueToContext(ctx, arg);
|
3412
|
-
if (arg.fatal) {
|
3413
|
-
status.abort();
|
3414
|
-
}
|
3415
|
-
else {
|
3416
|
-
status.dirty();
|
3417
|
-
}
|
3418
|
-
},
|
3419
|
-
get path() {
|
3420
|
-
return ctx.path;
|
3421
|
-
},
|
3422
|
-
};
|
3423
|
-
checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);
|
3424
3470
|
if (effect.type === "refinement") {
|
3425
3471
|
const executeRefinement = (acc
|
3426
3472
|
// effect: RefinementEffect<any>
|
@@ -3724,8 +3770,24 @@
|
|
3724
3770
|
});
|
3725
3771
|
}
|
3726
3772
|
}
|
3773
|
+
class ZodReadonly extends ZodType {
|
3774
|
+
_parse(input) {
|
3775
|
+
const result = this._def.innerType._parse(input);
|
3776
|
+
if (isValid(result)) {
|
3777
|
+
result.value = Object.freeze(result.value);
|
3778
|
+
}
|
3779
|
+
return result;
|
3780
|
+
}
|
3781
|
+
}
|
3782
|
+
ZodReadonly.create = (type, params) => {
|
3783
|
+
return new ZodReadonly({
|
3784
|
+
innerType: type,
|
3785
|
+
typeName: exports.ZodFirstPartyTypeKind.ZodReadonly,
|
3786
|
+
...processCreateParams(params),
|
3787
|
+
});
|
3788
|
+
};
|
3727
3789
|
const custom = (check, params = {},
|
3728
|
-
|
3790
|
+
/**
|
3729
3791
|
* @deprecated
|
3730
3792
|
*
|
3731
3793
|
* Pass `fatal` into the params object instead:
|
@@ -3792,6 +3854,7 @@
|
|
3792
3854
|
ZodFirstPartyTypeKind["ZodPromise"] = "ZodPromise";
|
3793
3855
|
ZodFirstPartyTypeKind["ZodBranded"] = "ZodBranded";
|
3794
3856
|
ZodFirstPartyTypeKind["ZodPipeline"] = "ZodPipeline";
|
3857
|
+
ZodFirstPartyTypeKind["ZodReadonly"] = "ZodReadonly";
|
3795
3858
|
})(exports.ZodFirstPartyTypeKind || (exports.ZodFirstPartyTypeKind = {}));
|
3796
3859
|
const instanceOfType = (
|
3797
3860
|
// const instanceOfType = <T extends new (...args: any[]) => any>(
|
@@ -3905,6 +3968,7 @@
|
|
3905
3968
|
BRAND: BRAND,
|
3906
3969
|
ZodBranded: ZodBranded,
|
3907
3970
|
ZodPipeline: ZodPipeline,
|
3971
|
+
ZodReadonly: ZodReadonly,
|
3908
3972
|
custom: custom,
|
3909
3973
|
Schema: ZodType,
|
3910
3974
|
ZodSchema: ZodType,
|
@@ -3993,6 +4057,7 @@
|
|
3993
4057
|
exports.ZodParsedType = ZodParsedType;
|
3994
4058
|
exports.ZodPipeline = ZodPipeline;
|
3995
4059
|
exports.ZodPromise = ZodPromise;
|
4060
|
+
exports.ZodReadonly = ZodReadonly;
|
3996
4061
|
exports.ZodRecord = ZodRecord;
|
3997
4062
|
exports.ZodSchema = ZodType;
|
3998
4063
|
exports.ZodSet = ZodSet;
|
@@ -60,6 +60,7 @@ export declare abstract class ZodType<Output = any, Def extends ZodTypeDef = Zod
|
|
60
60
|
safeParse(data: unknown, params?: Partial<ParseParams>): SafeParseReturnType<Input, Output>;
|
61
61
|
parseAsync(data: unknown, params?: Partial<ParseParams>): Promise<Output>;
|
62
62
|
safeParseAsync(data: unknown, params?: Partial<ParseParams>): Promise<SafeParseReturnType<Input, Output>>;
|
63
|
+
/** Alias of safeParseAsync */
|
63
64
|
spa: (data: unknown, params?: Partial<ParseParams> | undefined) => Promise<SafeParseReturnType<Input, Output>>;
|
64
65
|
refine<RefinedOutput extends Output>(check: (arg: Output) => arg is RefinedOutput, message?: string | CustomErrorParams | ((arg: Output) => CustomErrorParams)): ZodEffects<this, RefinedOutput, Input>;
|
65
66
|
refine(check: (arg: Output) => unknown | Promise<unknown>, message?: string | CustomErrorParams | ((arg: Output) => CustomErrorParams)): ZodEffects<this, Output, Input>;
|
@@ -68,6 +69,7 @@ export declare abstract class ZodType<Output = any, Def extends ZodTypeDef = Zod
|
|
68
69
|
_refinement(refinement: RefinementEffect<Output>["refinement"]): ZodEffects<this, Output, Input>;
|
69
70
|
superRefine<RefinedOutput extends Output>(refinement: (arg: Output, ctx: RefinementCtx) => arg is RefinedOutput): ZodEffects<this, RefinedOutput, Input>;
|
70
71
|
superRefine(refinement: (arg: Output, ctx: RefinementCtx) => void): ZodEffects<this, Output, Input>;
|
72
|
+
superRefine(refinement: (arg: Output, ctx: RefinementCtx) => Promise<void>): ZodEffects<this, Output, Input>;
|
71
73
|
constructor(def: Def);
|
72
74
|
optional(): ZodOptional<this>;
|
73
75
|
nullable(): ZodNullable<this>;
|
@@ -87,6 +89,7 @@ export declare abstract class ZodType<Output = any, Def extends ZodTypeDef = Zod
|
|
87
89
|
}) => Output): ZodCatch<this>;
|
88
90
|
describe(description: string): this;
|
89
91
|
pipe<T extends ZodTypeAny>(target: T): ZodPipeline<this, T>;
|
92
|
+
readonly(): ZodReadonly<this>;
|
90
93
|
isOptional(): boolean;
|
91
94
|
isNullable(): boolean;
|
92
95
|
}
|
@@ -167,7 +170,7 @@ export interface ZodStringDef extends ZodTypeDef {
|
|
167
170
|
}
|
168
171
|
export declare class ZodString extends ZodType<string, ZodStringDef> {
|
169
172
|
_parse(input: ParseInput): ParseReturnType<string>;
|
170
|
-
protected _regex
|
173
|
+
protected _regex(regex: RegExp, validation: StringValidation, message?: errorUtil.ErrMessage): ZodEffects<this, string, string>;
|
171
174
|
_addCheck(check: ZodStringCheck): ZodString;
|
172
175
|
email(message?: errorUtil.ErrMessage): ZodString;
|
173
176
|
url(message?: errorUtil.ErrMessage): ZodString;
|
@@ -195,10 +198,14 @@ export declare class ZodString extends ZodType<string, ZodStringDef> {
|
|
195
198
|
min(minLength: number, message?: errorUtil.ErrMessage): ZodString;
|
196
199
|
max(maxLength: number, message?: errorUtil.ErrMessage): ZodString;
|
197
200
|
length(len: number, message?: errorUtil.ErrMessage): ZodString;
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
201
|
+
/**
|
202
|
+
* @deprecated Use z.string().min(1) instead.
|
203
|
+
* @see {@link ZodString.min}
|
204
|
+
*/
|
205
|
+
nonempty(message?: errorUtil.ErrMessage): ZodString;
|
206
|
+
trim(): ZodString;
|
207
|
+
toLowerCase(): ZodString;
|
208
|
+
toUpperCase(): ZodString;
|
202
209
|
get isDatetime(): boolean;
|
203
210
|
get isEmail(): boolean;
|
204
211
|
get isURL(): boolean;
|
@@ -491,9 +498,21 @@ export declare class ZodObject<T extends ZodRawShape, UnknownKeys extends Unknow
|
|
491
498
|
strict(message?: errorUtil.ErrMessage): ZodObject<T, "strict", Catchall>;
|
492
499
|
strip(): ZodObject<T, "strip", Catchall>;
|
493
500
|
passthrough(): ZodObject<T, "passthrough", Catchall>;
|
501
|
+
/**
|
502
|
+
* @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.
|
503
|
+
* If you want to pass through unknown properties, use `.passthrough()` instead.
|
504
|
+
*/
|
494
505
|
nonstrict: () => ZodObject<T, "passthrough", Catchall>;
|
495
506
|
extend<Augmentation extends ZodRawShape>(augmentation: Augmentation): ZodObject<objectUtil.extendShape<T, Augmentation>, UnknownKeys, Catchall>;
|
507
|
+
/**
|
508
|
+
* @deprecated Use `.extend` instead
|
509
|
+
* */
|
496
510
|
augment: <Augmentation extends ZodRawShape>(augmentation: Augmentation) => ZodObject<{ [k in keyof (Omit<T, keyof Augmentation> & Augmentation)]: (Omit<T, keyof Augmentation> & Augmentation)[k]; }, UnknownKeys, Catchall, objectOutputType<{ [k in keyof (Omit<T, keyof Augmentation> & Augmentation)]: (Omit<T, keyof Augmentation> & Augmentation)[k]; }, Catchall, UnknownKeys>, objectInputType<{ [k in keyof (Omit<T, keyof Augmentation> & Augmentation)]: (Omit<T, keyof Augmentation> & Augmentation)[k]; }, Catchall, UnknownKeys>>;
|
511
|
+
/**
|
512
|
+
* Prior to zod@1.0.12 there was a bug in the
|
513
|
+
* inferred type of merged objects. Please
|
514
|
+
* upgrade if you are experiencing issues.
|
515
|
+
*/
|
497
516
|
merge<Incoming extends AnyZodObject, Augmentation extends Incoming["shape"]>(merging: Incoming): ZodObject<objectUtil.extendShape<T, Augmentation>, Incoming["_def"]["unknownKeys"], Incoming["_def"]["catchall"]>;
|
498
517
|
setKey<Key extends string, Schema extends ZodTypeAny>(key: Key, schema: Schema): ZodObject<T & {
|
499
518
|
[k in Key]: Schema;
|
@@ -505,6 +524,9 @@ export declare class ZodObject<T extends ZodRawShape, UnknownKeys extends Unknow
|
|
505
524
|
omit<Mask extends {
|
506
525
|
[k in keyof T]?: true;
|
507
526
|
}>(mask: Mask): ZodObject<Omit<T, keyof Mask>, UnknownKeys, Catchall>;
|
527
|
+
/**
|
528
|
+
* @deprecated
|
529
|
+
*/
|
508
530
|
deepPartial(): partialUtil.DeepPartial<this>;
|
509
531
|
partial(): ZodObject<{
|
510
532
|
[k in keyof T]: ZodOptional<T[k]>;
|
@@ -556,6 +578,14 @@ export declare class ZodDiscriminatedUnion<Discriminator extends string, Options
|
|
556
578
|
get discriminator(): Discriminator;
|
557
579
|
get options(): Options;
|
558
580
|
get optionsMap(): Map<Primitive, ZodDiscriminatedUnionOption<any>>;
|
581
|
+
/**
|
582
|
+
* The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.
|
583
|
+
* However, it only allows a union of objects, all of which need to share a discriminator property. This property must
|
584
|
+
* have a different value for each object in the union.
|
585
|
+
* @param discriminator the name of the discriminator property
|
586
|
+
* @param types an array of object schemas
|
587
|
+
* @param params
|
588
|
+
*/
|
559
589
|
static create<Discriminator extends string, Types extends [
|
560
590
|
ZodDiscriminatedUnionOption<Discriminator>,
|
561
591
|
...ZodDiscriminatedUnionOption<Discriminator>[]
|
@@ -618,6 +648,8 @@ export interface ZodMapDef<Key extends ZodTypeAny = ZodTypeAny, Value extends Zo
|
|
618
648
|
typeName: ZodFirstPartyTypeKind.ZodMap;
|
619
649
|
}
|
620
650
|
export declare class ZodMap<Key extends ZodTypeAny = ZodTypeAny, Value extends ZodTypeAny = ZodTypeAny> extends ZodType<Map<Key["_output"], Value["_output"]>, ZodMapDef<Key, Value>, Map<Key["_input"], Value["_input"]>> {
|
651
|
+
get keySchema(): Key;
|
652
|
+
get valueSchema(): Value;
|
621
653
|
_parse(input: ParseInput): ParseReturnType<this["_output"]>;
|
622
654
|
static create: <Key_1 extends ZodTypeAny = ZodTypeAny, Value_1 extends ZodTypeAny = ZodTypeAny>(keyType: Key_1, valueType: Value_1, params?: RawCreateParams) => ZodMap<Key_1, Value_1>;
|
623
655
|
}
|
@@ -730,7 +762,7 @@ export declare class ZodPromise<T extends ZodTypeAny> extends ZodType<Promise<T[
|
|
730
762
|
static create: <T_1 extends ZodTypeAny>(schema: T_1, params?: RawCreateParams) => ZodPromise<T_1>;
|
731
763
|
}
|
732
764
|
export declare type Refinement<T> = (arg: T, ctx: RefinementCtx) => any;
|
733
|
-
export declare type SuperRefinement<T> = (arg: T, ctx: RefinementCtx) => void
|
765
|
+
export declare type SuperRefinement<T> = (arg: T, ctx: RefinementCtx) => void | Promise<void>;
|
734
766
|
export declare type RefinementEffect<T> = {
|
735
767
|
type: "refinement";
|
736
768
|
refinement: (arg: T, ctx: RefinementCtx) => any;
|
@@ -741,7 +773,7 @@ export declare type TransformEffect<T> = {
|
|
741
773
|
};
|
742
774
|
export declare type PreprocessEffect<T> = {
|
743
775
|
type: "preprocess";
|
744
|
-
transform: (arg: T) => any;
|
776
|
+
transform: (arg: T, ctx: RefinementCtx) => any;
|
745
777
|
};
|
746
778
|
export declare type Effect<T> = RefinementEffect<T> | TransformEffect<T> | PreprocessEffect<T>;
|
747
779
|
export interface ZodEffectsDef<T extends ZodTypeAny = ZodTypeAny> extends ZodTypeDef {
|
@@ -754,7 +786,7 @@ export declare class ZodEffects<T extends ZodTypeAny, Output = output<T>, Input
|
|
754
786
|
sourceType(): T;
|
755
787
|
_parse(input: ParseInput): ParseReturnType<this["_output"]>;
|
756
788
|
static create: <I extends ZodTypeAny>(schema: I, effect: Effect<I["_output"]>, params?: RawCreateParams) => ZodEffects<I, I["_output"], input<I>>;
|
757
|
-
static createWithPreprocess: <I extends ZodTypeAny>(preprocess: (arg: unknown) => unknown, schema: I, params?: RawCreateParams) => ZodEffects<I, I["_output"], unknown>;
|
789
|
+
static createWithPreprocess: <I extends ZodTypeAny>(preprocess: (arg: unknown, ctx: RefinementCtx) => unknown, schema: I, params?: RawCreateParams) => ZodEffects<I, I["_output"], unknown>;
|
758
790
|
}
|
759
791
|
export { ZodEffects as ZodTransformer };
|
760
792
|
export interface ZodOptionalDef<T extends ZodTypeAny = ZodTypeAny> extends ZodTypeDef {
|
@@ -844,6 +876,18 @@ export declare class ZodPipeline<A extends ZodTypeAny, B extends ZodTypeAny> ext
|
|
844
876
|
_parse(input: ParseInput): ParseReturnType<any>;
|
845
877
|
static create<A extends ZodTypeAny, B extends ZodTypeAny>(a: A, b: B): ZodPipeline<A, B>;
|
846
878
|
}
|
879
|
+
declare type BuiltIn = (((...args: any[]) => any) | (new (...args: any[]) => any)) | {
|
880
|
+
readonly [Symbol.toStringTag]: string;
|
881
|
+
} | Date | Error | Generator | Promise<unknown> | RegExp;
|
882
|
+
declare type MakeReadonly<T> = T extends Map<infer K, infer V> ? ReadonlyMap<K, V> : T extends Set<infer V> ? ReadonlySet<V> : T extends [infer Head, ...infer Tail] ? readonly [Head, ...Tail] : T extends Array<infer V> ? ReadonlyArray<V> : T extends BuiltIn ? T : Readonly<T>;
|
883
|
+
export interface ZodReadonlyDef<T extends ZodTypeAny = ZodTypeAny> extends ZodTypeDef {
|
884
|
+
innerType: T;
|
885
|
+
typeName: ZodFirstPartyTypeKind.ZodReadonly;
|
886
|
+
}
|
887
|
+
export declare class ZodReadonly<T extends ZodTypeAny> extends ZodType<MakeReadonly<T["_output"]>, ZodReadonlyDef<T>, T["_input"]> {
|
888
|
+
_parse(input: ParseInput): ParseReturnType<this["_output"]>;
|
889
|
+
static create: <T_1 extends ZodTypeAny>(type: T_1, params?: RawCreateParams) => ZodReadonly<T_1>;
|
890
|
+
}
|
847
891
|
declare type CustomParams = CustomErrorParams & {
|
848
892
|
fatal?: boolean;
|
849
893
|
};
|
@@ -887,7 +931,8 @@ export declare enum ZodFirstPartyTypeKind {
|
|
887
931
|
ZodCatch = "ZodCatch",
|
888
932
|
ZodPromise = "ZodPromise",
|
889
933
|
ZodBranded = "ZodBranded",
|
890
|
-
ZodPipeline = "ZodPipeline"
|
934
|
+
ZodPipeline = "ZodPipeline",
|
935
|
+
ZodReadonly = "ZodReadonly"
|
891
936
|
}
|
892
937
|
export declare type ZodFirstPartySchemaTypes = ZodString | ZodNumber | ZodNaN | ZodBigInt | ZodBoolean | ZodDate | ZodUndefined | ZodNull | ZodAny | ZodUnknown | ZodNever | ZodVoid | ZodArray<any, any> | ZodObject<any, any, any> | ZodUnion<any> | ZodDiscriminatedUnion<any, any> | ZodIntersection<any, any> | ZodTuple<any, any> | ZodRecord<any, any> | ZodMap<any> | ZodSet<any> | ZodFunction<any, any> | ZodLazy<any> | ZodLiteral<any> | ZodEnum<any> | ZodEffects<any, any, any> | ZodNativeEnum<any> | ZodOptional<any> | ZodNullable<any> | ZodDefault<any> | ZodCatch<any> | ZodPromise<any> | ZodBranded<any, any> | ZodPipeline<any, any>;
|
893
938
|
declare abstract class Class {
|
@@ -961,7 +1006,7 @@ declare const promiseType: <T extends ZodTypeAny>(schema: T, params?: RawCreateP
|
|
961
1006
|
declare const effectsType: <I extends ZodTypeAny>(schema: I, effect: Effect<I["_output"]>, params?: RawCreateParams) => ZodEffects<I, I["_output"], input<I>>;
|
962
1007
|
declare const optionalType: <T extends ZodTypeAny>(type: T, params?: RawCreateParams) => ZodOptional<T>;
|
963
1008
|
declare const nullableType: <T extends ZodTypeAny>(type: T, params?: RawCreateParams) => ZodNullable<T>;
|
964
|
-
declare const preprocessType: <I extends ZodTypeAny>(preprocess: (arg: unknown) => unknown, schema: I, params?: RawCreateParams) => ZodEffects<I, I["_output"], unknown>;
|
1009
|
+
declare const preprocessType: <I extends ZodTypeAny>(preprocess: (arg: unknown, ctx: RefinementCtx) => unknown, schema: I, params?: RawCreateParams) => ZodEffects<I, I["_output"], unknown>;
|
965
1010
|
declare const pipelineType: typeof ZodPipeline.create;
|
966
1011
|
declare const ostring: () => ZodOptional<ZodString>;
|
967
1012
|
declare const onumber: () => ZodOptional<ZodNumber>;
|