@rosen-bridge/fastify-enhanced 0.1.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/dataTypes.d.ts +30 -30
  3. package/dist/dataTypes.d.ts.map +1 -1
  4. package/dist/error.d.ts +5 -0
  5. package/dist/error.d.ts.map +1 -0
  6. package/dist/error.js +9 -0
  7. package/dist/fastify.d.ts +5 -20
  8. package/dist/fastify.d.ts.map +1 -1
  9. package/dist/fastify.js +13 -133
  10. package/dist/index.d.ts +1 -2
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +1 -2
  13. package/dist/jsonParser.d.ts +4 -0
  14. package/dist/jsonParser.d.ts.map +1 -0
  15. package/dist/jsonParser.js +18 -0
  16. package/dist/serializerCompiler.d.ts +14 -0
  17. package/dist/serializerCompiler.d.ts.map +1 -0
  18. package/dist/serializerCompiler.js +27 -0
  19. package/dist/swagger.d.ts +6 -0
  20. package/dist/swagger.d.ts.map +1 -0
  21. package/dist/swagger.js +42 -0
  22. package/dist/types.d.ts +3 -4
  23. package/dist/types.d.ts.map +1 -1
  24. package/dist/types.js +1 -1
  25. package/dist/utils.d.ts +2 -0
  26. package/dist/utils.d.ts.map +1 -0
  27. package/dist/utils.js +4 -0
  28. package/lib/error.ts +9 -0
  29. package/lib/fastify.ts +22 -166
  30. package/lib/index.ts +1 -2
  31. package/lib/jsonParser.ts +23 -0
  32. package/lib/serializerCompiler.ts +42 -0
  33. package/lib/swagger.ts +52 -0
  34. package/lib/types.ts +3 -3
  35. package/lib/utils.ts +6 -0
  36. package/package.json +18 -19
  37. package/tests/bin.ts +13 -0
  38. package/tests/e2e.spec.ts +74 -0
  39. package/tests/mockRoute.ts +104 -0
  40. package/tests/testData.ts +101 -0
  41. package/tsconfig.build.json +2 -1
  42. package/tsconfig.build.tsbuildinfo +1 -1
  43. package/tsconfig.json +2 -1
  44. package/vitest.config.ts +9 -1
  45. package/dist/tsconfig.tsbuildinfo +0 -1
  46. package/lib/dataTypes.ts +0 -7
package/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # @rosen-bridge/fastify-enhanced
2
2
 
3
+ ## 1.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - Update fastify-enhanced package to support swagger and bigint
8
+
9
+ ### Minor Changes
10
+
11
+ - Update versions of nodejs to 20.11 & typescript to 5.8
12
+
3
13
  ## 0.1.1
4
14
 
5
15
  ### Patch Changes
@@ -27,7 +27,7 @@ export declare const types: {
27
27
  }) | undefined) => zod.ZodBoolean;
28
28
  symbol: (params?: zod.RawCreateParams) => zod.ZodSymbol;
29
29
  undefined: (params?: zod.RawCreateParams) => zod.ZodUndefined;
30
- object: <T extends zod.ZodRawShape>(shape: T, params?: zod.RawCreateParams) => zod.ZodObject<T, "strip", zod.ZodTypeAny, { [k_1 in keyof zod.objectUtil.addQuestionMarks<zod.baseObjectOutputType<T>, { [k in keyof zod.baseObjectOutputType<T>]: undefined extends zod.baseObjectOutputType<T>[k] ? never : k; }[keyof T]>]: zod.objectUtil.addQuestionMarks<zod.baseObjectOutputType<T>, { [k_2 in keyof zod.baseObjectOutputType<T>]: undefined extends zod.baseObjectOutputType<T>[k_2] ? never : k_2; }[keyof T]>[k_1]; }, { [k_2 in keyof zod.baseObjectInputType<T>]: zod.baseObjectInputType<T>[k_2]; }>;
30
+ object: <T extends zod.ZodRawShape>(shape: T, params?: zod.RawCreateParams) => zod.ZodObject<T, "strip", zod.ZodTypeAny, { [k_1 in keyof zod.objectUtil.addQuestionMarks<zod.baseObjectOutputType<T>, { [k in keyof zod.baseObjectOutputType<T>]: undefined extends zod.baseObjectOutputType<T>[k] ? never : k; }[keyof T]>]: zod.objectUtil.addQuestionMarks<zod.baseObjectOutputType<T>, { [k in keyof zod.baseObjectOutputType<T>]: undefined extends zod.baseObjectOutputType<T>[k] ? never : k; }[keyof T]>[k_1]; }, { [k_2 in keyof zod.baseObjectInputType<T>]: zod.baseObjectInputType<T>[k_2]; }>;
31
31
  function: typeof zod.ZodFunction.create;
32
32
  z: typeof zod.z;
33
33
  setErrorMap: typeof zod.setErrorMap;
@@ -43,12 +43,12 @@ export declare const types: {
43
43
  EMPTY_PATH: zod.ParsePath;
44
44
  ParseStatus: typeof zod.ParseStatus;
45
45
  INVALID: zod.INVALID;
46
- DIRTY: <T_1>(value: T_1) => zod.DIRTY<T_1>;
47
- OK: <T_2>(value: T_2) => zod.OK<T_2>;
46
+ DIRTY: <T>(value: T) => zod.DIRTY<T>;
47
+ OK: <T>(value: T) => zod.OK<T>;
48
48
  isAborted: (x: zod.ParseReturnType<any>) => x is zod.INVALID;
49
- isDirty: <T_3>(x: zod.ParseReturnType<T_3>) => x is zod.OK<T_3> | zod.DIRTY<T_3>;
50
- isValid: <T_4>(x: zod.ParseReturnType<T_4>) => x is zod.OK<T_4> | zod.DIRTY<T_4>;
51
- isAsync: <T_5>(x: zod.ParseReturnType<T_5>) => x is zod.AsyncParseReturnType<T_5>;
49
+ isDirty: <T>(x: zod.ParseReturnType<T>) => x is zod.OK<T> | zod.DIRTY<T>;
50
+ isValid: <T>(x: zod.ParseReturnType<T>) => x is zod.OK<T> | zod.DIRTY<T>;
51
+ isAsync: <T>(x: zod.ParseReturnType<T>) => x is zod.AsyncParseReturnType<T>;
52
52
  util: typeof zod.util;
53
53
  objectUtil: typeof zod.objectUtil;
54
54
  ZodParsedType: {
@@ -73,7 +73,7 @@ export declare const types: {
73
73
  map: "map";
74
74
  set: "set";
75
75
  };
76
- getParsedType: (data: any) => "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function" | "array" | "date" | "map" | "nan" | "never" | "null" | "promise" | "set" | "unknown" | "void" | "integer" | "float";
76
+ getParsedType: (data: any) => zod.ZodParsedType;
77
77
  ZodType: typeof zod.ZodType;
78
78
  ZodString: typeof zod.ZodString;
79
79
  ZodNumber: typeof zod.ZodNumber;
@@ -113,15 +113,15 @@ export declare const types: {
113
113
  ZodBranded: typeof zod.ZodBranded;
114
114
  ZodPipeline: typeof zod.ZodPipeline;
115
115
  ZodReadonly: typeof zod.ZodReadonly;
116
- custom: <T_6>(check?: ((data: unknown) => any) | undefined, params?: string | (Partial<zod.util.Omit<zod.ZodCustomIssue, "code">> & {
117
- fatal?: boolean | undefined;
116
+ custom: <T>(check?: ((data: unknown) => any) | undefined, params?: string | (Partial<zod.util.Omit<zod.ZodCustomIssue, "code">> & {
117
+ fatal?: boolean;
118
118
  }) | ((input: any) => Partial<zod.util.Omit<zod.ZodCustomIssue, "code">> & {
119
- fatal?: boolean | undefined;
120
- }) | undefined, fatal?: boolean | undefined) => zod.ZodType<T_6, zod.ZodTypeDef, T_6>;
119
+ fatal?: boolean;
120
+ }), fatal?: boolean | undefined) => zod.ZodType<T, zod.ZodTypeDef, T>;
121
121
  Schema: typeof zod.ZodType;
122
122
  ZodSchema: typeof zod.ZodType;
123
123
  late: {
124
- object: <T_7 extends zod.ZodRawShape>(shape: () => T_7, params?: zod.RawCreateParams) => zod.ZodObject<T_7, "strip", zod.ZodTypeAny, { [k_1_1 in keyof zod.objectUtil.addQuestionMarks<zod.baseObjectOutputType<T_7>, { [k_3 in keyof zod.baseObjectOutputType<T_7>]: undefined extends zod.baseObjectOutputType<T_7>[k_3] ? never : k_3; }[keyof T_7]>]: zod.objectUtil.addQuestionMarks<zod.baseObjectOutputType<T_7>, { [k_4 in keyof zod.baseObjectOutputType<T_7>]: undefined extends zod.baseObjectOutputType<T_7>[k_4] ? never : k_4; }[keyof T_7]>[k_1_1]; }, { [k_2_1 in keyof zod.baseObjectInputType<T_7>]: zod.baseObjectInputType<T_7>[k_2_1]; }>;
124
+ object: <T extends zod.ZodRawShape>(shape: () => T, params?: zod.RawCreateParams) => zod.ZodObject<T, "strip", zod.ZodTypeAny, { [k_1 in keyof zod.objectUtil.addQuestionMarks<zod.baseObjectOutputType<T>, { [k in keyof zod.baseObjectOutputType<T>]: undefined extends zod.baseObjectOutputType<T>[k] ? never : k; }[keyof T]>]: zod.objectUtil.addQuestionMarks<zod.baseObjectOutputType<T>, { [k in keyof zod.baseObjectOutputType<T>]: undefined extends zod.baseObjectOutputType<T>[k] ? never : k; }[keyof T]>[k_1]; }, { [k_2 in keyof zod.baseObjectInputType<T>]: zod.baseObjectInputType<T>[k_2]; }>;
125
125
  };
126
126
  ZodFirstPartyTypeKind: typeof zod.ZodFirstPartyTypeKind;
127
127
  coerce: {
@@ -167,7 +167,7 @@ export declare const types: {
167
167
  }) | undefined) => zod.ZodDate;
168
168
  };
169
169
  any: (params?: zod.RawCreateParams) => zod.ZodAny;
170
- array: <T_8 extends zod.ZodTypeAny>(schema: T_8, params?: zod.RawCreateParams) => zod.ZodArray<T_8, "many">;
170
+ array: <T extends zod.ZodTypeAny>(schema: T, params?: zod.RawCreateParams) => zod.ZodArray<T, "many">;
171
171
  date: (params?: ({
172
172
  errorMap?: zod.ZodErrorMap | undefined;
173
173
  invalid_type_error?: string | undefined;
@@ -179,34 +179,34 @@ export declare const types: {
179
179
  discriminatedUnion: typeof zod.ZodDiscriminatedUnion.create;
180
180
  effect: <I extends zod.ZodTypeAny>(schema: I, effect: zod.Effect<I["_output"]>, params?: zod.RawCreateParams) => zod.ZodEffects<I, I["_output"], zod.input<I>>;
181
181
  enum: {
182
- <U extends string, T_9 extends readonly [U, ...U[]]>(values: T_9, params?: zod.RawCreateParams): zod.ZodEnum<zod.Writeable<T_9>>;
183
- <U_1 extends string, T_10 extends [U_1, ...U_1[]]>(values: T_10, params?: zod.RawCreateParams): zod.ZodEnum<T_10>;
182
+ <U extends string, T extends Readonly<[U, ...U[]]>>(values: T, params?: zod.RawCreateParams): zod.ZodEnum<zod.Writeable<T>>;
183
+ <U extends string, T extends [U, ...U[]]>(values: T, params?: zod.RawCreateParams): zod.ZodEnum<T>;
184
184
  };
185
- instanceof: <T_11 extends abstract new (..._: any[]) => {}>(cls: T_11, params?: (Partial<zod.util.Omit<zod.ZodCustomIssue, "code">> & {
186
- fatal?: boolean | undefined;
187
- }) | undefined) => zod.ZodType<InstanceType<T_11>, zod.ZodTypeDef, InstanceType<T_11>>;
188
- intersection: <T_12 extends zod.ZodTypeAny, U_2 extends zod.ZodTypeAny>(left: T_12, right: U_2, params?: zod.RawCreateParams) => zod.ZodIntersection<T_12, U_2>;
189
- lazy: <T_13 extends zod.ZodTypeAny>(getter: () => T_13, params?: zod.RawCreateParams) => zod.ZodLazy<T_13>;
190
- literal: <T_14 extends zod.Primitive>(value: T_14, params?: zod.RawCreateParams) => zod.ZodLiteral<T_14>;
185
+ instanceof: <T extends abstract new (..._: any[]) => {}>(cls: T, params?: Partial<zod.util.Omit<zod.ZodCustomIssue, "code">> & {
186
+ fatal?: boolean;
187
+ }) => zod.ZodType<InstanceType<T>, zod.ZodTypeDef, InstanceType<T>>;
188
+ intersection: <T extends zod.ZodTypeAny, U extends zod.ZodTypeAny>(left: T, right: U, params?: zod.RawCreateParams) => zod.ZodIntersection<T, U>;
189
+ lazy: <T extends zod.ZodTypeAny>(getter: () => T, params?: zod.RawCreateParams) => zod.ZodLazy<T>;
190
+ literal: <T extends zod.Primitive>(value: T, params?: zod.RawCreateParams) => zod.ZodLiteral<T>;
191
191
  map: <Key extends zod.ZodTypeAny = zod.ZodTypeAny, Value extends zod.ZodTypeAny = zod.ZodTypeAny>(keyType: Key, valueType: Value, params?: zod.RawCreateParams) => zod.ZodMap<Key, Value>;
192
192
  nan: (params?: zod.RawCreateParams) => zod.ZodNaN;
193
- nativeEnum: <T_15 extends zod.EnumLike>(values: T_15, params?: zod.RawCreateParams) => zod.ZodNativeEnum<T_15>;
193
+ nativeEnum: <T extends zod.EnumLike>(values: T, params?: zod.RawCreateParams) => zod.ZodNativeEnum<T>;
194
194
  never: (params?: zod.RawCreateParams) => zod.ZodNever;
195
195
  null: (params?: zod.RawCreateParams) => zod.ZodNull;
196
- nullable: <T_16 extends zod.ZodTypeAny>(type: T_16, params?: zod.RawCreateParams) => zod.ZodNullable<T_16>;
196
+ nullable: <T extends zod.ZodTypeAny>(type: T, params?: zod.RawCreateParams) => zod.ZodNullable<T>;
197
197
  oboolean: () => zod.ZodOptional<zod.ZodBoolean>;
198
198
  onumber: () => zod.ZodOptional<zod.ZodNumber>;
199
- optional: <T_17 extends zod.ZodTypeAny>(type: T_17, params?: zod.RawCreateParams) => zod.ZodOptional<T_17>;
199
+ optional: <T extends zod.ZodTypeAny>(type: T, params?: zod.RawCreateParams) => zod.ZodOptional<T>;
200
200
  ostring: () => zod.ZodOptional<zod.ZodString>;
201
201
  pipeline: typeof zod.ZodPipeline.create;
202
- preprocess: <I_1 extends zod.ZodTypeAny>(preprocess: (arg: unknown, ctx: zod.RefinementCtx) => unknown, schema: I_1, params?: zod.RawCreateParams) => zod.ZodEffects<I_1, I_1["_output"], unknown>;
203
- promise: <T_18 extends zod.ZodTypeAny>(schema: T_18, params?: zod.RawCreateParams) => zod.ZodPromise<T_18>;
202
+ preprocess: <I extends zod.ZodTypeAny>(preprocess: (arg: unknown, ctx: zod.RefinementCtx) => unknown, schema: I, params?: zod.RawCreateParams) => zod.ZodEffects<I, I["_output"], unknown>;
203
+ promise: <T extends zod.ZodTypeAny>(schema: T, params?: zod.RawCreateParams) => zod.ZodPromise<T>;
204
204
  record: typeof zod.ZodRecord.create;
205
- set: <Value_1 extends zod.ZodTypeAny = zod.ZodTypeAny>(valueType: Value_1, params?: zod.RawCreateParams) => zod.ZodSet<Value_1>;
206
- strictObject: <T_19 extends zod.ZodRawShape>(shape: T_19, params?: zod.RawCreateParams) => zod.ZodObject<T_19, "strict", zod.ZodTypeAny, { [k_1_2 in keyof zod.objectUtil.addQuestionMarks<zod.baseObjectOutputType<T_19>, { [k_5 in keyof zod.baseObjectOutputType<T_19>]: undefined extends zod.baseObjectOutputType<T_19>[k_5] ? never : k_5; }[keyof T_19]>]: zod.objectUtil.addQuestionMarks<zod.baseObjectOutputType<T_19>, { [k_6 in keyof zod.baseObjectOutputType<T_19>]: undefined extends zod.baseObjectOutputType<T_19>[k_6] ? never : k_6; }[keyof T_19]>[k_1_2]; }, { [k_2_2 in keyof zod.baseObjectInputType<T_19>]: zod.baseObjectInputType<T_19>[k_2_2]; }>;
205
+ set: <Value extends zod.ZodTypeAny = zod.ZodTypeAny>(valueType: Value, params?: zod.RawCreateParams) => zod.ZodSet<Value>;
206
+ strictObject: <T extends zod.ZodRawShape>(shape: T, params?: zod.RawCreateParams) => zod.ZodObject<T, "strict", zod.ZodTypeAny, { [k_1 in keyof zod.objectUtil.addQuestionMarks<zod.baseObjectOutputType<T>, { [k in keyof zod.baseObjectOutputType<T>]: undefined extends zod.baseObjectOutputType<T>[k] ? never : k; }[keyof T]>]: zod.objectUtil.addQuestionMarks<zod.baseObjectOutputType<T>, { [k in keyof zod.baseObjectOutputType<T>]: undefined extends zod.baseObjectOutputType<T>[k] ? never : k; }[keyof T]>[k_1]; }, { [k_2 in keyof zod.baseObjectInputType<T>]: zod.baseObjectInputType<T>[k_2]; }>;
207
207
  transformer: <I extends zod.ZodTypeAny>(schema: I, effect: zod.Effect<I["_output"]>, params?: zod.RawCreateParams) => zod.ZodEffects<I, I["_output"], zod.input<I>>;
208
- tuple: <T_20 extends [] | [zod.ZodTypeAny, ...zod.ZodTypeAny[]]>(schemas: T_20, params?: zod.RawCreateParams) => zod.ZodTuple<T_20, null>;
209
- union: <T_21 extends readonly [zod.ZodTypeAny, zod.ZodTypeAny, ...zod.ZodTypeAny[]]>(types: T_21, params?: zod.RawCreateParams) => zod.ZodUnion<T_21>;
208
+ tuple: <T extends [] | [zod.ZodTypeAny, ...zod.ZodTypeAny[]]>(schemas: T, params?: zod.RawCreateParams) => zod.ZodTuple<T, null>;
209
+ union: <T extends readonly [zod.ZodTypeAny, zod.ZodTypeAny, ...zod.ZodTypeAny[]]>(types: T, params?: zod.RawCreateParams) => zod.ZodUnion<T>;
210
210
  unknown: (params?: zod.RawCreateParams) => zod.ZodUnknown;
211
211
  void: (params?: zod.RawCreateParams) => zod.ZodVoid;
212
212
  NEVER: never;
@@ -1 +1 @@
1
- {"version":3,"file":"dataTypes.d.ts","sourceRoot":"","sources":["../lib/dataTypes.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIjB,CAAC"}
1
+ {"version":3,"file":"dataTypes.d.ts","sourceRoot":"","sources":["../lib/dataTypes.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,eAAO,MAAM,KAAK;;;gBAKkh9C,CAAC;0BAAiD,CAAC;sBAAwC,CAAC;mBAAqC,CAAC;;cAAsC,CAAC;;;gBAAqG,CAAC;0BAAiD,CAAC;sBAAwC,CAAC;mBAAqC,CAAC;;cAAsC,CAAC;;;gBAAub,CAAC;0BAAiD,CAAC;sBAAwC,CAAC;mBAAqC,CAAC;;cAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAA5wH,CAAC,8CAA8C,CAAC;;;;aAA+D,CAAC;;;;kEAAgM,CAAC;;;;uBAAmkP,CAAC;oBAAqB,CAAC;8BAAqD,CAAC;0BAA4C,CAAC;uBAAyC,CAAC;;kBAA8C,CAAC;;uBAAyE,CAAC;oBAAqB,CAAC;8BAAqD,CAAC;0BAA4C,CAAC;uBAAyC,CAAC;;kBAA8C,CAAC;;wBAA6E,CAAC;oBAAqB,CAAC;8BAAqD,CAAC;0BAA4C,CAAC;uBAAyC,CAAC;;kBAA8C,CAAC;;uBAA6E,CAAC;oBAAqB,CAAC;8BAAqD,CAAC;0BAA4C,CAAC;uBAAyC,CAAC;;kBAA8C,CAAC;;qBAA0E,CAAC;oBAAqB,CAAC;8BAAqD,CAAC;0BAA4C,CAAC;uBAAyC,CAAC;;kBAA8C,CAAC;;;;;;gBAA70K,CAAC;0BAAiD,CAAC;sBAAwC,CAAC;mBAAqC,CAAC;;cAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAD10/C,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare class ResponseValidationError extends Error {
2
+ details: Record<string, any>;
3
+ constructor(validationResult: Record<string, any>);
4
+ }
5
+ //# sourceMappingURL=error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../lib/error.ts"],"names":[],"mappings":"AAAA,qBAAa,uBAAwB,SAAQ,KAAK;IACzC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAExB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAKlD"}
package/dist/error.js ADDED
@@ -0,0 +1,9 @@
1
+ export class ResponseValidationError extends Error {
2
+ details;
3
+ constructor(validationResult) {
4
+ super("Response doesn't match the schema");
5
+ this.name = 'ResponseValidationError';
6
+ this.details = validationResult.error;
7
+ }
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLHVCQUF3QixTQUFRLEtBQUs7SUFDekMsT0FBTyxDQUFzQjtJQUVwQyxZQUFZLGdCQUFxQztRQUMvQyxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsSUFBSSxHQUFHLHlCQUF5QixDQUFDO1FBQ3RDLElBQUksQ0FBQyxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0lBQ3hDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBSZXNwb25zZVZhbGlkYXRpb25FcnJvciBleHRlbmRzIEVycm9yIHtcbiAgcHVibGljIGRldGFpbHM6IFJlY29yZDxzdHJpbmcsIGFueT47XG5cbiAgY29uc3RydWN0b3IodmFsaWRhdGlvblJlc3VsdDogUmVjb3JkPHN0cmluZywgYW55Pikge1xuICAgIHN1cGVyKFwiUmVzcG9uc2UgZG9lc24ndCBtYXRjaCB0aGUgc2NoZW1hXCIpO1xuICAgIHRoaXMubmFtZSA9ICdSZXNwb25zZVZhbGlkYXRpb25FcnJvcic7XG4gICAgdGhpcy5kZXRhaWxzID0gdmFsaWRhdGlvblJlc3VsdC5lcnJvcjtcbiAgfVxufVxuIl19
package/dist/fastify.d.ts CHANGED
@@ -1,31 +1,16 @@
1
+ import 'zod-openapi/extend';
1
2
  import { FastifyWithZod, SwaggerOpts } from './types';
2
3
  /**
3
4
  * creates an instance of Fastify with Zod validation library as validator and
4
5
  * type provider
5
- *
6
- * @param {string} [swaggerPath='/swagger']
7
- * @param {boolean} [jsonHandler=JsonBigIntFactory({
8
- * alwaysParseAsBig: false,
9
- * useNativeBigInt: true,
10
- * })]
11
- * @param {*} [opts={ logger: true }]
12
- * @return {Promise<
13
- * FastifyInstance<
14
- * http.Server<typeof http.IncomingMessage, typeof http.ServerResponse>,
15
- * http.IncomingMessage,
16
- * http.ServerResponse<http.IncomingMessage>,
17
- * FastifyBaseLogger,
18
- * ZodTypeProvider
19
- * >
20
- * >}
21
6
  */
22
- export declare const createFastify: (swaggerOpts?: SwaggerOpts, opts?: {
7
+ export declare const makeFastify: (swaggerOpts?: SwaggerOpts, opts?: {
23
8
  logger: boolean;
24
9
  }, jsonHandler?: {
25
- parse: (text: string, reviver?: ((this: any, key: string, value: any) => any) | undefined) => any;
10
+ parse: (text: string, reviver?: (this: any, key: string, value: any) => any) => any;
26
11
  stringify: {
27
- (value: any, replacer?: ((this: any, key: string, value: any) => any) | undefined, space?: string | number | undefined): string;
28
- (value: any, replacer?: (string | number)[] | null | undefined, space?: string | number | undefined): string;
12
+ (value: any, replacer?: (this: any, key: string, value: any) => any, space?: string | number): string;
13
+ (value: any, replacer?: (number | string)[] | null, space?: string | number): string;
29
14
  };
30
15
  }) => Promise<FastifyWithZod>;
31
16
  //# sourceMappingURL=fastify.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fastify.d.ts","sourceRoot":"","sources":["../lib/fastify.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,aAAa,iBACX,WAAW;;;;;;;;MAWvB,QAAQ,cAAc,CA8BxB,CAAC"}
1
+ {"version":3,"file":"fastify.d.ts","sourceRoot":"","sources":["../lib/fastify.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAC;AAU5B,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAKtD;;;GAGG;AACH,eAAO,MAAM,WAAW,GACtB,cAAa,WAKZ,EACD;;CAAuB,EACvB;;;;;;CAIE,KACD,OAAO,CAAC,cAAc,CAoBxB,CAAC"}
package/dist/fastify.js CHANGED
@@ -1,151 +1,31 @@
1
- import swagger from '@fastify/swagger';
2
- import swaggerUi from '@fastify/swagger-ui';
1
+ import 'zod-openapi/extend';
2
+ import { fastifyZodOpenApiPlugin, validatorCompiler, } from 'fastify-zod-openapi';
3
3
  import Fastify from 'fastify';
4
- import { jsonSchemaTransform, validatorCompiler, } from 'fastify-type-provider-zod';
5
4
  import JsonBigIntFactory from 'json-bigint';
5
+ import { registerSwagger } from './swagger';
6
+ import { makeJsonParser } from './jsonParser';
7
+ import { makeSerializerCompiler } from './serializerCompiler';
6
8
  /**
7
9
  * creates an instance of Fastify with Zod validation library as validator and
8
10
  * type provider
9
- *
10
- * @param {string} [swaggerPath='/swagger']
11
- * @param {boolean} [jsonHandler=JsonBigIntFactory({
12
- * alwaysParseAsBig: false,
13
- * useNativeBigInt: true,
14
- * })]
15
- * @param {*} [opts={ logger: true }]
16
- * @return {Promise<
17
- * FastifyInstance<
18
- * http.Server<typeof http.IncomingMessage, typeof http.ServerResponse>,
19
- * http.IncomingMessage,
20
- * http.ServerResponse<http.IncomingMessage>,
21
- * FastifyBaseLogger,
22
- * ZodTypeProvider
23
- * >
24
- * >}
25
11
  */
26
- export const createFastify = async (swaggerOpts = {
12
+ export const makeFastify = async (swaggerOpts = {
27
13
  path: '/swagger',
28
- title: '',
14
+ title: 'api',
29
15
  description: '',
30
16
  version: '0.0.1',
31
17
  }, opts = { logger: true }, jsonHandler = JsonBigIntFactory({
32
18
  alwaysParseAsBig: false,
33
19
  useNativeBigInt: true,
20
+ storeAsString: true,
34
21
  })) => {
35
22
  const fastify = Fastify(opts).withTypeProvider();
36
23
  fastify.setValidatorCompiler(validatorCompiler);
37
- const serializerCompiler = getSerializerCompiler(jsonHandler);
24
+ const serializerCompiler = makeSerializerCompiler(jsonHandler);
38
25
  fastify.setSerializerCompiler(serializerCompiler);
39
- fastify.addContentTypeParser('application/json', { parseAs: 'string' }, function (req, body, done) {
40
- try {
41
- const json = jsonHandler.parse(body);
42
- done(null, json);
43
- }
44
- catch (err) {
45
- if (err instanceof Error || err === null) {
46
- done(err, undefined);
47
- }
48
- else {
49
- const wrappedErr = new Error(`An unexpected error occurred while trying to parse request body`, { cause: err });
50
- done(wrappedErr, undefined);
51
- }
52
- }
53
- });
54
- await addSwaggerRoute(fastify, swaggerOpts);
26
+ await fastify.register(fastifyZodOpenApiPlugin);
27
+ fastify.addContentTypeParser('application/json', { parseAs: 'string' }, makeJsonParser(jsonHandler));
28
+ await registerSwagger(fastify, swaggerOpts);
55
29
  return fastify;
56
30
  };
57
- /**
58
- * creates a Fastify serializer compiler based on Zod validation library and
59
- * using the passed json parser/serializer
60
- *
61
- * @param {typeof JSON} jsonHandler
62
- * @return {(FastifySerializerCompiler<
63
- * | ZodAny
64
- * | {
65
- * properties: ZodAny;
66
- * }
67
- * >)}
68
- */
69
- const getSerializerCompiler = (jsonHandler) => {
70
- const hasOwnProperty = (obj, prop) => {
71
- return Object.prototype.hasOwnProperty.call(obj, prop);
72
- };
73
- /**
74
- * resolve the right schema to be used
75
- *
76
- * @param {(ZodAny | { properties: ZodAny })} maybeSchema
77
- * @return {Pick<ZodAny, 'safeParse'>}
78
- */
79
- function resolveSchema(maybeSchema) {
80
- if (hasOwnProperty(maybeSchema, 'safeParse')) {
81
- return maybeSchema;
82
- }
83
- if (hasOwnProperty(maybeSchema, 'properties')) {
84
- return maybeSchema.properties;
85
- }
86
- throw new Error(`Invalid schema passed: ${JSON.stringify(maybeSchema)}`);
87
- }
88
- class ResponseValidationError extends Error {
89
- details;
90
- constructor(validationResult) {
91
- super("Response doesn't match the schema");
92
- this.name = 'ResponseValidationError';
93
- this.details = validationResult.error;
94
- }
95
- }
96
- /**
97
- * creates a serializer compiler based on Zod library
98
- *
99
- * @param { schema: maybeSchema }
100
- */
101
- const serializerCompiler = ({ schema: maybeSchema }) => (data) => {
102
- const schema = resolveSchema(maybeSchema);
103
- const result = schema.safeParse(data);
104
- if (result.success) {
105
- return jsonHandler.stringify(result.data);
106
- }
107
- throw new ResponseValidationError(result);
108
- };
109
- return serializerCompiler;
110
- };
111
- /**
112
- * adds swagger to the fastify instance
113
- *
114
- * @param {Awaited<ReturnType<typeof createFastify>>} fastify
115
- * @param {string} path
116
- */
117
- const addSwaggerRoute = async (fastify, opts) => {
118
- fastify.register(swagger, {
119
- openapi: {
120
- info: {
121
- title: opts.title,
122
- description: opts.description,
123
- version: opts.version,
124
- },
125
- servers: [],
126
- },
127
- transform: jsonSchemaTransform,
128
- });
129
- fastify.register(swaggerUi, {
130
- routePrefix: opts.path,
131
- uiConfig: {
132
- docExpansion: 'full',
133
- deepLinking: false,
134
- },
135
- uiHooks: {
136
- onRequest: function (request, reply, next) {
137
- next();
138
- },
139
- preHandler: function (request, reply, next) {
140
- next();
141
- },
142
- },
143
- staticCSP: true,
144
- transformStaticCSP: (header) => header,
145
- transformSpecification: (swaggerObject, request, reply) => {
146
- return swaggerObject;
147
- },
148
- transformSpecificationClone: true,
149
- });
150
- };
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFzdGlmeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2xpYi9mYXN0aWZ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZDLE9BQU8sU0FBUyxNQUFNLHFCQUFxQixDQUFDO0FBQzVDLE9BQU8sT0FBK0MsTUFBTSxTQUFTLENBQUM7QUFDdEUsT0FBTyxFQUVMLG1CQUFtQixFQUNuQixpQkFBaUIsR0FDbEIsTUFBTSwyQkFBMkIsQ0FBQztBQUduQyxPQUFPLGlCQUFpQixNQUFNLGFBQWEsQ0FBQztBQUk1Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUNILE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxLQUFLLEVBQ2hDLGNBQTJCO0lBQ3pCLElBQUksRUFBRSxVQUFVO0lBQ2hCLEtBQUssRUFBRSxFQUFFO0lBQ1QsV0FBVyxFQUFFLEVBQUU7SUFDZixPQUFPLEVBQUUsT0FBTztDQUNqQixFQUNELElBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFDdkIsV0FBVyxHQUFHLGlCQUFpQixDQUFDO0lBQzlCLGdCQUFnQixFQUFFLEtBQUs7SUFDdkIsZUFBZSxFQUFFLElBQUk7Q0FDdEIsQ0FBQyxFQUN1QixFQUFFO0lBQzNCLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsRUFBbUIsQ0FBQztJQUNsRSxPQUFPLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUVoRCxNQUFNLGtCQUFrQixHQUFHLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlELE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBRWxELE9BQU8sQ0FBQyxvQkFBb0IsQ0FDMUIsa0JBQWtCLEVBQ2xCLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUNyQixVQUFVLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSTtRQUN2QixJQUFJLENBQUM7WUFDSCxNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbkIsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixJQUFJLEdBQUcsWUFBWSxLQUFLLElBQUksR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUN6QyxJQUFJLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLFVBQVUsR0FBRyxJQUFJLEtBQUssQ0FDMUIsaUVBQWlFLEVBQ2pFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUNmLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUM5QixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUMsQ0FDRixDQUFDO0lBRUYsTUFBTSxlQUFlLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzVDLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMsQ0FBQztBQUVGOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxxQkFBcUIsR0FBRyxDQUM1QixXQUFpRCxFQU1qRCxFQUFFO0lBQ0YsTUFBTSxjQUFjLEdBQUcsQ0FDckIsR0FBTSxFQUNOLElBQU8sRUFDb0IsRUFBRTtRQUM3QixPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDekQsQ0FBQyxDQUFDO0lBRUY7Ozs7O09BS0c7SUFDSCxTQUFTLGFBQWEsQ0FDcEIsV0FBNEM7UUFFNUMsSUFBSSxjQUFjLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDN0MsT0FBTyxXQUFXLENBQUM7UUFDckIsQ0FBQztRQUNELElBQUksY0FBYyxDQUFDLFdBQVcsRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQzlDLE9BQU8sV0FBVyxDQUFDLFVBQVUsQ0FBQztRQUNoQyxDQUFDO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELE1BQU0sdUJBQXdCLFNBQVEsS0FBSztRQUNsQyxPQUFPLENBQXNCO1FBRXBDLFlBQVksZ0JBQXFDO1lBQy9DLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxJQUFJLEdBQUcseUJBQXlCLENBQUM7WUFDdEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7UUFDeEMsQ0FBQztLQUNGO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sa0JBQWtCLEdBR3RCLENBQUMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxDQUM1QixDQUFDLElBQUksRUFBRSxFQUFFO1FBQ1AsTUFBTSxNQUFNLEdBQThCLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVyRSxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25CLE9BQU8sV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUMsQ0FBQztRQUVELE1BQU0sSUFBSSx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QyxDQUFDLENBQUM7SUFFSixPQUFPLGtCQUFrQixDQUFDO0FBQzVCLENBQUMsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ0gsTUFBTSxlQUFlLEdBQUcsS0FBSyxFQUFFLE9BQXVCLEVBQUUsSUFBaUIsRUFBRSxFQUFFO0lBQzNFLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFO1FBQ3hCLE9BQU8sRUFBRTtZQUNQLElBQUksRUFBRTtnQkFDSixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7Z0JBQ2pCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztnQkFDN0IsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO2FBQ3RCO1lBQ0QsT0FBTyxFQUFFLEVBQUU7U0FDWjtRQUNELFNBQVMsRUFBRSxtQkFBbUI7S0FDL0IsQ0FBQyxDQUFDO0lBRUgsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUU7UUFDMUIsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJO1FBQ3RCLFFBQVEsRUFBRTtZQUNSLFlBQVksRUFBRSxNQUFNO1lBQ3BCLFdBQVcsRUFBRSxLQUFLO1NBQ25CO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsU0FBUyxFQUFFLFVBQVUsT0FBWSxFQUFFLEtBQVUsRUFBRSxJQUFnQjtnQkFDN0QsSUFBSSxFQUFFLENBQUM7WUFDVCxDQUFDO1lBQ0QsVUFBVSxFQUFFLFVBQVUsT0FBWSxFQUFFLEtBQVUsRUFBRSxJQUFnQjtnQkFDOUQsSUFBSSxFQUFFLENBQUM7WUFDVCxDQUFDO1NBQ0Y7UUFDRCxTQUFTLEVBQUUsSUFBSTtRQUNmLGtCQUFrQixFQUFFLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxNQUFNO1FBQzNDLHNCQUFzQixFQUFFLENBQUMsYUFBa0IsRUFBRSxPQUFZLEVBQUUsS0FBVSxFQUFFLEVBQUU7WUFDdkUsT0FBTyxhQUFhLENBQUM7UUFDdkIsQ0FBQztRQUNELDJCQUEyQixFQUFFLElBQUk7S0FDbEMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN3YWdnZXIgZnJvbSAnQGZhc3RpZnkvc3dhZ2dlcic7XG5pbXBvcnQgc3dhZ2dlclVpIGZyb20gJ0BmYXN0aWZ5L3N3YWdnZXItdWknO1xuaW1wb3J0IEZhc3RpZnksIHsgRmFzdGlmeUJhc2VMb2dnZXIsIEZhc3RpZnlJbnN0YW5jZSB9IGZyb20gJ2Zhc3RpZnknO1xuaW1wb3J0IHtcbiAgWm9kVHlwZVByb3ZpZGVyLFxuICBqc29uU2NoZW1hVHJhbnNmb3JtLFxuICB2YWxpZGF0b3JDb21waWxlcixcbn0gZnJvbSAnZmFzdGlmeS10eXBlLXByb3ZpZGVyLXpvZCc7XG5pbXBvcnQgdHlwZSB7IEZhc3RpZnlTZXJpYWxpemVyQ29tcGlsZXIgfSBmcm9tICdmYXN0aWZ5L3R5cGVzL3NjaGVtYSc7XG5pbXBvcnQgKiBhcyBodHRwIGZyb20gJ2h0dHAnO1xuaW1wb3J0IEpzb25CaWdJbnRGYWN0b3J5IGZyb20gJ2pzb24tYmlnaW50JztcbmltcG9ydCB0eXBlIHsgWm9kQW55IH0gZnJvbSAnem9kJztcbmltcG9ydCB7IEZhc3RpZnlXaXRoWm9kLCBTd2FnZ2VyT3B0cyB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIGNyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgRmFzdGlmeSB3aXRoIFpvZCB2YWxpZGF0aW9uIGxpYnJhcnkgYXMgdmFsaWRhdG9yIGFuZFxuICogdHlwZSBwcm92aWRlclxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbc3dhZ2dlclBhdGg9Jy9zd2FnZ2VyJ11cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2pzb25IYW5kbGVyPUpzb25CaWdJbnRGYWN0b3J5KHtcbiAqICAgICBhbHdheXNQYXJzZUFzQmlnOiBmYWxzZSxcbiAqICAgICB1c2VOYXRpdmVCaWdJbnQ6IHRydWUsXG4gKiAgIH0pXVxuICogQHBhcmFtIHsqfSBbb3B0cz17IGxvZ2dlcjogdHJ1ZSB9XVxuICogQHJldHVybiB7UHJvbWlzZTxcbiAqICAgRmFzdGlmeUluc3RhbmNlPFxuICogICAgIGh0dHAuU2VydmVyPHR5cGVvZiBodHRwLkluY29taW5nTWVzc2FnZSwgdHlwZW9mIGh0dHAuU2VydmVyUmVzcG9uc2U+LFxuICogICAgIGh0dHAuSW5jb21pbmdNZXNzYWdlLFxuICogICAgIGh0dHAuU2VydmVyUmVzcG9uc2U8aHR0cC5JbmNvbWluZ01lc3NhZ2U+LFxuICogICAgIEZhc3RpZnlCYXNlTG9nZ2VyLFxuICogICAgIFpvZFR5cGVQcm92aWRlclxuICogICA+XG4gKiA+fVxuICovXG5leHBvcnQgY29uc3QgY3JlYXRlRmFzdGlmeSA9IGFzeW5jIChcbiAgc3dhZ2dlck9wdHM6IFN3YWdnZXJPcHRzID0ge1xuICAgIHBhdGg6ICcvc3dhZ2dlcicsXG4gICAgdGl0bGU6ICcnLFxuICAgIGRlc2NyaXB0aW9uOiAnJyxcbiAgICB2ZXJzaW9uOiAnMC4wLjEnLFxuICB9LFxuICBvcHRzID0geyBsb2dnZXI6IHRydWUgfSxcbiAganNvbkhhbmRsZXIgPSBKc29uQmlnSW50RmFjdG9yeSh7XG4gICAgYWx3YXlzUGFyc2VBc0JpZzogZmFsc2UsXG4gICAgdXNlTmF0aXZlQmlnSW50OiB0cnVlLFxuICB9KVxuKTogUHJvbWlzZTxGYXN0aWZ5V2l0aFpvZD4gPT4ge1xuICBjb25zdCBmYXN0aWZ5ID0gRmFzdGlmeShvcHRzKS53aXRoVHlwZVByb3ZpZGVyPFpvZFR5cGVQcm92aWRlcj4oKTtcbiAgZmFzdGlmeS5zZXRWYWxpZGF0b3JDb21waWxlcih2YWxpZGF0b3JDb21waWxlcik7XG5cbiAgY29uc3Qgc2VyaWFsaXplckNvbXBpbGVyID0gZ2V0U2VyaWFsaXplckNvbXBpbGVyKGpzb25IYW5kbGVyKTtcbiAgZmFzdGlmeS5zZXRTZXJpYWxpemVyQ29tcGlsZXIoc2VyaWFsaXplckNvbXBpbGVyKTtcblxuICBmYXN0aWZ5LmFkZENvbnRlbnRUeXBlUGFyc2VyPHN0cmluZz4oXG4gICAgJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgIHsgcGFyc2VBczogJ3N0cmluZycgfSxcbiAgICBmdW5jdGlvbiAocmVxLCBib2R5LCBkb25lKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBqc29uID0ganNvbkhhbmRsZXIucGFyc2UoYm9keSk7XG4gICAgICAgIGRvbmUobnVsbCwganNvbik7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIEVycm9yIHx8IGVyciA9PT0gbnVsbCkge1xuICAgICAgICAgIGRvbmUoZXJyLCB1bmRlZmluZWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHdyYXBwZWRFcnIgPSBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cnJlZCB3aGlsZSB0cnlpbmcgdG8gcGFyc2UgcmVxdWVzdCBib2R5YCxcbiAgICAgICAgICAgIHsgY2F1c2U6IGVyciB9XG4gICAgICAgICAgKTtcbiAgICAgICAgICBkb25lKHdyYXBwZWRFcnIsIHVuZGVmaW5lZCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICk7XG5cbiAgYXdhaXQgYWRkU3dhZ2dlclJvdXRlKGZhc3RpZnksIHN3YWdnZXJPcHRzKTtcbiAgcmV0dXJuIGZhc3RpZnk7XG59O1xuXG4vKipcbiAqIGNyZWF0ZXMgYSBGYXN0aWZ5IHNlcmlhbGl6ZXIgY29tcGlsZXIgYmFzZWQgb24gWm9kIHZhbGlkYXRpb24gbGlicmFyeSBhbmRcbiAqIHVzaW5nIHRoZSBwYXNzZWQganNvbiBwYXJzZXIvc2VyaWFsaXplclxuICpcbiAqIEBwYXJhbSB7dHlwZW9mIEpTT059IGpzb25IYW5kbGVyXG4gKiBAcmV0dXJuIHsoRmFzdGlmeVNlcmlhbGl6ZXJDb21waWxlcjxcbiAqICAgfCBab2RBbnlcbiAqICAgfCB7XG4gKiAgICAgICBwcm9wZXJ0aWVzOiBab2RBbnk7XG4gKiAgICAgfVxuICogPil9XG4gKi9cbmNvbnN0IGdldFNlcmlhbGl6ZXJDb21waWxlciA9IChcbiAganNvbkhhbmRsZXI6IFJldHVyblR5cGU8dHlwZW9mIEpzb25CaWdJbnRGYWN0b3J5PlxuKTogRmFzdGlmeVNlcmlhbGl6ZXJDb21waWxlcjxcbiAgfCBab2RBbnlcbiAgfCB7XG4gICAgICBwcm9wZXJ0aWVzOiBab2RBbnk7XG4gICAgfVxuPiA9PiB7XG4gIGNvbnN0IGhhc093blByb3BlcnR5ID0gPFQsIEsgZXh0ZW5kcyBQcm9wZXJ0eUtleT4oXG4gICAgb2JqOiBULFxuICAgIHByb3A6IEtcbiAgKTogb2JqIGlzIFQgJiBSZWNvcmQ8SywgYW55PiA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApO1xuICB9O1xuXG4gIC8qKlxuICAgKiByZXNvbHZlIHRoZSByaWdodCBzY2hlbWEgdG8gYmUgdXNlZFxuICAgKlxuICAgKiBAcGFyYW0geyhab2RBbnkgfCB7IHByb3BlcnRpZXM6IFpvZEFueSB9KX0gbWF5YmVTY2hlbWFcbiAgICogQHJldHVybiB7UGljazxab2RBbnksICdzYWZlUGFyc2UnPn1cbiAgICovXG4gIGZ1bmN0aW9uIHJlc29sdmVTY2hlbWEoXG4gICAgbWF5YmVTY2hlbWE6IFpvZEFueSB8IHsgcHJvcGVydGllczogWm9kQW55IH1cbiAgKTogUGljazxab2RBbnksICdzYWZlUGFyc2UnPiB7XG4gICAgaWYgKGhhc093blByb3BlcnR5KG1heWJlU2NoZW1hLCAnc2FmZVBhcnNlJykpIHtcbiAgICAgIHJldHVybiBtYXliZVNjaGVtYTtcbiAgICB9XG4gICAgaWYgKGhhc093blByb3BlcnR5KG1heWJlU2NoZW1hLCAncHJvcGVydGllcycpKSB7XG4gICAgICByZXR1cm4gbWF5YmVTY2hlbWEucHJvcGVydGllcztcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHNjaGVtYSBwYXNzZWQ6ICR7SlNPTi5zdHJpbmdpZnkobWF5YmVTY2hlbWEpfWApO1xuICB9XG5cbiAgY2xhc3MgUmVzcG9uc2VWYWxpZGF0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgcHVibGljIGRldGFpbHM6IFJlY29yZDxzdHJpbmcsIGFueT47XG5cbiAgICBjb25zdHJ1Y3Rvcih2YWxpZGF0aW9uUmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XG4gICAgICBzdXBlcihcIlJlc3BvbnNlIGRvZXNuJ3QgbWF0Y2ggdGhlIHNjaGVtYVwiKTtcbiAgICAgIHRoaXMubmFtZSA9ICdSZXNwb25zZVZhbGlkYXRpb25FcnJvcic7XG4gICAgICB0aGlzLmRldGFpbHMgPSB2YWxpZGF0aW9uUmVzdWx0LmVycm9yO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBjcmVhdGVzIGEgc2VyaWFsaXplciBjb21waWxlciBiYXNlZCBvbiBab2QgbGlicmFyeVxuICAgKlxuICAgKiBAcGFyYW0geyBzY2hlbWE6IG1heWJlU2NoZW1hIH1cbiAgICovXG4gIGNvbnN0IHNlcmlhbGl6ZXJDb21waWxlcjogRmFzdGlmeVNlcmlhbGl6ZXJDb21waWxlcjxcbiAgICBab2RBbnkgfCB7IHByb3BlcnRpZXM6IFpvZEFueSB9XG4gID4gPVxuICAgICh7IHNjaGVtYTogbWF5YmVTY2hlbWEgfSkgPT5cbiAgICAoZGF0YSkgPT4ge1xuICAgICAgY29uc3Qgc2NoZW1hOiBQaWNrPFpvZEFueSwgJ3NhZmVQYXJzZSc+ID0gcmVzb2x2ZVNjaGVtYShtYXliZVNjaGVtYSk7XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHNjaGVtYS5zYWZlUGFyc2UoZGF0YSk7XG4gICAgICBpZiAocmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgcmV0dXJuIGpzb25IYW5kbGVyLnN0cmluZ2lmeShyZXN1bHQuZGF0YSk7XG4gICAgICB9XG5cbiAgICAgIHRocm93IG5ldyBSZXNwb25zZVZhbGlkYXRpb25FcnJvcihyZXN1bHQpO1xuICAgIH07XG5cbiAgcmV0dXJuIHNlcmlhbGl6ZXJDb21waWxlcjtcbn07XG5cbi8qKlxuICogYWRkcyBzd2FnZ2VyIHRvIHRoZSBmYXN0aWZ5IGluc3RhbmNlXG4gKlxuICogQHBhcmFtIHtBd2FpdGVkPFJldHVyblR5cGU8dHlwZW9mIGNyZWF0ZUZhc3RpZnk+Pn0gZmFzdGlmeVxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGhcbiAqL1xuY29uc3QgYWRkU3dhZ2dlclJvdXRlID0gYXN5bmMgKGZhc3RpZnk6IEZhc3RpZnlXaXRoWm9kLCBvcHRzOiBTd2FnZ2VyT3B0cykgPT4ge1xuICBmYXN0aWZ5LnJlZ2lzdGVyKHN3YWdnZXIsIHtcbiAgICBvcGVuYXBpOiB7XG4gICAgICBpbmZvOiB7XG4gICAgICAgIHRpdGxlOiBvcHRzLnRpdGxlLFxuICAgICAgICBkZXNjcmlwdGlvbjogb3B0cy5kZXNjcmlwdGlvbixcbiAgICAgICAgdmVyc2lvbjogb3B0cy52ZXJzaW9uLFxuICAgICAgfSxcbiAgICAgIHNlcnZlcnM6IFtdLFxuICAgIH0sXG4gICAgdHJhbnNmb3JtOiBqc29uU2NoZW1hVHJhbnNmb3JtLFxuICB9KTtcblxuICBmYXN0aWZ5LnJlZ2lzdGVyKHN3YWdnZXJVaSwge1xuICAgIHJvdXRlUHJlZml4OiBvcHRzLnBhdGgsXG4gICAgdWlDb25maWc6IHtcbiAgICAgIGRvY0V4cGFuc2lvbjogJ2Z1bGwnLFxuICAgICAgZGVlcExpbmtpbmc6IGZhbHNlLFxuICAgIH0sXG4gICAgdWlIb29rczoge1xuICAgICAgb25SZXF1ZXN0OiBmdW5jdGlvbiAocmVxdWVzdDogYW55LCByZXBseTogYW55LCBuZXh0OiAoKSA9PiB2b2lkKSB7XG4gICAgICAgIG5leHQoKTtcbiAgICAgIH0sXG4gICAgICBwcmVIYW5kbGVyOiBmdW5jdGlvbiAocmVxdWVzdDogYW55LCByZXBseTogYW55LCBuZXh0OiAoKSA9PiB2b2lkKSB7XG4gICAgICAgIG5leHQoKTtcbiAgICAgIH0sXG4gICAgfSxcbiAgICBzdGF0aWNDU1A6IHRydWUsXG4gICAgdHJhbnNmb3JtU3RhdGljQ1NQOiAoaGVhZGVyOiBhbnkpID0+IGhlYWRlcixcbiAgICB0cmFuc2Zvcm1TcGVjaWZpY2F0aW9uOiAoc3dhZ2dlck9iamVjdDogYW55LCByZXF1ZXN0OiBhbnksIHJlcGx5OiBhbnkpID0+IHtcbiAgICAgIHJldHVybiBzd2FnZ2VyT2JqZWN0O1xuICAgIH0sXG4gICAgdHJhbnNmb3JtU3BlY2lmaWNhdGlvbkNsb25lOiB0cnVlLFxuICB9KTtcbn07XG4iXX0=
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFzdGlmeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2xpYi9mYXN0aWZ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sb0JBQW9CLENBQUM7QUFFNUIsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsR0FDbEIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLE9BQU8sTUFBTSxTQUFTLENBQUM7QUFDOUIsT0FBTyxpQkFBaUIsTUFBTSxhQUFhLENBQUM7QUFHNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzlDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTlEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxLQUFLLEVBQzlCLGNBQTJCO0lBQ3pCLElBQUksRUFBRSxVQUFVO0lBQ2hCLEtBQUssRUFBRSxLQUFLO0lBQ1osV0FBVyxFQUFFLEVBQUU7SUFDZixPQUFPLEVBQUUsT0FBTztDQUNqQixFQUNELElBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFDdkIsV0FBVyxHQUFHLGlCQUFpQixDQUFDO0lBQzlCLGdCQUFnQixFQUFFLEtBQUs7SUFDdkIsZUFBZSxFQUFFLElBQUk7SUFDckIsYUFBYSxFQUFFLElBQUk7Q0FDcEIsQ0FBQyxFQUN1QixFQUFFO0lBQzNCLE1BQU0sT0FBTyxHQUNYLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsRUFBaUMsQ0FBQztJQUVsRSxPQUFPLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUVoRCxNQUFNLGtCQUFrQixHQUFHLHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9ELE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBRWxELE1BQU0sT0FBTyxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBRWhELE9BQU8sQ0FBQyxvQkFBb0IsQ0FDMUIsa0JBQWtCLEVBQ2xCLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUNyQixjQUFjLENBQUMsV0FBVyxDQUFDLENBQzVCLENBQUM7SUFFRixNQUFNLGVBQWUsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFFNUMsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICd6b2Qtb3BlbmFwaS9leHRlbmQnO1xuXG5pbXBvcnQge1xuICB0eXBlIEZhc3RpZnlab2RPcGVuQXBpVHlwZVByb3ZpZGVyLFxuICBmYXN0aWZ5Wm9kT3BlbkFwaVBsdWdpbixcbiAgdmFsaWRhdG9yQ29tcGlsZXIsXG59IGZyb20gJ2Zhc3RpZnktem9kLW9wZW5hcGknO1xuaW1wb3J0IEZhc3RpZnkgZnJvbSAnZmFzdGlmeSc7XG5pbXBvcnQgSnNvbkJpZ0ludEZhY3RvcnkgZnJvbSAnanNvbi1iaWdpbnQnO1xuXG5pbXBvcnQgeyBGYXN0aWZ5V2l0aFpvZCwgU3dhZ2dlck9wdHMgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IHJlZ2lzdGVyU3dhZ2dlciB9IGZyb20gJy4vc3dhZ2dlcic7XG5pbXBvcnQgeyBtYWtlSnNvblBhcnNlciB9IGZyb20gJy4vanNvblBhcnNlcic7XG5pbXBvcnQgeyBtYWtlU2VyaWFsaXplckNvbXBpbGVyIH0gZnJvbSAnLi9zZXJpYWxpemVyQ29tcGlsZXInO1xuXG4vKipcbiAqIGNyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgRmFzdGlmeSB3aXRoIFpvZCB2YWxpZGF0aW9uIGxpYnJhcnkgYXMgdmFsaWRhdG9yIGFuZFxuICogdHlwZSBwcm92aWRlclxuICovXG5leHBvcnQgY29uc3QgbWFrZUZhc3RpZnkgPSBhc3luYyAoXG4gIHN3YWdnZXJPcHRzOiBTd2FnZ2VyT3B0cyA9IHtcbiAgICBwYXRoOiAnL3N3YWdnZXInLFxuICAgIHRpdGxlOiAnYXBpJyxcbiAgICBkZXNjcmlwdGlvbjogJycsXG4gICAgdmVyc2lvbjogJzAuMC4xJyxcbiAgfSxcbiAgb3B0cyA9IHsgbG9nZ2VyOiB0cnVlIH0sXG4gIGpzb25IYW5kbGVyID0gSnNvbkJpZ0ludEZhY3Rvcnkoe1xuICAgIGFsd2F5c1BhcnNlQXNCaWc6IGZhbHNlLFxuICAgIHVzZU5hdGl2ZUJpZ0ludDogdHJ1ZSxcbiAgICBzdG9yZUFzU3RyaW5nOiB0cnVlLFxuICB9KVxuKTogUHJvbWlzZTxGYXN0aWZ5V2l0aFpvZD4gPT4ge1xuICBjb25zdCBmYXN0aWZ5ID1cbiAgICBGYXN0aWZ5KG9wdHMpLndpdGhUeXBlUHJvdmlkZXI8RmFzdGlmeVpvZE9wZW5BcGlUeXBlUHJvdmlkZXI+KCk7XG5cbiAgZmFzdGlmeS5zZXRWYWxpZGF0b3JDb21waWxlcih2YWxpZGF0b3JDb21waWxlcik7XG5cbiAgY29uc3Qgc2VyaWFsaXplckNvbXBpbGVyID0gbWFrZVNlcmlhbGl6ZXJDb21waWxlcihqc29uSGFuZGxlcik7XG4gIGZhc3RpZnkuc2V0U2VyaWFsaXplckNvbXBpbGVyKHNlcmlhbGl6ZXJDb21waWxlcik7XG5cbiAgYXdhaXQgZmFzdGlmeS5yZWdpc3RlcihmYXN0aWZ5Wm9kT3BlbkFwaVBsdWdpbik7XG5cbiAgZmFzdGlmeS5hZGRDb250ZW50VHlwZVBhcnNlcjxzdHJpbmc+KFxuICAgICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICB7IHBhcnNlQXM6ICdzdHJpbmcnIH0sXG4gICAgbWFrZUpzb25QYXJzZXIoanNvbkhhbmRsZXIpXG4gICk7XG5cbiAgYXdhaXQgcmVnaXN0ZXJTd2FnZ2VyKGZhc3RpZnksIHN3YWdnZXJPcHRzKTtcblxuICByZXR1cm4gZmFzdGlmeTtcbn07XG4iXX0=
package/dist/index.d.ts CHANGED
@@ -1,5 +1,4 @@
1
- export { ZodTypeProvider } from 'fastify-type-provider-zod';
2
- export * from './dataTypes';
1
+ export type { FastifyZodOpenApiTypeProvider } from 'fastify-zod-openapi';
3
2
  export * from './fastify';
4
3
  export * from './types';
5
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AACzE,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,3 @@
1
- export * from './dataTypes';
2
1
  export * from './fastify';
3
2
  export * from './types';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBab2RUeXBlUHJvdmlkZXIgfSBmcm9tICdmYXN0aWZ5LXR5cGUtcHJvdmlkZXItem9kJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0YVR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vZmFzdGlmeSc7XG5leHBvcnQgKiBmcm9tICcuL3R5cGVzJztcbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSB7IEZhc3RpZnlab2RPcGVuQXBpVHlwZVByb3ZpZGVyIH0gZnJvbSAnZmFzdGlmeS16b2Qtb3BlbmFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2Zhc3RpZnknO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG4iXX0=
@@ -0,0 +1,4 @@
1
+ import { ContentTypeParserDoneFunction } from 'fastify/types/content-type-parser';
2
+ import JsonBigIntFactory from 'json-bigint';
3
+ export declare const makeJsonParser: (jsonHandler: ReturnType<typeof JsonBigIntFactory>) => (req: unknown, body: string, done: ContentTypeParserDoneFunction) => void;
4
+ //# sourceMappingURL=jsonParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonParser.d.ts","sourceRoot":"","sources":["../lib/jsonParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AAClF,OAAO,iBAAiB,MAAM,aAAa,CAAC;AAE5C,eAAO,MAAM,cAAc,GACzB,aAAa,UAAU,CAAC,OAAO,iBAAiB,CAAC,MAEzC,KAAK,OAAO,EAAE,MAAM,MAAM,EAAE,MAAM,6BAA6B,SAgBxE,CAAC"}
@@ -0,0 +1,18 @@
1
+ export const makeJsonParser = (jsonHandler) => {
2
+ return (req, body, done) => {
3
+ try {
4
+ const json = jsonHandler.parse(body);
5
+ done(null, json);
6
+ }
7
+ catch (err) {
8
+ if (err instanceof Error || err === null) {
9
+ done(err, undefined);
10
+ }
11
+ else {
12
+ const wrappedErr = new Error(`An unexpected error occurred while trying to parse request body`, { cause: err });
13
+ done(wrappedErr, undefined);
14
+ }
15
+ }
16
+ };
17
+ };
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvblBhcnNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2xpYi9qc29uUGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUM1QixXQUFpRCxFQUNqRCxFQUFFO0lBQ0YsT0FBTyxDQUFDLEdBQVksRUFBRSxJQUFZLEVBQUUsSUFBbUMsRUFBRSxFQUFFO1FBQ3pFLElBQUksQ0FBQztZQUNILE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDckMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNuQixDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLElBQUksR0FBRyxZQUFZLEtBQUssSUFBSSxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDdkIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sVUFBVSxHQUFHLElBQUksS0FBSyxDQUMxQixpRUFBaUUsRUFDakUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQ2YsQ0FBQztnQkFDRixJQUFJLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQzlCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGVudFR5cGVQYXJzZXJEb25lRnVuY3Rpb24gfSBmcm9tICdmYXN0aWZ5L3R5cGVzL2NvbnRlbnQtdHlwZS1wYXJzZXInO1xuaW1wb3J0IEpzb25CaWdJbnRGYWN0b3J5IGZyb20gJ2pzb24tYmlnaW50JztcblxuZXhwb3J0IGNvbnN0IG1ha2VKc29uUGFyc2VyID0gKFxuICBqc29uSGFuZGxlcjogUmV0dXJuVHlwZTx0eXBlb2YgSnNvbkJpZ0ludEZhY3Rvcnk+XG4pID0+IHtcbiAgcmV0dXJuIChyZXE6IHVua25vd24sIGJvZHk6IHN0cmluZywgZG9uZTogQ29udGVudFR5cGVQYXJzZXJEb25lRnVuY3Rpb24pID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QganNvbiA9IGpzb25IYW5kbGVyLnBhcnNlKGJvZHkpO1xuICAgICAgZG9uZShudWxsLCBqc29uKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBFcnJvciB8fCBlcnIgPT09IG51bGwpIHtcbiAgICAgICAgZG9uZShlcnIsIHVuZGVmaW5lZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB3cmFwcGVkRXJyID0gbmV3IEVycm9yKFxuICAgICAgICAgIGBBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VycmVkIHdoaWxlIHRyeWluZyB0byBwYXJzZSByZXF1ZXN0IGJvZHlgLFxuICAgICAgICAgIHsgY2F1c2U6IGVyciB9XG4gICAgICAgICk7XG4gICAgICAgIGRvbmUod3JhcHBlZEVyciwgdW5kZWZpbmVkKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG59O1xuIl19
@@ -0,0 +1,14 @@
1
+ import { FastifySerializerCompiler } from 'fastify/types/schema';
2
+ import { ZodAny } from 'zod';
3
+ import JsonBigIntFactory from 'json-bigint';
4
+ type SerType = FastifySerializerCompiler<ZodAny | {
5
+ properties: ZodAny;
6
+ }>;
7
+ type JsonHandler = ReturnType<typeof JsonBigIntFactory>;
8
+ /**
9
+ * creates a Fastify serializer compiler based on Zod validation library and
10
+ * using the passed json parser/serializer
11
+ */
12
+ export declare const makeSerializerCompiler: (jsonHandler: JsonHandler) => SerType;
13
+ export {};
14
+ //# sourceMappingURL=serializerCompiler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializerCompiler.d.ts","sourceRoot":"","sources":["../lib/serializerCompiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,iBAAiB,MAAM,aAAa,CAAC;AAK5C,KAAK,OAAO,GAAG,yBAAyB,CAAC,MAAM,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAC1E,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAExD;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GAChC,aAAa,WAAW,KAAG,OAW3B,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { ResponseValidationError } from './error';
2
+ import { hasOwnProperty } from './utils';
3
+ /**
4
+ * creates a Fastify serializer compiler based on Zod validation library and
5
+ * using the passed json parser/serializer
6
+ */
7
+ export const makeSerializerCompiler = (jsonHandler) => (schemaDef) => (data) => {
8
+ const schema = resolveSchema(schemaDef.schema);
9
+ const result = schema.safeParse(data);
10
+ if (result.success) {
11
+ return jsonHandler.stringify(result.data);
12
+ }
13
+ throw new ResponseValidationError(result);
14
+ };
15
+ /**
16
+ * resolve the right schema to be used
17
+ */
18
+ const resolveSchema = (maybeSchema) => {
19
+ if (hasOwnProperty(maybeSchema, 'safeParse')) {
20
+ return maybeSchema;
21
+ }
22
+ if (hasOwnProperty(maybeSchema, 'properties')) {
23
+ return maybeSchema.properties;
24
+ }
25
+ throw new Error(`Invalid schema passed: ${JSON.stringify(maybeSchema)}`);
26
+ };
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplckNvbXBpbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vbGliL3NlcmlhbGl6ZXJDb21waWxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUt6Qzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FDakMsQ0FBQyxXQUF3QixFQUFXLEVBQUUsQ0FDdEMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUNkLENBQUMsSUFBSSxFQUFFLEVBQUU7SUFDUCxNQUFNLE1BQU0sR0FBOEIsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUUxRSxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RDLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25CLE9BQU8sV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELE1BQU0sSUFBSSx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUM1QyxDQUFDLENBQUM7QUFFSjs7R0FFRztBQUNILE1BQU0sYUFBYSxHQUFHLENBQ3BCLFdBQTRDLEVBQ2pCLEVBQUU7SUFDN0IsSUFBSSxjQUFjLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUM7UUFDN0MsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUNELElBQUksY0FBYyxDQUFDLFdBQVcsRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDO1FBQzlDLE9BQU8sV0FBVyxDQUFDLFVBQVUsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDM0UsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFzdGlmeVNlcmlhbGl6ZXJDb21waWxlciB9IGZyb20gJ2Zhc3RpZnkvdHlwZXMvc2NoZW1hJztcbmltcG9ydCB7IFpvZEFueSB9IGZyb20gJ3pvZCc7XG5pbXBvcnQgSnNvbkJpZ0ludEZhY3RvcnkgZnJvbSAnanNvbi1iaWdpbnQnO1xuXG5pbXBvcnQgeyBSZXNwb25zZVZhbGlkYXRpb25FcnJvciB9IGZyb20gJy4vZXJyb3InO1xuaW1wb3J0IHsgaGFzT3duUHJvcGVydHkgfSBmcm9tICcuL3V0aWxzJztcblxudHlwZSBTZXJUeXBlID0gRmFzdGlmeVNlcmlhbGl6ZXJDb21waWxlcjxab2RBbnkgfCB7IHByb3BlcnRpZXM6IFpvZEFueSB9PjtcbnR5cGUgSnNvbkhhbmRsZXIgPSBSZXR1cm5UeXBlPHR5cGVvZiBKc29uQmlnSW50RmFjdG9yeT47XG5cbi8qKlxuICogY3JlYXRlcyBhIEZhc3RpZnkgc2VyaWFsaXplciBjb21waWxlciBiYXNlZCBvbiBab2QgdmFsaWRhdGlvbiBsaWJyYXJ5IGFuZFxuICogdXNpbmcgdGhlIHBhc3NlZCBqc29uIHBhcnNlci9zZXJpYWxpemVyXG4gKi9cbmV4cG9ydCBjb25zdCBtYWtlU2VyaWFsaXplckNvbXBpbGVyID1cbiAgKGpzb25IYW5kbGVyOiBKc29uSGFuZGxlcik6IFNlclR5cGUgPT5cbiAgKHNjaGVtYURlZikgPT5cbiAgKGRhdGEpID0+IHtcbiAgICBjb25zdCBzY2hlbWE6IFBpY2s8Wm9kQW55LCAnc2FmZVBhcnNlJz4gPSByZXNvbHZlU2NoZW1hKHNjaGVtYURlZi5zY2hlbWEpO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gc2NoZW1hLnNhZmVQYXJzZShkYXRhKTtcbiAgICBpZiAocmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgIHJldHVybiBqc29uSGFuZGxlci5zdHJpbmdpZnkocmVzdWx0LmRhdGEpO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBSZXNwb25zZVZhbGlkYXRpb25FcnJvcihyZXN1bHQpO1xuICB9O1xuXG4vKipcbiAqIHJlc29sdmUgdGhlIHJpZ2h0IHNjaGVtYSB0byBiZSB1c2VkXG4gKi9cbmNvbnN0IHJlc29sdmVTY2hlbWEgPSAoXG4gIG1heWJlU2NoZW1hOiBab2RBbnkgfCB7IHByb3BlcnRpZXM6IFpvZEFueSB9XG4pOiBQaWNrPFpvZEFueSwgJ3NhZmVQYXJzZSc+ID0+IHtcbiAgaWYgKGhhc093blByb3BlcnR5KG1heWJlU2NoZW1hLCAnc2FmZVBhcnNlJykpIHtcbiAgICByZXR1cm4gbWF5YmVTY2hlbWE7XG4gIH1cbiAgaWYgKGhhc093blByb3BlcnR5KG1heWJlU2NoZW1hLCAncHJvcGVydGllcycpKSB7XG4gICAgcmV0dXJuIG1heWJlU2NoZW1hLnByb3BlcnRpZXM7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHNjaGVtYSBwYXNzZWQ6ICR7SlNPTi5zdHJpbmdpZnkobWF5YmVTY2hlbWEpfWApO1xufTtcbiJdfQ==
@@ -0,0 +1,6 @@
1
+ import { FastifyWithZod, SwaggerOpts } from './types';
2
+ /**
3
+ * adds swagger to the fastify instance
4
+ */
5
+ export declare const registerSwagger: (fastify: FastifyWithZod, opts: SwaggerOpts) => Promise<void>;
6
+ //# sourceMappingURL=swagger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swagger.d.ts","sourceRoot":"","sources":["../lib/swagger.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtD;;GAEG;AACH,eAAO,MAAM,eAAe,GAC1B,SAAS,cAAc,EACvB,MAAM,WAAW,kBAoClB,CAAC"}
@@ -0,0 +1,42 @@
1
+ import swagger from '@fastify/swagger';
2
+ import swaggerUi from '@fastify/swagger-ui';
3
+ import { fastifyZodOpenApiTransform, fastifyZodOpenApiTransformObject, } from 'fastify-zod-openapi';
4
+ /**
5
+ * adds swagger to the fastify instance
6
+ */
7
+ export const registerSwagger = async (fastify, opts) => {
8
+ await fastify.register(swagger, {
9
+ openapi: {
10
+ openapi: '3.1.0',
11
+ info: {
12
+ title: opts.title,
13
+ description: opts.description,
14
+ version: opts.version,
15
+ },
16
+ },
17
+ transform: fastifyZodOpenApiTransform,
18
+ transformObject: fastifyZodOpenApiTransformObject,
19
+ });
20
+ await fastify.register(swaggerUi, {
21
+ routePrefix: opts.path,
22
+ uiConfig: {
23
+ docExpansion: 'full',
24
+ deepLinking: false,
25
+ },
26
+ uiHooks: {
27
+ onRequest: (request, reply, next) => {
28
+ next();
29
+ },
30
+ preHandler: (request, reply, next) => {
31
+ next();
32
+ },
33
+ },
34
+ staticCSP: true,
35
+ transformStaticCSP: (header) => header,
36
+ transformSpecification: (swaggerObject, request, reply) => {
37
+ return swaggerObject;
38
+ },
39
+ transformSpecificationClone: true,
40
+ });
41
+ };
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dhZ2dlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2xpYi9zd2FnZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZDLE9BQU8sU0FBUyxNQUFNLHFCQUFxQixDQUFDO0FBQzVDLE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIsZ0NBQWdDLEdBQ2pDLE1BQU0scUJBQXFCLENBQUM7QUFLN0I7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsS0FBSyxFQUNsQyxPQUF1QixFQUN2QixJQUFpQixFQUNqQixFQUFFO0lBQ0YsTUFBTSxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRTtRQUM5QixPQUFPLEVBQUU7WUFDUCxPQUFPLEVBQUUsT0FBNEI7WUFDckMsSUFBSSxFQUFFO2dCQUNKLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDakIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO2dCQUM3QixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87YUFDdEI7U0FDRjtRQUNELFNBQVMsRUFBRSwwQkFBMEI7UUFDckMsZUFBZSxFQUFFLGdDQUFnQztLQUNsRCxDQUFDLENBQUM7SUFFSCxNQUFNLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFO1FBQ2hDLFdBQVcsRUFBRSxJQUFJLENBQUMsSUFBSTtRQUN0QixRQUFRLEVBQUU7WUFDUixZQUFZLEVBQUUsTUFBTTtZQUNwQixXQUFXLEVBQUUsS0FBSztTQUNuQjtRQUNELE9BQU8sRUFBRTtZQUNQLFNBQVMsRUFBRSxDQUFDLE9BQVksRUFBRSxLQUFVLEVBQUUsSUFBZ0IsRUFBRSxFQUFFO2dCQUN4RCxJQUFJLEVBQUUsQ0FBQztZQUNULENBQUM7WUFDRCxVQUFVLEVBQUUsQ0FBQyxPQUFZLEVBQUUsS0FBVSxFQUFFLElBQWdCLEVBQUUsRUFBRTtnQkFDekQsSUFBSSxFQUFFLENBQUM7WUFDVCxDQUFDO1NBQ0Y7UUFDRCxTQUFTLEVBQUUsSUFBSTtRQUNmLGtCQUFrQixFQUFFLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxNQUFNO1FBQzNDLHNCQUFzQixFQUFFLENBQUMsYUFBa0IsRUFBRSxPQUFZLEVBQUUsS0FBVSxFQUFFLEVBQUU7WUFDdkUsT0FBTyxhQUFhLENBQUM7UUFDdkIsQ0FBQztRQUNELDJCQUEyQixFQUFFLElBQUk7S0FDbEMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN3YWdnZXIgZnJvbSAnQGZhc3RpZnkvc3dhZ2dlcic7XG5pbXBvcnQgc3dhZ2dlclVpIGZyb20gJ0BmYXN0aWZ5L3N3YWdnZXItdWknO1xuaW1wb3J0IHtcbiAgZmFzdGlmeVpvZE9wZW5BcGlUcmFuc2Zvcm0sXG4gIGZhc3RpZnlab2RPcGVuQXBpVHJhbnNmb3JtT2JqZWN0LFxufSBmcm9tICdmYXN0aWZ5LXpvZC1vcGVuYXBpJztcbmltcG9ydCB7IFpvZE9wZW5BcGlWZXJzaW9uIH0gZnJvbSAnem9kLW9wZW5hcGknO1xuXG5pbXBvcnQgeyBGYXN0aWZ5V2l0aFpvZCwgU3dhZ2dlck9wdHMgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBhZGRzIHN3YWdnZXIgdG8gdGhlIGZhc3RpZnkgaW5zdGFuY2VcbiAqL1xuZXhwb3J0IGNvbnN0IHJlZ2lzdGVyU3dhZ2dlciA9IGFzeW5jIChcbiAgZmFzdGlmeTogRmFzdGlmeVdpdGhab2QsXG4gIG9wdHM6IFN3YWdnZXJPcHRzXG4pID0+IHtcbiAgYXdhaXQgZmFzdGlmeS5yZWdpc3Rlcihzd2FnZ2VyLCB7XG4gICAgb3BlbmFwaToge1xuICAgICAgb3BlbmFwaTogJzMuMS4wJyBhcyBab2RPcGVuQXBpVmVyc2lvbixcbiAgICAgIGluZm86IHtcbiAgICAgICAgdGl0bGU6IG9wdHMudGl0bGUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBvcHRzLmRlc2NyaXB0aW9uLFxuICAgICAgICB2ZXJzaW9uOiBvcHRzLnZlcnNpb24sXG4gICAgICB9LFxuICAgIH0sXG4gICAgdHJhbnNmb3JtOiBmYXN0aWZ5Wm9kT3BlbkFwaVRyYW5zZm9ybSxcbiAgICB0cmFuc2Zvcm1PYmplY3Q6IGZhc3RpZnlab2RPcGVuQXBpVHJhbnNmb3JtT2JqZWN0LFxuICB9KTtcblxuICBhd2FpdCBmYXN0aWZ5LnJlZ2lzdGVyKHN3YWdnZXJVaSwge1xuICAgIHJvdXRlUHJlZml4OiBvcHRzLnBhdGgsXG4gICAgdWlDb25maWc6IHtcbiAgICAgIGRvY0V4cGFuc2lvbjogJ2Z1bGwnLFxuICAgICAgZGVlcExpbmtpbmc6IGZhbHNlLFxuICAgIH0sXG4gICAgdWlIb29rczoge1xuICAgICAgb25SZXF1ZXN0OiAocmVxdWVzdDogYW55LCByZXBseTogYW55LCBuZXh0OiAoKSA9PiB2b2lkKSA9PiB7XG4gICAgICAgIG5leHQoKTtcbiAgICAgIH0sXG4gICAgICBwcmVIYW5kbGVyOiAocmVxdWVzdDogYW55LCByZXBseTogYW55LCBuZXh0OiAoKSA9PiB2b2lkKSA9PiB7XG4gICAgICAgIG5leHQoKTtcbiAgICAgIH0sXG4gICAgfSxcbiAgICBzdGF0aWNDU1A6IHRydWUsXG4gICAgdHJhbnNmb3JtU3RhdGljQ1NQOiAoaGVhZGVyOiBhbnkpID0+IGhlYWRlcixcbiAgICB0cmFuc2Zvcm1TcGVjaWZpY2F0aW9uOiAoc3dhZ2dlck9iamVjdDogYW55LCByZXF1ZXN0OiBhbnksIHJlcGx5OiBhbnkpID0+IHtcbiAgICAgIHJldHVybiBzd2FnZ2VyT2JqZWN0O1xuICAgIH0sXG4gICAgdHJhbnNmb3JtU3BlY2lmaWNhdGlvbkNsb25lOiB0cnVlLFxuICB9KTtcbn07XG4iXX0=
package/dist/types.d.ts CHANGED
@@ -1,8 +1,7 @@
1
- /// <reference types="node" />
2
- import { FastifyBaseLogger, FastifyInstance } from 'fastify';
3
- import { ZodTypeProvider } from 'fastify-type-provider-zod';
4
1
  import * as http from 'http';
5
- export type FastifyWithZod = FastifyInstance<http.Server<typeof http.IncomingMessage, typeof http.ServerResponse>, http.IncomingMessage, http.ServerResponse<http.IncomingMessage>, FastifyBaseLogger, ZodTypeProvider>;
2
+ import { FastifyBaseLogger, FastifyInstance } from 'fastify';
3
+ import type { FastifyZodOpenApiTypeProvider } from 'fastify-zod-openapi';
4
+ export type FastifyWithZod = FastifyInstance<http.Server<typeof http.IncomingMessage, typeof http.ServerResponse>, http.IncomingMessage, http.ServerResponse<http.IncomingMessage>, FastifyBaseLogger, FastifyZodOpenApiTypeProvider>;
6
5
  export interface SwaggerOpts {
7
6
  path: string;
8
7
  title: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../lib/types.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,MAAM,MAAM,cAAc,GAAG,eAAe,CAC1C,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,OAAO,IAAI,CAAC,cAAc,CAAC,EACpE,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,EACzC,iBAAiB,EACjB,eAAe,CAChB,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AAEzE,MAAM,MAAM,cAAc,GAAG,eAAe,CAC1C,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,OAAO,IAAI,CAAC,cAAc,CAAC,EACpE,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,EACzC,iBAAiB,EACjB,6BAA6B,CAC9B,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB"}
package/dist/types.js CHANGED
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhc3RpZnlCYXNlTG9nZ2VyLCBGYXN0aWZ5SW5zdGFuY2UgfSBmcm9tICdmYXN0aWZ5JztcbmltcG9ydCB7IFpvZFR5cGVQcm92aWRlciB9IGZyb20gJ2Zhc3RpZnktdHlwZS1wcm92aWRlci16b2QnO1xuaW1wb3J0ICogYXMgaHR0cCBmcm9tICdodHRwJztcblxuZXhwb3J0IHR5cGUgRmFzdGlmeVdpdGhab2QgPSBGYXN0aWZ5SW5zdGFuY2U8XG4gIGh0dHAuU2VydmVyPHR5cGVvZiBodHRwLkluY29taW5nTWVzc2FnZSwgdHlwZW9mIGh0dHAuU2VydmVyUmVzcG9uc2U+LFxuICBodHRwLkluY29taW5nTWVzc2FnZSxcbiAgaHR0cC5TZXJ2ZXJSZXNwb25zZTxodHRwLkluY29taW5nTWVzc2FnZT4sXG4gIEZhc3RpZnlCYXNlTG9nZ2VyLFxuICBab2RUeXBlUHJvdmlkZXJcbj47XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3dhZ2dlck9wdHMge1xuICBwYXRoOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHZlcnNpb246IHN0cmluZztcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGh0dHAgZnJvbSAnaHR0cCc7XG5pbXBvcnQgeyBGYXN0aWZ5QmFzZUxvZ2dlciwgRmFzdGlmeUluc3RhbmNlIH0gZnJvbSAnZmFzdGlmeSc7XG5pbXBvcnQgdHlwZSB7IEZhc3RpZnlab2RPcGVuQXBpVHlwZVByb3ZpZGVyIH0gZnJvbSAnZmFzdGlmeS16b2Qtb3BlbmFwaSc7XG5cbmV4cG9ydCB0eXBlIEZhc3RpZnlXaXRoWm9kID0gRmFzdGlmeUluc3RhbmNlPFxuICBodHRwLlNlcnZlcjx0eXBlb2YgaHR0cC5JbmNvbWluZ01lc3NhZ2UsIHR5cGVvZiBodHRwLlNlcnZlclJlc3BvbnNlPixcbiAgaHR0cC5JbmNvbWluZ01lc3NhZ2UsXG4gIGh0dHAuU2VydmVyUmVzcG9uc2U8aHR0cC5JbmNvbWluZ01lc3NhZ2U+LFxuICBGYXN0aWZ5QmFzZUxvZ2dlcixcbiAgRmFzdGlmeVpvZE9wZW5BcGlUeXBlUHJvdmlkZXJcbj47XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3dhZ2dlck9wdHMge1xuICBwYXRoOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHZlcnNpb246IHN0cmluZztcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export declare const hasOwnProperty: <T, K extends PropertyKey>(obj: T, prop: K) => obj is T & Record<K, any>;
2
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../lib/utils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,GAAI,CAAC,EAAE,CAAC,SAAS,WAAW,EACrD,KAAK,CAAC,EACN,MAAM,CAAC,KACN,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,GAAG,CAE1B,CAAC"}