@openaddresses/batch-schema 10.5.0 → 10.7.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
@@ -10,6 +10,14 @@
10
10
 
11
11
  ## Version History
12
12
 
13
+ ### v10.7.0
14
+
15
+ - :data: Enfoce `res.json` with AJV
16
+
17
+ ### v10.6.0
18
+
19
+ - :bug: Properties that are not defined in the Schema are always removed
20
+
13
21
  ### v10.5.0
14
22
 
15
23
  - :bug: Switch to AJV for ability to cast
@@ -12,7 +12,7 @@ const ajv = addFormats(new Ajv({
12
12
  strict: false,
13
13
  allErrors: true,
14
14
  useDefaults: true,
15
- removeAdditional: true,
15
+ removeAdditional: 'all',
16
16
  coerceTypes: true
17
17
  }));
18
18
  /**
@@ -88,6 +88,7 @@ export default class Schemas {
88
88
  try {
89
89
  this.docs.push({ method: Doc.HttpMethods.GET, path: path }, opts);
90
90
  this.schemas.set(`GET ${path}`, opts);
91
+ const resValidation = opts.res && ajv.compile(opts.res);
91
92
  const paramsValidation = opts.params && ajv.compile(opts.params);
92
93
  const queryValidation = opts.query && ajv.compile(opts.query);
93
94
  if (opts.body)
@@ -100,6 +101,17 @@ export default class Schemas {
100
101
  errors.push({ type: 'Query', errors: queryValidation.errors });
101
102
  if (errors.length)
102
103
  return Err.respond(new Err(400, null, 'Validation Error'), res, errors);
104
+ const json = res.json;
105
+ res.json = function (obj) {
106
+ obj = JSON.parse(JSON.stringify(obj)); // Here as Date => String needs to happen
107
+ if ((res.statusCode === null || res.statusCode === 200) && resValidation && !resValidation(obj)) {
108
+ res.status(400);
109
+ return json.call(this, { type: 'Response', errors: resValidation.errors });
110
+ }
111
+ else {
112
+ return json.call(this, obj);
113
+ }
114
+ };
103
115
  return handler(req, res, next);
104
116
  };
105
117
  this.router.get(path, _handler);
@@ -112,6 +124,7 @@ export default class Schemas {
112
124
  try {
113
125
  this.docs.push({ method: Doc.HttpMethods.DELETE, path: path }, opts);
114
126
  this.schemas.set(`DELETE ${path}`, opts);
127
+ const resValidation = opts.res && ajv.compile(opts.res);
115
128
  const paramsValidation = opts.params && ajv.compile(opts.params);
116
129
  const queryValidation = opts.query && ajv.compile(opts.query);
117
130
  if (opts.body)
@@ -124,6 +137,17 @@ export default class Schemas {
124
137
  errors.push({ type: 'Query', errors: queryValidation.errors });
125
138
  if (errors.length)
126
139
  return Err.respond(new Err(400, null, 'Validation Error'), res, errors);
140
+ const json = res.json;
141
+ res.json = function (obj) {
142
+ obj = JSON.parse(JSON.stringify(obj)); // Here as Date => String needs to happen
143
+ if ((res.statusCode === null || res.statusCode === 200) && resValidation && !resValidation(obj)) {
144
+ res.status(400);
145
+ return json.call(this, { type: 'Response', errors: resValidation.errors });
146
+ }
147
+ else {
148
+ return json.call(this, obj);
149
+ }
150
+ };
127
151
  return handler(req, res, next);
128
152
  };
129
153
  this.router.delete(path, _handler);
@@ -136,6 +160,7 @@ export default class Schemas {
136
160
  try {
137
161
  this.docs.push({ method: Doc.HttpMethods.POST, path: path }, opts);
138
162
  this.schemas.set(`POST ${path}`, opts);
163
+ const resValidation = opts.res && ajv.compile(opts.res);
139
164
  const paramsValidation = opts.params && ajv.compile(opts.params);
140
165
  const queryValidation = opts.query && ajv.compile(opts.query);
141
166
  const bodyValidation = opts.body && ajv.compile(opts.body);
@@ -149,6 +174,17 @@ export default class Schemas {
149
174
  errors.push({ type: 'Body', errors: bodyValidation.errors });
150
175
  if (errors.length)
151
176
  return Err.respond(new Err(400, null, 'Validation Error'), res, errors);
177
+ const json = res.json;
178
+ res.json = function (obj) {
179
+ obj = JSON.parse(JSON.stringify(obj)); // Here as Date => String needs to happen
180
+ if ((res.statusCode === null || res.statusCode === 200) && resValidation && !resValidation(obj)) {
181
+ res.status(400);
182
+ return json.call(this, { type: 'Response', errors: resValidation.errors });
183
+ }
184
+ else {
185
+ return json.call(this, obj);
186
+ }
187
+ };
152
188
  return handler(req, res, next);
153
189
  };
154
190
  this.router.post(path, _handler);
@@ -161,6 +197,7 @@ export default class Schemas {
161
197
  try {
162
198
  this.docs.push({ method: Doc.HttpMethods.PATCH, path: path }, opts);
163
199
  this.schemas.set(`PATCH ${path}`, opts);
200
+ const resValidation = opts.res && ajv.compile(opts.res);
164
201
  const paramsValidation = opts.params && ajv.compile(opts.params);
165
202
  const queryValidation = opts.query && ajv.compile(opts.query);
166
203
  const bodyValidation = opts.body && ajv.compile(opts.body);
@@ -174,6 +211,17 @@ export default class Schemas {
174
211
  errors.push({ type: 'Body', errors: bodyValidation.errors });
175
212
  if (errors.length)
176
213
  return Err.respond(new Err(400, null, 'Validation Error'), res, errors);
214
+ const json = res.json;
215
+ res.json = function (obj) {
216
+ obj = JSON.parse(JSON.stringify(obj)); // Here as Date => String needs to happen
217
+ if ((res.statusCode === null || res.statusCode === 200) && resValidation && !resValidation(obj)) {
218
+ res.status(400);
219
+ return json.call(this, { type: 'Response', errors: resValidation.errors });
220
+ }
221
+ else {
222
+ return json.call(this, obj);
223
+ }
224
+ };
177
225
  return handler(req, res, next);
178
226
  };
179
227
  this.router.patch(path, _handler);
@@ -186,6 +234,7 @@ export default class Schemas {
186
234
  try {
187
235
  this.docs.push({ method: Doc.HttpMethods.PUT, path: path }, opts);
188
236
  this.schemas.set(`PUT ${path}`, opts);
237
+ const resValidation = opts.res && ajv.compile(opts.res);
189
238
  const paramsValidation = opts.params && ajv.compile(opts.params);
190
239
  const queryValidation = opts.query && ajv.compile(opts.query);
191
240
  const bodyValidation = opts.body && ajv.compile(opts.body);
@@ -199,6 +248,17 @@ export default class Schemas {
199
248
  errors.push({ type: 'Body', errors: bodyValidation.errors });
200
249
  if (errors.length)
201
250
  return Err.respond(new Err(400, null, 'Validation Error'), res, errors);
251
+ const json = res.json;
252
+ res.json = function (obj) {
253
+ obj = JSON.parse(JSON.stringify(obj)); // Here as Date => String needs to happen
254
+ if ((res.statusCode === null || res.statusCode === 200) && resValidation && !resValidation(obj)) {
255
+ res.status(400);
256
+ return json.call(this, { type: 'Response', errors: resValidation.errors });
257
+ }
258
+ else {
259
+ return json.call(this, obj);
260
+ }
261
+ };
202
262
  return handler(req, res, next);
203
263
  };
204
264
  this.router.put(path, _handler);
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../lib/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../lib/schema.ts"],"names":[],"mappings":"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"}
package/lib/schema.ts CHANGED
@@ -17,7 +17,7 @@ const ajv = addFormats(new Ajv({
17
17
  strict: false,
18
18
  allErrors: true,
19
19
  useDefaults: true,
20
- removeAdditional: true,
20
+ removeAdditional: 'all',
21
21
  coerceTypes: true
22
22
  }));
23
23
 
@@ -113,6 +113,7 @@ export default class Schemas {
113
113
  this.docs.push({ method: Doc.HttpMethods.GET, path: path }, opts);
114
114
  this.schemas.set(`GET ${path}`, opts);
115
115
 
116
+ const resValidation = opts.res && ajv.compile(opts.res);
116
117
  const paramsValidation = opts.params && ajv.compile(opts.params);
117
118
  const queryValidation = opts.query && ajv.compile(opts.query);
118
119
  if (opts.body) throw new Error(`Body not allowed`);
@@ -123,6 +124,17 @@ export default class Schemas {
123
124
  if (queryValidation && !queryValidation(req.query)) errors.push({ type: 'Query', errors: queryValidation.errors as ErrorObject[] });
124
125
  if (errors.length) return Err.respond(new Err(400, null, 'Validation Error'), res, errors);
125
126
 
127
+ const json = res.json;
128
+ res.json = function(obj) {
129
+ obj = JSON.parse(JSON.stringify(obj)) // Here as Date => String needs to happen
130
+ if ((res.statusCode === null || res.statusCode === 200) && resValidation && !resValidation(obj)) {
131
+ res.status(400);
132
+ return json.call(this, { type: 'Response', errors: resValidation.errors as ErrorObject[] });
133
+ } else {
134
+ return json.call(this, obj);
135
+ }
136
+ };
137
+
126
138
  return handler(req, res, next);
127
139
  };
128
140
 
@@ -141,6 +153,7 @@ export default class Schemas {
141
153
  this.docs.push({ method: Doc.HttpMethods.DELETE, path: path }, opts);
142
154
  this.schemas.set(`DELETE ${path}`, opts);
143
155
 
156
+ const resValidation = opts.res && ajv.compile(opts.res);
144
157
  const paramsValidation = opts.params && ajv.compile(opts.params);
145
158
  const queryValidation = opts.query && ajv.compile(opts.query);
146
159
  if (opts.body) throw new Error(`Body not allowed`);
@@ -151,6 +164,17 @@ export default class Schemas {
151
164
  if (queryValidation && !queryValidation(req.query)) errors.push({ type: 'Query', errors: queryValidation.errors as ErrorObject[] });
152
165
  if (errors.length) return Err.respond(new Err(400, null, 'Validation Error'), res, errors);
153
166
 
167
+ const json = res.json;
168
+ res.json = function(obj) {
169
+ obj = JSON.parse(JSON.stringify(obj)) // Here as Date => String needs to happen
170
+ if ((res.statusCode === null || res.statusCode === 200) && resValidation && !resValidation(obj)) {
171
+ res.status(400);
172
+ return json.call(this, { type: 'Response', errors: resValidation.errors as ErrorObject[] });
173
+ } else {
174
+ return json.call(this, obj);
175
+ }
176
+ };
177
+
154
178
  return handler(req, res, next);
155
179
  };
156
180
 
@@ -169,6 +193,7 @@ export default class Schemas {
169
193
  this.docs.push({ method: Doc.HttpMethods.POST, path: path }, opts);
170
194
  this.schemas.set(`POST ${path}`, opts);
171
195
 
196
+ const resValidation = opts.res && ajv.compile(opts.res);
172
197
  const paramsValidation = opts.params && ajv.compile(opts.params);
173
198
  const queryValidation = opts.query && ajv.compile(opts.query);
174
199
  const bodyValidation = opts.body && ajv.compile(opts.body);
@@ -180,6 +205,17 @@ export default class Schemas {
180
205
  if (bodyValidation && !bodyValidation(req.body)) errors.push({ type: 'Body', errors: bodyValidation.errors as ErrorObject[] });
181
206
  if (errors.length) return Err.respond(new Err(400, null, 'Validation Error'), res, errors);
182
207
 
208
+ const json = res.json;
209
+ res.json = function(obj) {
210
+ obj = JSON.parse(JSON.stringify(obj)) // Here as Date => String needs to happen
211
+ if ((res.statusCode === null || res.statusCode === 200) && resValidation && !resValidation(obj)) {
212
+ res.status(400);
213
+ return json.call(this, { type: 'Response', errors: resValidation.errors as ErrorObject[] });
214
+ } else {
215
+ return json.call(this, obj);
216
+ }
217
+ };
218
+
183
219
  return handler(req, res, next);
184
220
  };
185
221
 
@@ -198,6 +234,7 @@ export default class Schemas {
198
234
  this.docs.push({ method: Doc.HttpMethods.PATCH, path: path }, opts);
199
235
  this.schemas.set(`PATCH ${path}`, opts);
200
236
 
237
+ const resValidation = opts.res && ajv.compile(opts.res);
201
238
  const paramsValidation = opts.params && ajv.compile(opts.params);
202
239
  const queryValidation = opts.query && ajv.compile(opts.query);
203
240
  const bodyValidation = opts.body && ajv.compile(opts.body);
@@ -209,6 +246,17 @@ export default class Schemas {
209
246
  if (bodyValidation && !bodyValidation(req.body)) errors.push({ type: 'Body', errors: bodyValidation.errors as ErrorObject[] });
210
247
  if (errors.length) return Err.respond(new Err(400, null, 'Validation Error'), res, errors);
211
248
 
249
+ const json = res.json;
250
+ res.json = function(obj) {
251
+ obj = JSON.parse(JSON.stringify(obj)) // Here as Date => String needs to happen
252
+ if ((res.statusCode === null || res.statusCode === 200) && resValidation && !resValidation(obj)) {
253
+ res.status(400);
254
+ return json.call(this, { type: 'Response', errors: resValidation.errors as ErrorObject[] });
255
+ } else {
256
+ return json.call(this, obj);
257
+ }
258
+ };
259
+
212
260
  return handler(req, res, next);
213
261
  };
214
262
 
@@ -227,6 +275,7 @@ export default class Schemas {
227
275
  this.docs.push({ method: Doc.HttpMethods.PUT, path: path }, opts);
228
276
  this.schemas.set(`PUT ${path}`, opts);
229
277
 
278
+ const resValidation = opts.res && ajv.compile(opts.res);
230
279
  const paramsValidation = opts.params && ajv.compile(opts.params);
231
280
  const queryValidation = opts.query && ajv.compile(opts.query);
232
281
  const bodyValidation = opts.body && ajv.compile(opts.body);
@@ -238,6 +287,17 @@ export default class Schemas {
238
287
  if (bodyValidation && !bodyValidation(req.body)) errors.push({ type: 'Body', errors: bodyValidation.errors as ErrorObject[] });
239
288
  if (errors.length) return Err.respond(new Err(400, null, 'Validation Error'), res, errors);
240
289
 
290
+ const json = res.json;
291
+ res.json = function(obj) {
292
+ obj = JSON.parse(JSON.stringify(obj)) // Here as Date => String needs to happen
293
+ if ((res.statusCode === null || res.statusCode === 200) && resValidation && !resValidation(obj)) {
294
+ res.status(400);
295
+ return json.call(this, { type: 'Response', errors: resValidation.errors as ErrorObject[] });
296
+ } else {
297
+ return json.call(this, obj);
298
+ }
299
+ };
300
+
241
301
  return handler(req, res, next);
242
302
  };
243
303
 
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "root": true,
5
5
  "main": "dist/index.js",
6
6
  "types": "index.ts",
7
- "version": "10.5.0",
7
+ "version": "10.7.0",
8
8
  "description": "Strongly Validated JSON Schema support for address",
9
9
  "repository": "git@github.com:openaddresses/batch-schema",
10
10
  "author": "ingalls <nick@ingalls.ca>",
@@ -31,9 +31,6 @@
31
31
  "morgan": "^1.10.0",
32
32
  "openapi-types": "^12.1.3"
33
33
  },
34
- "peerDependencies": {
35
- "@openaddresses/batch-generic": "x.x.x"
36
- },
37
34
  "devDependencies": {
38
35
  "@types/express": "^4.17.21",
39
36
  "@types/morgan": "^1.9.9",