@rosen-bridge/fastify-enhanced 3.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @rosen-bridge/fastify-enhanced
2
2
 
3
+ ## 3.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - Add enableCSP option to swagger options of makeFastify
8
+
3
9
  ## 3.0.0
4
10
 
5
11
  ### Major Changes
package/README.md CHANGED
@@ -32,37 +32,26 @@ yarn add zod@^3.21.4
32
32
 
33
33
  ## Usage
34
34
 
35
- To use the enhanced Fastify, import `createFastify` and use it to create a fastify instance and register routes. Use data types defined under `types` object, to define validation constraints for requests and responses:
35
+ To use the enhanced Fastify, import `makeFastify` and use it to create a fastify instance and register routes. Install and use zod to define schemas for validating requests and responses:
36
+
37
+ > Note: For **BigInt** field types, since JSON does not support the BigInt data type, you should use `z.coerce.bigint()` in the schema, and the value in the data transfer object (DTO) should be either a **number** or a **string**; `coerce` allows Zod to validate and transform the number or string value into a BigInt. Also its preferred to use string for bigint types in the response schemas.
36
38
 
37
39
  ```ts
38
- import { FastifyBaseLogger, FastifyInstance } from 'fastify';
39
- import { IncomingMessage, Server, ServerResponse } from 'http';
40
-
41
- import {
42
- ZodTypeProvider,
43
- createFastify,
44
- types,
45
- } from '@rosen-bridge/fastify-enhanced';
46
-
47
- const addTokenPaymentRoute = (
48
- fastify: FastifyInstance<
49
- Server<typeof IncomingMessage, typeof ServerResponse>,
50
- IncomingMessage,
51
- ServerResponse<IncomingMessage>,
52
- FastifyBaseLogger,
53
- ZodTypeProvider
54
- >,
55
- ) => {
56
- const bodySchema = types.object({
57
- tokenName: types.string(),
58
- tokenAmount: types.bigint(),
59
- tokenDecimals: types.number(),
40
+ import { z } from 'zod';
41
+
42
+ import { FastifyWithZod, makeFastify } from '@rosen-bridge/fastify-enhanced';
43
+
44
+ const addTokenPaymentRoute = (fastify: FastifyWithZod) => {
45
+ const bodySchema = z.object({
46
+ tokenName: z.string(),
47
+ tokenAmount: z.coerce.bigint(),
48
+ tokenDecimals: z.number(),
60
49
  });
61
50
 
62
- const res200Schema = types.object({
63
- name: types.string(),
64
- amount: types.bigint(),
65
- decimal: types.number(),
51
+ const res200Schema = z.object({
52
+ name: z.string(),
53
+ amount: z.string(),
54
+ decimal: z.number(),
66
55
  });
67
56
 
68
57
  const payTokenOpts = {
@@ -77,15 +66,89 @@ const addTokenPaymentRoute = (
77
66
  fastify.post('/payToken', payTokenOpts, async (request, reply) => {
78
67
  return reply.status(200).send({
79
68
  name: request.body.tokenName,
80
- amount: request.body.tokenAmount,
69
+ amount: request.body.tokenAmount.toString(),
81
70
  decimal: request.body.tokenDecimals,
82
71
  });
83
72
  });
73
+ };
74
+
75
+ const addDemoRoute = (fastify: FastifyWithZod) => {
76
+ const bodySchema = z.object({
77
+ numberField: z.number(),
78
+ bigintField: z.coerce.bigint(),
79
+ booleanField: z.boolean(),
80
+ stringField: z.string(),
81
+ optionalStringField: z.optional(z.string()),
82
+ objectField: z.object({
83
+ bigintField: z.coerce.bigint(),
84
+ // ...
85
+ }),
86
+ numberArrayField: z.array(z.number()),
87
+ stringArrayField: z.array(z.string()),
88
+ unionField: z.union([
89
+ z.string(),
90
+ z.object({
91
+ stringArrayField: z.array(z.string()),
92
+ // ...
93
+ }),
94
+ ]),
95
+ });
96
+
97
+ const qsSchema = z.object({
98
+ qs: z.union([z.string().transform((i) => [i]), z.array(z.string())]),
99
+ });
100
+
101
+ const res200Schema = z.object({
102
+ qs: z.array(z.string()),
103
+ numberField: z.number(),
104
+ bigintField: z.string(),
105
+ booleanField: z.boolean(),
106
+ stringField: z.string(),
107
+ optionalStringField: z.optional(z.string()),
108
+ objectField: z.object({
109
+ bigintField: z.string(),
110
+ // ...
111
+ }),
112
+ numberArrayField: z.array(z.number()),
113
+ stringArrayField: z.array(z.string()),
114
+ unionField: z.union([
115
+ z.string(),
116
+ z.object({
117
+ stringArrayField: z.array(z.string()),
118
+ // ...
119
+ }),
120
+ ]),
121
+ });
122
+
123
+ const routeOpts = {
124
+ schema: {
125
+ querystring: qsSchema,
126
+ body: bodySchema,
127
+ response: {
128
+ 200: res200Schema,
129
+ },
130
+ },
131
+ };
84
132
 
85
- return fastify;
133
+ fastify.post('/demo', routeOpts, async (request, reply) => {
134
+ return reply.status(200).send({
135
+ qs: request.query.qs,
136
+ numberField: request.body.numberField,
137
+ bigintField: request.body.bigintField.toString(),
138
+ booleanField: request.body.booleanField,
139
+ stringField: request.body.stringField,
140
+ optionalStringField: request.body.optionalStringField,
141
+ objectField: {
142
+ bigintField: request.body.objectField.bigintField.toString(),
143
+ },
144
+ numberArrayField: request.body.numberArrayField,
145
+ stringArrayField: request.body.stringArrayField,
146
+ unionField: request.body.unionField,
147
+ });
148
+ });
86
149
  };
87
150
 
88
- const fastify = await createFastify(
151
+ const fastify = await makeFastify(
89
152
  {
90
153
  path: '/swagger',
91
154
  title: '',
@@ -95,27 +158,49 @@ const fastify = await createFastify(
95
158
  { logger: false },
96
159
  );
97
160
  addTokenPaymentRoute(fastify);
161
+ // Or fastify.register(addTokenPaymentRoute);
162
+ addDemoRoute(fastify);
98
163
 
99
164
  const start = async () => {
100
165
  try {
101
- await fastify.listen({ port: 8000 });
166
+ await fastify.ready();
167
+ await fastify.listen({ host: '127.0.0.1', port: 8000 });
168
+ console.log(`listening http://127.0.0.1:8000`);
102
169
  } catch (err) {
103
- console.log(err);
170
+ console.error(err);
104
171
  process.exit(1);
105
172
  }
106
173
  };
107
- start();
108
- ```
109
174
 
110
- To define a nested route don't forget to add `ZodTypeProvider` to the Fastify instance that is passed to the `register` method, to enable Zod typing validation:
175
+ start();
111
176
 
112
- ```ts
113
- fastify.register(
114
- (instance, opts, next) => {
115
- const subFastify = instance.withTypeProvider<ZodTypeProvider>();
116
- addTokenPaymentRoute(subFastify);
117
- next();
177
+ /*
178
+ curl --request POST \
179
+ --url 'http://localhost:8000/demo?qs=key1&qs=key2' \
180
+ --header 'content-type: application/json' \
181
+ --data '{
182
+ "numberField": 10,
183
+ "bigintField": "10000",
184
+ "booleanField": true,
185
+ "stringField": "str",
186
+ "objectField": {
187
+ "bigintField": 10
118
188
  },
119
- { prefix: 'subroute' },
120
- );
189
+ "numberArrayField": [
190
+ 0,
191
+ 100,
192
+ 1000
193
+ ],
194
+ "stringArrayField": [
195
+ "str1",
196
+ "str2"
197
+ ],
198
+ "unionField": {
199
+ "stringArrayField": [
200
+ "str1",
201
+ "str2"
202
+ ]
203
+ }
204
+ }'
205
+ */
121
206
  ```
@@ -1 +1 @@
1
- {"version":3,"file":"fastify.d.ts","sourceRoot":"","sources":["../lib/fastify.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAOzE,OAAO,oBAAoB,CAAC;AAG5B,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE5E;;;GAGG;AACH,eAAO,MAAM,WAAW,GACtB,cAAa,WAKZ,EACD,OAAM,kBAAkB,CAAC,oBAAoB,EAAE,iBAAiB,CAE/D,KACA,OAAO,CAAC,cAAc,CAYxB,CAAC"}
1
+ {"version":3,"file":"fastify.d.ts","sourceRoot":"","sources":["../lib/fastify.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAOzE,OAAO,oBAAoB,CAAC;AAG5B,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE5E;;;GAGG;AACH,eAAO,MAAM,WAAW,GACtB,cAAa,WAMZ,EACD,OAAM,kBAAkB,CAAC,oBAAoB,EAAE,iBAAiB,CAE/D,KACA,OAAO,CAAC,cAAc,CAYxB,CAAC"}
package/dist/fastify.js CHANGED
@@ -11,6 +11,7 @@ export const makeFastify = async (swaggerOpts = {
11
11
  title: 'api',
12
12
  description: '',
13
13
  version: '0.0.1',
14
+ enableCSP: false,
14
15
  }, opts = {
15
16
  logger: true,
16
17
  }) => {
@@ -21,4 +22,4 @@ export const makeFastify = async (swaggerOpts = {
21
22
  await registerSwagger(fastify, swaggerOpts);
22
23
  return fastify;
23
24
  };
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFzdGlmeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2xpYi9mYXN0aWZ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sT0FBa0QsTUFBTSxTQUFTLENBQUM7QUFDekUsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixrQkFBa0IsRUFDbEIsaUJBQWlCLEdBQ2xCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxvQkFBb0IsQ0FBQztBQUU1QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRzVDOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxLQUFLLEVBQzlCLGNBQTJCO0lBQ3pCLElBQUksRUFBRSxVQUFVO0lBQ2hCLEtBQUssRUFBRSxLQUFLO0lBQ1osV0FBVyxFQUFFLEVBQUU7SUFDZixPQUFPLEVBQUUsT0FBTztDQUNqQixFQUNELE9BQW9FO0lBQ2xFLE1BQU0sRUFBRSxJQUFJO0NBQ2IsRUFDd0IsRUFBRTtJQUMzQixNQUFNLE9BQU8sR0FDWCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsZ0JBQWdCLEVBQWlDLENBQUM7SUFFbEUsT0FBTyxDQUFDLG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDaEQsT0FBTyxDQUFDLHFCQUFxQixDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFFbEQsTUFBTSxPQUFPLENBQUMsUUFBUSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFFaEQsTUFBTSxlQUFlLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBRTVDLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBGYXN0aWZ5LCB7IEZhc3RpZnlCYXNlTG9nZ2VyLCBGYXN0aWZ5SHR0cE9wdGlvbnMgfSBmcm9tICdmYXN0aWZ5JztcbmltcG9ydCB7XG4gIHR5cGUgRmFzdGlmeVpvZE9wZW5BcGlUeXBlUHJvdmlkZXIsXG4gIGZhc3RpZnlab2RPcGVuQXBpUGx1Z2luLFxuICBzZXJpYWxpemVyQ29tcGlsZXIsXG4gIHZhbGlkYXRvckNvbXBpbGVyLFxufSBmcm9tICdmYXN0aWZ5LXpvZC1vcGVuYXBpJztcbmltcG9ydCAnem9kLW9wZW5hcGkvZXh0ZW5kJztcblxuaW1wb3J0IHsgcmVnaXN0ZXJTd2FnZ2VyIH0gZnJvbSAnLi9zd2FnZ2VyJztcbmltcG9ydCB7IEZhc3RpZnlXaXRoWm9kLCBGYXN0aWZ5V2l0aFpvZFNlcnZlciwgU3dhZ2dlck9wdHMgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBjcmVhdGVzIGFuIGluc3RhbmNlIG9mIEZhc3RpZnkgd2l0aCBab2QgdmFsaWRhdGlvbiBsaWJyYXJ5IGFzIHZhbGlkYXRvciBhbmRcbiAqIHR5cGUgcHJvdmlkZXJcbiAqL1xuZXhwb3J0IGNvbnN0IG1ha2VGYXN0aWZ5ID0gYXN5bmMgKFxuICBzd2FnZ2VyT3B0czogU3dhZ2dlck9wdHMgPSB7XG4gICAgcGF0aDogJy9zd2FnZ2VyJyxcbiAgICB0aXRsZTogJ2FwaScsXG4gICAgZGVzY3JpcHRpb246ICcnLFxuICAgIHZlcnNpb246ICcwLjAuMScsXG4gIH0sXG4gIG9wdHM6IEZhc3RpZnlIdHRwT3B0aW9uczxGYXN0aWZ5V2l0aFpvZFNlcnZlciwgRmFzdGlmeUJhc2VMb2dnZXI+ID0ge1xuICAgIGxvZ2dlcjogdHJ1ZSxcbiAgfSxcbik6IFByb21pc2U8RmFzdGlmeVdpdGhab2Q+ID0+IHtcbiAgY29uc3QgZmFzdGlmeSA9XG4gICAgRmFzdGlmeShvcHRzKS53aXRoVHlwZVByb3ZpZGVyPEZhc3RpZnlab2RPcGVuQXBpVHlwZVByb3ZpZGVyPigpO1xuXG4gIGZhc3RpZnkuc2V0VmFsaWRhdG9yQ29tcGlsZXIodmFsaWRhdG9yQ29tcGlsZXIpO1xuICBmYXN0aWZ5LnNldFNlcmlhbGl6ZXJDb21waWxlcihzZXJpYWxpemVyQ29tcGlsZXIpO1xuXG4gIGF3YWl0IGZhc3RpZnkucmVnaXN0ZXIoZmFzdGlmeVpvZE9wZW5BcGlQbHVnaW4pO1xuXG4gIGF3YWl0IHJlZ2lzdGVyU3dhZ2dlcihmYXN0aWZ5LCBzd2FnZ2VyT3B0cyk7XG5cbiAgcmV0dXJuIGZhc3RpZnk7XG59O1xuIl19
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFzdGlmeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2xpYi9mYXN0aWZ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sT0FBa0QsTUFBTSxTQUFTLENBQUM7QUFDekUsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixrQkFBa0IsRUFDbEIsaUJBQWlCLEdBQ2xCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxvQkFBb0IsQ0FBQztBQUU1QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRzVDOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxLQUFLLEVBQzlCLGNBQTJCO0lBQ3pCLElBQUksRUFBRSxVQUFVO0lBQ2hCLEtBQUssRUFBRSxLQUFLO0lBQ1osV0FBVyxFQUFFLEVBQUU7SUFDZixPQUFPLEVBQUUsT0FBTztJQUNoQixTQUFTLEVBQUUsS0FBSztDQUNqQixFQUNELE9BQW9FO0lBQ2xFLE1BQU0sRUFBRSxJQUFJO0NBQ2IsRUFDd0IsRUFBRTtJQUMzQixNQUFNLE9BQU8sR0FDWCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsZ0JBQWdCLEVBQWlDLENBQUM7SUFFbEUsT0FBTyxDQUFDLG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDaEQsT0FBTyxDQUFDLHFCQUFxQixDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFFbEQsTUFBTSxPQUFPLENBQUMsUUFBUSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFFaEQsTUFBTSxlQUFlLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBRTVDLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBGYXN0aWZ5LCB7IEZhc3RpZnlCYXNlTG9nZ2VyLCBGYXN0aWZ5SHR0cE9wdGlvbnMgfSBmcm9tICdmYXN0aWZ5JztcbmltcG9ydCB7XG4gIHR5cGUgRmFzdGlmeVpvZE9wZW5BcGlUeXBlUHJvdmlkZXIsXG4gIGZhc3RpZnlab2RPcGVuQXBpUGx1Z2luLFxuICBzZXJpYWxpemVyQ29tcGlsZXIsXG4gIHZhbGlkYXRvckNvbXBpbGVyLFxufSBmcm9tICdmYXN0aWZ5LXpvZC1vcGVuYXBpJztcbmltcG9ydCAnem9kLW9wZW5hcGkvZXh0ZW5kJztcblxuaW1wb3J0IHsgcmVnaXN0ZXJTd2FnZ2VyIH0gZnJvbSAnLi9zd2FnZ2VyJztcbmltcG9ydCB7IEZhc3RpZnlXaXRoWm9kLCBGYXN0aWZ5V2l0aFpvZFNlcnZlciwgU3dhZ2dlck9wdHMgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBjcmVhdGVzIGFuIGluc3RhbmNlIG9mIEZhc3RpZnkgd2l0aCBab2QgdmFsaWRhdGlvbiBsaWJyYXJ5IGFzIHZhbGlkYXRvciBhbmRcbiAqIHR5cGUgcHJvdmlkZXJcbiAqL1xuZXhwb3J0IGNvbnN0IG1ha2VGYXN0aWZ5ID0gYXN5bmMgKFxuICBzd2FnZ2VyT3B0czogU3dhZ2dlck9wdHMgPSB7XG4gICAgcGF0aDogJy9zd2FnZ2VyJyxcbiAgICB0aXRsZTogJ2FwaScsXG4gICAgZGVzY3JpcHRpb246ICcnLFxuICAgIHZlcnNpb246ICcwLjAuMScsXG4gICAgZW5hYmxlQ1NQOiBmYWxzZSxcbiAgfSxcbiAgb3B0czogRmFzdGlmeUh0dHBPcHRpb25zPEZhc3RpZnlXaXRoWm9kU2VydmVyLCBGYXN0aWZ5QmFzZUxvZ2dlcj4gPSB7XG4gICAgbG9nZ2VyOiB0cnVlLFxuICB9LFxuKTogUHJvbWlzZTxGYXN0aWZ5V2l0aFpvZD4gPT4ge1xuICBjb25zdCBmYXN0aWZ5ID1cbiAgICBGYXN0aWZ5KG9wdHMpLndpdGhUeXBlUHJvdmlkZXI8RmFzdGlmeVpvZE9wZW5BcGlUeXBlUHJvdmlkZXI+KCk7XG5cbiAgZmFzdGlmeS5zZXRWYWxpZGF0b3JDb21waWxlcih2YWxpZGF0b3JDb21waWxlcik7XG4gIGZhc3RpZnkuc2V0U2VyaWFsaXplckNvbXBpbGVyKHNlcmlhbGl6ZXJDb21waWxlcik7XG5cbiAgYXdhaXQgZmFzdGlmeS5yZWdpc3RlcihmYXN0aWZ5Wm9kT3BlbkFwaVBsdWdpbik7XG5cbiAgYXdhaXQgcmVnaXN0ZXJTd2FnZ2VyKGZhc3RpZnksIHN3YWdnZXJPcHRzKTtcblxuICByZXR1cm4gZmFzdGlmeTtcbn07XG4iXX0=
package/dist/swagger.js CHANGED
@@ -40,10 +40,10 @@ export const registerSwagger = async (fastify, opts) => {
40
40
  next();
41
41
  },
42
42
  },
43
- staticCSP: true,
43
+ staticCSP: opts.enableCSP,
44
44
  transformStaticCSP: (header) => header,
45
45
  transformSpecification: (swaggerObject) => swaggerObject,
46
46
  transformSpecificationClone: true,
47
47
  });
48
48
  };
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dhZ2dlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2xpYi9zd2FnZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZDLE9BQU8sU0FBUyxNQUFNLHFCQUFxQixDQUFDO0FBQzVDLE9BQU8sRUFFTCwwQkFBMEIsRUFDMUIsZ0NBQWdDLEdBQ2pDLE1BQU0scUJBQXFCLENBQUM7QUFLN0I7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBRXhCLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUU7SUFDMUIsTUFBTSxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRTtRQUM5QixPQUFPLEVBQUU7WUFDUCxPQUFPLEVBQUUsT0FBNEI7WUFDckMsSUFBSSxFQUFFO2dCQUNKLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDakIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO2dCQUM3QixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87YUFDdEI7WUFDRCxVQUFVLEVBQUU7Z0JBQ1YsZUFBZSxFQUFFO29CQUNmLE1BQU0sRUFBRTt3QkFDTixJQUFJLEVBQUUsUUFBUTt3QkFDZCxJQUFJLEVBQUUsU0FBUzt3QkFDZixFQUFFLEVBQUUsUUFBUTtxQkFDYjtpQkFDRjthQUNGO1NBQ0Y7UUFDRCxTQUFTLEVBQUUsMEJBQTBCO1FBQ3JDLGVBQWUsRUFBRSxnQ0FBZ0M7S0FDbEQsQ0FBQyxDQUFDO0lBRUgsTUFBTSxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRTtRQUNoQyxXQUFXLEVBQUUsSUFBSSxDQUFDLElBQUk7UUFDdEIsUUFBUSxFQUFFO1lBQ1IsWUFBWSxFQUFFLE1BQU07WUFDcEIsV0FBVyxFQUFFLEtBQUs7U0FDbkI7UUFDRCxPQUFPLEVBQUU7WUFDUCxTQUFTLEVBQUUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQWdCLEVBQUUsRUFBRTtnQkFDOUMsSUFBSSxFQUFFLENBQUM7WUFDVCxDQUFDO1lBQ0QsVUFBVSxFQUFFLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFnQixFQUFFLEVBQUU7Z0JBQy9DLElBQUksRUFBRSxDQUFDO1lBQ1QsQ0FBQztTQUNGO1FBQ0QsU0FBUyxFQUFFLElBQUk7UUFDZixrQkFBa0IsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTTtRQUN0QyxzQkFBc0IsRUFBRSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsYUFBYTtRQUN4RCwyQkFBMkIsRUFBRSxJQUFJO0tBQ2xDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzd2FnZ2VyIGZyb20gJ0BmYXN0aWZ5L3N3YWdnZXInO1xuaW1wb3J0IHN3YWdnZXJVaSBmcm9tICdAZmFzdGlmeS9zd2FnZ2VyLXVpJztcbmltcG9ydCB7XG4gIEZhc3RpZnlQbHVnaW5Bc3luY1pvZE9wZW5BcGksXG4gIGZhc3RpZnlab2RPcGVuQXBpVHJhbnNmb3JtLFxuICBmYXN0aWZ5Wm9kT3BlbkFwaVRyYW5zZm9ybU9iamVjdCxcbn0gZnJvbSAnZmFzdGlmeS16b2Qtb3BlbmFwaSc7XG5pbXBvcnQgeyBab2RPcGVuQXBpVmVyc2lvbiB9IGZyb20gJ3pvZC1vcGVuYXBpJztcblxuaW1wb3J0IHsgU3dhZ2dlck9wdHMgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBhZGRzIHN3YWdnZXIgdG8gdGhlIGZhc3RpZnkgaW5zdGFuY2VcbiAqL1xuZXhwb3J0IGNvbnN0IHJlZ2lzdGVyU3dhZ2dlcjogRmFzdGlmeVBsdWdpbkFzeW5jWm9kT3BlbkFwaTxcbiAgU3dhZ2dlck9wdHNcbj4gPSBhc3luYyAoZmFzdGlmeSwgb3B0cykgPT4ge1xuICBhd2FpdCBmYXN0aWZ5LnJlZ2lzdGVyKHN3YWdnZXIsIHtcbiAgICBvcGVuYXBpOiB7XG4gICAgICBvcGVuYXBpOiAnMy4xLjAnIGFzIFpvZE9wZW5BcGlWZXJzaW9uLFxuICAgICAgaW5mbzoge1xuICAgICAgICB0aXRsZTogb3B0cy50aXRsZSxcbiAgICAgICAgZGVzY3JpcHRpb246IG9wdHMuZGVzY3JpcHRpb24sXG4gICAgICAgIHZlcnNpb246IG9wdHMudmVyc2lvbixcbiAgICAgIH0sXG4gICAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIHNlY3VyaXR5U2NoZW1lczoge1xuICAgICAgICAgIGFwaUtleToge1xuICAgICAgICAgICAgdHlwZTogJ2FwaUtleScsXG4gICAgICAgICAgICBuYW1lOiAnQXBpLUtleScsXG4gICAgICAgICAgICBpbjogJ2hlYWRlcicsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB0cmFuc2Zvcm06IGZhc3RpZnlab2RPcGVuQXBpVHJhbnNmb3JtLFxuICAgIHRyYW5zZm9ybU9iamVjdDogZmFzdGlmeVpvZE9wZW5BcGlUcmFuc2Zvcm1PYmplY3QsXG4gIH0pO1xuXG4gIGF3YWl0IGZhc3RpZnkucmVnaXN0ZXIoc3dhZ2dlclVpLCB7XG4gICAgcm91dGVQcmVmaXg6IG9wdHMucGF0aCxcbiAgICB1aUNvbmZpZzoge1xuICAgICAgZG9jRXhwYW5zaW9uOiAnZnVsbCcsXG4gICAgICBkZWVwTGlua2luZzogZmFsc2UsXG4gICAgfSxcbiAgICB1aUhvb2tzOiB7XG4gICAgICBvblJlcXVlc3Q6IChyZXF1ZXN0LCByZXBseSwgbmV4dDogKCkgPT4gdm9pZCkgPT4ge1xuICAgICAgICBuZXh0KCk7XG4gICAgICB9LFxuICAgICAgcHJlSGFuZGxlcjogKHJlcXVlc3QsIHJlcGx5LCBuZXh0OiAoKSA9PiB2b2lkKSA9PiB7XG4gICAgICAgIG5leHQoKTtcbiAgICAgIH0sXG4gICAgfSxcbiAgICBzdGF0aWNDU1A6IHRydWUsXG4gICAgdHJhbnNmb3JtU3RhdGljQ1NQOiAoaGVhZGVyKSA9PiBoZWFkZXIsXG4gICAgdHJhbnNmb3JtU3BlY2lmaWNhdGlvbjogKHN3YWdnZXJPYmplY3QpID0+IHN3YWdnZXJPYmplY3QsXG4gICAgdHJhbnNmb3JtU3BlY2lmaWNhdGlvbkNsb25lOiB0cnVlLFxuICB9KTtcbn07XG4iXX0=
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dhZ2dlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2xpYi9zd2FnZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZDLE9BQU8sU0FBUyxNQUFNLHFCQUFxQixDQUFDO0FBQzVDLE9BQU8sRUFFTCwwQkFBMEIsRUFDMUIsZ0NBQWdDLEdBQ2pDLE1BQU0scUJBQXFCLENBQUM7QUFLN0I7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBRXhCLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUU7SUFDMUIsTUFBTSxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRTtRQUM5QixPQUFPLEVBQUU7WUFDUCxPQUFPLEVBQUUsT0FBNEI7WUFDckMsSUFBSSxFQUFFO2dCQUNKLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDakIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO2dCQUM3QixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87YUFDdEI7WUFDRCxVQUFVLEVBQUU7Z0JBQ1YsZUFBZSxFQUFFO29CQUNmLE1BQU0sRUFBRTt3QkFDTixJQUFJLEVBQUUsUUFBUTt3QkFDZCxJQUFJLEVBQUUsU0FBUzt3QkFDZixFQUFFLEVBQUUsUUFBUTtxQkFDYjtpQkFDRjthQUNGO1NBQ0Y7UUFDRCxTQUFTLEVBQUUsMEJBQTBCO1FBQ3JDLGVBQWUsRUFBRSxnQ0FBZ0M7S0FDbEQsQ0FBQyxDQUFDO0lBRUgsTUFBTSxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRTtRQUNoQyxXQUFXLEVBQUUsSUFBSSxDQUFDLElBQUk7UUFDdEIsUUFBUSxFQUFFO1lBQ1IsWUFBWSxFQUFFLE1BQU07WUFDcEIsV0FBVyxFQUFFLEtBQUs7U0FDbkI7UUFDRCxPQUFPLEVBQUU7WUFDUCxTQUFTLEVBQUUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQWdCLEVBQUUsRUFBRTtnQkFDOUMsSUFBSSxFQUFFLENBQUM7WUFDVCxDQUFDO1lBQ0QsVUFBVSxFQUFFLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFnQixFQUFFLEVBQUU7Z0JBQy9DLElBQUksRUFBRSxDQUFDO1lBQ1QsQ0FBQztTQUNGO1FBQ0QsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1FBQ3pCLGtCQUFrQixFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNO1FBQ3RDLHNCQUFzQixFQUFFLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxhQUFhO1FBQ3hELDJCQUEyQixFQUFFLElBQUk7S0FDbEMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN3YWdnZXIgZnJvbSAnQGZhc3RpZnkvc3dhZ2dlcic7XG5pbXBvcnQgc3dhZ2dlclVpIGZyb20gJ0BmYXN0aWZ5L3N3YWdnZXItdWknO1xuaW1wb3J0IHtcbiAgRmFzdGlmeVBsdWdpbkFzeW5jWm9kT3BlbkFwaSxcbiAgZmFzdGlmeVpvZE9wZW5BcGlUcmFuc2Zvcm0sXG4gIGZhc3RpZnlab2RPcGVuQXBpVHJhbnNmb3JtT2JqZWN0LFxufSBmcm9tICdmYXN0aWZ5LXpvZC1vcGVuYXBpJztcbmltcG9ydCB7IFpvZE9wZW5BcGlWZXJzaW9uIH0gZnJvbSAnem9kLW9wZW5hcGknO1xuXG5pbXBvcnQgeyBTd2FnZ2VyT3B0cyB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIGFkZHMgc3dhZ2dlciB0byB0aGUgZmFzdGlmeSBpbnN0YW5jZVxuICovXG5leHBvcnQgY29uc3QgcmVnaXN0ZXJTd2FnZ2VyOiBGYXN0aWZ5UGx1Z2luQXN5bmNab2RPcGVuQXBpPFxuICBTd2FnZ2VyT3B0c1xuPiA9IGFzeW5jIChmYXN0aWZ5LCBvcHRzKSA9PiB7XG4gIGF3YWl0IGZhc3RpZnkucmVnaXN0ZXIoc3dhZ2dlciwge1xuICAgIG9wZW5hcGk6IHtcbiAgICAgIG9wZW5hcGk6ICczLjEuMCcgYXMgWm9kT3BlbkFwaVZlcnNpb24sXG4gICAgICBpbmZvOiB7XG4gICAgICAgIHRpdGxlOiBvcHRzLnRpdGxlLFxuICAgICAgICBkZXNjcmlwdGlvbjogb3B0cy5kZXNjcmlwdGlvbixcbiAgICAgICAgdmVyc2lvbjogb3B0cy52ZXJzaW9uLFxuICAgICAgfSxcbiAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgc2VjdXJpdHlTY2hlbWVzOiB7XG4gICAgICAgICAgYXBpS2V5OiB7XG4gICAgICAgICAgICB0eXBlOiAnYXBpS2V5JyxcbiAgICAgICAgICAgIG5hbWU6ICdBcGktS2V5JyxcbiAgICAgICAgICAgIGluOiAnaGVhZGVyJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIHRyYW5zZm9ybTogZmFzdGlmeVpvZE9wZW5BcGlUcmFuc2Zvcm0sXG4gICAgdHJhbnNmb3JtT2JqZWN0OiBmYXN0aWZ5Wm9kT3BlbkFwaVRyYW5zZm9ybU9iamVjdCxcbiAgfSk7XG5cbiAgYXdhaXQgZmFzdGlmeS5yZWdpc3Rlcihzd2FnZ2VyVWksIHtcbiAgICByb3V0ZVByZWZpeDogb3B0cy5wYXRoLFxuICAgIHVpQ29uZmlnOiB7XG4gICAgICBkb2NFeHBhbnNpb246ICdmdWxsJyxcbiAgICAgIGRlZXBMaW5raW5nOiBmYWxzZSxcbiAgICB9LFxuICAgIHVpSG9va3M6IHtcbiAgICAgIG9uUmVxdWVzdDogKHJlcXVlc3QsIHJlcGx5LCBuZXh0OiAoKSA9PiB2b2lkKSA9PiB7XG4gICAgICAgIG5leHQoKTtcbiAgICAgIH0sXG4gICAgICBwcmVIYW5kbGVyOiAocmVxdWVzdCwgcmVwbHksIG5leHQ6ICgpID0+IHZvaWQpID0+IHtcbiAgICAgICAgbmV4dCgpO1xuICAgICAgfSxcbiAgICB9LFxuICAgIHN0YXRpY0NTUDogb3B0cy5lbmFibGVDU1AsXG4gICAgdHJhbnNmb3JtU3RhdGljQ1NQOiAoaGVhZGVyKSA9PiBoZWFkZXIsXG4gICAgdHJhbnNmb3JtU3BlY2lmaWNhdGlvbjogKHN3YWdnZXJPYmplY3QpID0+IHN3YWdnZXJPYmplY3QsXG4gICAgdHJhbnNmb3JtU3BlY2lmaWNhdGlvbkNsb25lOiB0cnVlLFxuICB9KTtcbn07XG4iXX0=
package/dist/types.d.ts CHANGED
@@ -8,5 +8,6 @@ export type SwaggerOpts = {
8
8
  title: string;
9
9
  description: string;
10
10
  version: string;
11
+ enableCSP: boolean;
11
12
  };
12
13
  //# sourceMappingURL=types.d.ts.map
@@ -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,KAAK,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAC5C,OAAO,IAAI,CAAC,eAAe,EAC3B,OAAO,IAAI,CAAC,cAAc,CAC3B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,eAAe,CAC1C,oBAAoB,EACpB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,EACzC,iBAAiB,EACjB,6BAA6B,CAC9B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC"}
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,KAAK,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAC5C,OAAO,IAAI,CAAC,eAAe,EAC3B,OAAO,IAAI,CAAC,cAAc,CAC3B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,eAAe,CAC1C,oBAAoB,EACpB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,EACzC,iBAAiB,EACjB,6BAA6B,CAC9B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC"}
package/dist/types.js CHANGED
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhc3RpZnlCYXNlTG9nZ2VyLCBGYXN0aWZ5SW5zdGFuY2UgfSBmcm9tICdmYXN0aWZ5JztcbmltcG9ydCB0eXBlIHsgRmFzdGlmeVpvZE9wZW5BcGlUeXBlUHJvdmlkZXIgfSBmcm9tICdmYXN0aWZ5LXpvZC1vcGVuYXBpJztcbmltcG9ydCAqIGFzIGh0dHAgZnJvbSAnaHR0cCc7XG5cbmV4cG9ydCB0eXBlIEZhc3RpZnlXaXRoWm9kU2VydmVyID0gaHR0cC5TZXJ2ZXI8XG4gIHR5cGVvZiBodHRwLkluY29taW5nTWVzc2FnZSxcbiAgdHlwZW9mIGh0dHAuU2VydmVyUmVzcG9uc2Vcbj47XG5cbmV4cG9ydCB0eXBlIEZhc3RpZnlXaXRoWm9kID0gRmFzdGlmeUluc3RhbmNlPFxuICBGYXN0aWZ5V2l0aFpvZFNlcnZlcixcbiAgaHR0cC5JbmNvbWluZ01lc3NhZ2UsXG4gIGh0dHAuU2VydmVyUmVzcG9uc2U8aHR0cC5JbmNvbWluZ01lc3NhZ2U+LFxuICBGYXN0aWZ5QmFzZUxvZ2dlcixcbiAgRmFzdGlmeVpvZE9wZW5BcGlUeXBlUHJvdmlkZXJcbj47XG5cbmV4cG9ydCB0eXBlIFN3YWdnZXJPcHRzID0ge1xuICBwYXRoOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHZlcnNpb246IHN0cmluZztcbn07XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhc3RpZnlCYXNlTG9nZ2VyLCBGYXN0aWZ5SW5zdGFuY2UgfSBmcm9tICdmYXN0aWZ5JztcbmltcG9ydCB0eXBlIHsgRmFzdGlmeVpvZE9wZW5BcGlUeXBlUHJvdmlkZXIgfSBmcm9tICdmYXN0aWZ5LXpvZC1vcGVuYXBpJztcbmltcG9ydCAqIGFzIGh0dHAgZnJvbSAnaHR0cCc7XG5cbmV4cG9ydCB0eXBlIEZhc3RpZnlXaXRoWm9kU2VydmVyID0gaHR0cC5TZXJ2ZXI8XG4gIHR5cGVvZiBodHRwLkluY29taW5nTWVzc2FnZSxcbiAgdHlwZW9mIGh0dHAuU2VydmVyUmVzcG9uc2Vcbj47XG5cbmV4cG9ydCB0eXBlIEZhc3RpZnlXaXRoWm9kID0gRmFzdGlmeUluc3RhbmNlPFxuICBGYXN0aWZ5V2l0aFpvZFNlcnZlcixcbiAgaHR0cC5JbmNvbWluZ01lc3NhZ2UsXG4gIGh0dHAuU2VydmVyUmVzcG9uc2U8aHR0cC5JbmNvbWluZ01lc3NhZ2U+LFxuICBGYXN0aWZ5QmFzZUxvZ2dlcixcbiAgRmFzdGlmeVpvZE9wZW5BcGlUeXBlUHJvdmlkZXJcbj47XG5cbmV4cG9ydCB0eXBlIFN3YWdnZXJPcHRzID0ge1xuICBwYXRoOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHZlcnNpb246IHN0cmluZztcbiAgZW5hYmxlQ1NQOiBib29sZWFuO1xufTtcbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rosen-bridge/fastify-enhanced",
3
- "version": "3.0.0",
3
+ "version": "3.1.0",
4
4
  "description": "a wrapper around fastify web framework to make it even better",
5
5
  "repository": {
6
6
  "type": "git",