temba 0.42.8 → 0.44.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 (86) hide show
  1. package/README.md +25 -24
  2. package/config/index.d.ts +0 -1
  3. package/config/index.d.ts.map +1 -1
  4. package/config/index.js +1 -1
  5. package/config/index.js.map +1 -1
  6. package/index.d.ts +2 -2
  7. package/index.d.ts.map +1 -1
  8. package/index.js +20 -32
  9. package/index.js.map +1 -1
  10. package/openapi/html.d.ts +2 -0
  11. package/openapi/html.d.ts.map +1 -0
  12. package/openapi/html.js +14 -0
  13. package/openapi/html.js.map +1 -0
  14. package/openapi/index.d.ts +5 -0
  15. package/openapi/index.d.ts.map +1 -0
  16. package/openapi/index.js +37 -0
  17. package/openapi/index.js.map +1 -0
  18. package/openapi/spec.d.ts +8 -0
  19. package/openapi/spec.d.ts.map +1 -0
  20. package/openapi/spec.js +486 -0
  21. package/openapi/spec.js.map +1 -0
  22. package/package.json +12 -12
  23. package/requestHandlers/delete.d.ts +2 -2
  24. package/requestHandlers/delete.js +8 -8
  25. package/requestHandlers/delete.js.map +1 -1
  26. package/requestHandlers/get.d.ts +13 -7
  27. package/requestHandlers/get.d.ts.map +1 -1
  28. package/requestHandlers/get.js +7 -7
  29. package/requestHandlers/get.js.map +1 -1
  30. package/requestHandlers/index.d.ts +40 -18
  31. package/requestHandlers/index.d.ts.map +1 -1
  32. package/requestHandlers/index.js +2 -2
  33. package/requestHandlers/index.js.map +1 -1
  34. package/requestHandlers/patch.d.ts +9 -2
  35. package/requestHandlers/patch.d.ts.map +1 -1
  36. package/requestHandlers/patch.js +10 -7
  37. package/requestHandlers/patch.js.map +1 -1
  38. package/requestHandlers/post.d.ts +5 -3
  39. package/requestHandlers/post.d.ts.map +1 -1
  40. package/requestHandlers/post.js +6 -6
  41. package/requestHandlers/post.js.map +1 -1
  42. package/requestHandlers/put.d.ts +9 -2
  43. package/requestHandlers/put.d.ts.map +1 -1
  44. package/requestHandlers/put.js +10 -7
  45. package/requestHandlers/put.js.map +1 -1
  46. package/requestHandlers/types.d.ts +4 -12
  47. package/requestHandlers/types.d.ts.map +1 -1
  48. package/requestHandlers/utils.d.ts +4 -1
  49. package/requestHandlers/utils.d.ts.map +1 -1
  50. package/requestHandlers/utils.js.map +1 -1
  51. package/requestInterceptor/interceptRequest.d.ts +6 -5
  52. package/requestInterceptor/interceptRequest.d.ts.map +1 -1
  53. package/requestInterceptor/interceptRequest.js +8 -8
  54. package/requestInterceptor/interceptRequest.js.map +1 -1
  55. package/requestInterceptor/types.d.ts +9 -7
  56. package/requestInterceptor/types.d.ts.map +1 -1
  57. package/resourceHandler.d.ts +2 -7
  58. package/resourceHandler.d.ts.map +1 -1
  59. package/resourceHandler.js +17 -48
  60. package/resourceHandler.js.map +1 -1
  61. package/responseHandler.d.ts +13 -0
  62. package/responseHandler.d.ts.map +1 -0
  63. package/responseHandler.js +39 -0
  64. package/responseHandler.js.map +1 -0
  65. package/root/html.d.ts +8 -0
  66. package/root/html.d.ts.map +1 -0
  67. package/root/html.js +48 -0
  68. package/root/html.js.map +1 -0
  69. package/root/root.d.ts +4 -0
  70. package/root/root.d.ts.map +1 -0
  71. package/root/root.js +37 -0
  72. package/root/root.js.map +1 -0
  73. package/schema/compile.js +10 -11
  74. package/schema/compile.js.map +1 -1
  75. package/schema/validate.d.ts +2 -1
  76. package/schema/validate.d.ts.map +1 -1
  77. package/schema/validate.js.map +1 -1
  78. package/staticFolder/staticFolder.d.ts +3 -5
  79. package/staticFolder/staticFolder.d.ts.map +1 -1
  80. package/staticFolder/staticFolder.js +15 -18
  81. package/staticFolder/staticFolder.js.map +1 -1
  82. package/version.js +1 -1
  83. package/openapi/openapi.d.ts +0 -6
  84. package/openapi/openapi.d.ts.map +0 -1
  85. package/openapi/openapi.js +0 -512
  86. package/openapi/openapi.js.map +0 -1
@@ -0,0 +1,486 @@
1
+ // Creates the OpenAPI spec in JSON or YAML format
2
+ import { OpenApiBuilder, } from 'openapi3-ts/oas31';
3
+ import indefinite from 'indefinite';
4
+ import deepmerge from 'deepmerge';
5
+ const anyResource = '{resource}';
6
+ const defaultResourceInfos = [
7
+ {
8
+ resource: anyResource,
9
+ pluralResourceLowerCase: 'resources',
10
+ pluralResourceUpperCase: 'Resources',
11
+ singularResourceLowerCase: 'resource',
12
+ singularResourceUpperCase: 'Resource',
13
+ },
14
+ ];
15
+ const getRequestBodySchema = (schema = { type: 'object' }) => ({
16
+ content: {
17
+ 'application/json': {
18
+ schema,
19
+ },
20
+ },
21
+ });
22
+ const getResponseBodySchema = (requestSchema) => {
23
+ const defaultSchema = {
24
+ type: 'object',
25
+ properties: {
26
+ id: {
27
+ type: 'string',
28
+ },
29
+ },
30
+ required: ['id'],
31
+ };
32
+ if (!requestSchema)
33
+ return defaultSchema;
34
+ return deepmerge(defaultSchema, requestSchema);
35
+ };
36
+ const defaultErrorResponseBodySchema = {
37
+ type: 'object',
38
+ properties: {
39
+ message: {
40
+ type: 'string',
41
+ },
42
+ },
43
+ required: ['message'],
44
+ };
45
+ const getPathParameters = (resourceInfo, id = false) => {
46
+ const { resource, singularResourceLowerCase } = resourceInfo;
47
+ const resourceParameter = {
48
+ name: 'resource',
49
+ in: 'path',
50
+ required: true,
51
+ schema: {
52
+ type: 'string',
53
+ },
54
+ description: 'The name of the resource.',
55
+ };
56
+ const idParameter = {
57
+ name: `${singularResourceLowerCase}Id`,
58
+ in: 'path',
59
+ required: true,
60
+ schema: {
61
+ type: 'string',
62
+ },
63
+ description: `The ID of the ${singularResourceLowerCase}.`,
64
+ };
65
+ let parameters = [];
66
+ if (resource === anyResource) {
67
+ parameters = [...parameters, resourceParameter];
68
+ }
69
+ if (id) {
70
+ parameters = [...parameters, idParameter];
71
+ }
72
+ return parameters;
73
+ };
74
+ const getServerUrl = (requestHost) => {
75
+ const hostname = requestHost.split(':')[0] || '';
76
+ const port = requestHost.split(':')[1] || '';
77
+ const protocol = ['localhost', '127.0.0.1'].includes(hostname) ? 'http' : 'https';
78
+ let server = `${protocol}://${hostname}`;
79
+ server += !['80', '443'].includes(port) ? `:${port}` : '';
80
+ return server;
81
+ };
82
+ const buildOpenApiSpec = (config, server, resourceInfos) => {
83
+ let apiDescription = 'This API has been generated using [Temba](https://github.com/bouwe77/temba).';
84
+ if (!config.returnNullFields) {
85
+ apiDescription += '\n\nAny fields with `null` values are omitted in all API responses.';
86
+ }
87
+ const builder = OpenApiBuilder.create()
88
+ .addOpenApiVersion('3.1.0')
89
+ .addInfo({
90
+ title: 'My API',
91
+ version: '1.0',
92
+ description: apiDescription,
93
+ })
94
+ .addLicense({
95
+ name: 'Apache 2.0',
96
+ url: 'http://www.apache.org/licenses/LICENSE-2.0.html',
97
+ })
98
+ // For convenience, we use a generic server URL, relative to where the docs are served from.
99
+ .addServer({
100
+ url: server,
101
+ });
102
+ resourceInfos.forEach((resourceInfo) => {
103
+ const { resource, pluralResourceLowerCase, pluralResourceUpperCase, singularResourceLowerCase, singularResourceUpperCase, } = resourceInfo;
104
+ // GET on the root URL
105
+ builder.addPath('/', {
106
+ get: {
107
+ summary: 'API root',
108
+ description: 'Shows information about the API.',
109
+ operationId: 'getApiRoot',
110
+ responses: {
111
+ '200': {
112
+ description: 'The API is working.',
113
+ content: {
114
+ 'text/html': {
115
+ schema: {
116
+ type: 'string',
117
+ },
118
+ },
119
+ },
120
+ },
121
+ },
122
+ },
123
+ });
124
+ const nullFieldsRemark = () => config.returnNullFields
125
+ ? ''
126
+ : '\n\nAny fields with `null` values are omitted in all API responses.';
127
+ const postRequestSchema = config.schemas?.[resource]
128
+ ?.post;
129
+ const responseSchema = getResponseBodySchema(postRequestSchema);
130
+ // GET, HEAD, POST on a collection
131
+ builder.addPath(`/${resource}`, {
132
+ get: {
133
+ // description: `List all ${pluralResourceLowerCase}.`,
134
+ description: `List all ${pluralResourceLowerCase}.`,
135
+ summary: `List all ${pluralResourceLowerCase}`,
136
+ operationId: `getAll${pluralResourceUpperCase}`,
137
+ parameters: getPathParameters(resourceInfo),
138
+ responses: {
139
+ '200': {
140
+ description: `List of all ${pluralResourceLowerCase}.${nullFieldsRemark()}`,
141
+ content: {
142
+ 'application/json': {
143
+ schema: {
144
+ type: 'array',
145
+ items: responseSchema,
146
+ },
147
+ },
148
+ },
149
+ },
150
+ },
151
+ },
152
+ head: {
153
+ summary: `HTTP headers for all ${pluralResourceLowerCase}`,
154
+ description: `Returns HTTP headers for all ${pluralResourceLowerCase}.`,
155
+ operationId: `getAll${pluralResourceUpperCase}Headers`,
156
+ parameters: getPathParameters(resourceInfo),
157
+ responses: {
158
+ '200': {
159
+ description: `HTTP headers for all ${pluralResourceLowerCase}.`,
160
+ },
161
+ },
162
+ },
163
+ post: {
164
+ summary: `Create a new ${singularResourceLowerCase}`,
165
+ description: `Create a new ${singularResourceLowerCase}.`,
166
+ operationId: `create${singularResourceUpperCase}`,
167
+ parameters: getPathParameters(resourceInfo),
168
+ requestBody: getRequestBodySchema(postRequestSchema),
169
+ responses: {
170
+ '201': {
171
+ description: `The ${singularResourceLowerCase} was created. The created ${singularResourceLowerCase} is returned in the response.${nullFieldsRemark()}`,
172
+ content: {
173
+ 'application/json': {
174
+ schema: responseSchema,
175
+ },
176
+ },
177
+ },
178
+ '400': {
179
+ description: 'The request was invalid.',
180
+ content: {
181
+ 'application/json': {
182
+ schema: defaultErrorResponseBodySchema,
183
+ examples: {
184
+ IdNotAllowedInRequestBody: {
185
+ value: {
186
+ message: 'An id is not allowed in the request body',
187
+ },
188
+ },
189
+ },
190
+ },
191
+ },
192
+ },
193
+ },
194
+ },
195
+ });
196
+ // DELETE on a collection if configured
197
+ if (config.allowDeleteCollection) {
198
+ builder.addPath(`/${resource}`, {
199
+ delete: {
200
+ summary: `Delete all ${pluralResourceLowerCase}`,
201
+ description: `Delete all ${pluralResourceLowerCase}.`,
202
+ operationId: `deleteAll${pluralResourceUpperCase}`,
203
+ parameters: getPathParameters(resourceInfo),
204
+ responses: {
205
+ '204': {
206
+ description: `All ${pluralResourceLowerCase} were deleted.`,
207
+ },
208
+ },
209
+ },
210
+ });
211
+ }
212
+ else {
213
+ builder.addPath(`/${resource}`, {
214
+ delete: {
215
+ summary: `Delete all ${pluralResourceLowerCase}`,
216
+ description: 'Deleting whole collections is disabled. Enable by setting `allowDeleteCollection` to `true`.',
217
+ operationId: `deleteAll${pluralResourceUpperCase}`,
218
+ parameters: getPathParameters(resourceInfo),
219
+ responses: {
220
+ '405': {
221
+ description: `Method not allowed`,
222
+ },
223
+ },
224
+ },
225
+ });
226
+ }
227
+ // GET, HEAD, POST, PUT, PATCH, DELETE on an ID
228
+ builder.addPath(`/${resource}/{${singularResourceLowerCase}Id}`, {
229
+ get: {
230
+ summary: `Find ${indefinite(singularResourceLowerCase)} by ID`,
231
+ description: `Find ${indefinite(singularResourceLowerCase)} by ID.`,
232
+ operationId: `get${singularResourceUpperCase}ById`,
233
+ parameters: getPathParameters(resourceInfo, true),
234
+ responses: {
235
+ '200': {
236
+ description: `The ${singularResourceLowerCase} with the ${singularResourceLowerCase}Id.${nullFieldsRemark()}`,
237
+ content: {
238
+ 'application/json': {
239
+ schema: responseSchema,
240
+ },
241
+ },
242
+ },
243
+ '404': {
244
+ description: `The ${singularResourceLowerCase}Id was not found.`,
245
+ content: {
246
+ 'application/json': {
247
+ schema: defaultErrorResponseBodySchema,
248
+ },
249
+ },
250
+ },
251
+ },
252
+ },
253
+ head: {
254
+ summary: `HTTP headers for the ${singularResourceLowerCase} by ID`,
255
+ description: `Returns HTTP headers for the ${singularResourceLowerCase} by ID.`,
256
+ operationId: `get${singularResourceUpperCase}ByIdHeaders`,
257
+ parameters: getPathParameters(resourceInfo, true),
258
+ responses: {
259
+ '200': {
260
+ description: `HTTP headers for the ${singularResourceLowerCase} with the ${singularResourceLowerCase}Id.`,
261
+ },
262
+ '404': {
263
+ description: `The ${singularResourceLowerCase}Id was not found.`,
264
+ },
265
+ },
266
+ },
267
+ post: {
268
+ summary: `Create a new ${singularResourceLowerCase} with id`,
269
+ description: `Create a new ${singularResourceLowerCase}, specifying your own id.`,
270
+ operationId: `create${singularResourceUpperCase}WithId`,
271
+ parameters: getPathParameters(resourceInfo, true),
272
+ requestBody: {
273
+ content: {
274
+ 'application/json': {
275
+ schema: {
276
+ type: 'object',
277
+ },
278
+ },
279
+ },
280
+ },
281
+ responses: {
282
+ '201': {
283
+ description: `The ${singularResourceLowerCase} was created. The created ${singularResourceLowerCase} is returned in the response.${nullFieldsRemark()}`,
284
+ content: {
285
+ 'application/json': {
286
+ schema: {
287
+ type: 'object',
288
+ },
289
+ },
290
+ },
291
+ },
292
+ '400': {
293
+ description: 'The request was invalid.',
294
+ content: {
295
+ 'application/json': {
296
+ schema: {
297
+ type: 'object',
298
+ properties: {
299
+ message: {
300
+ type: 'string',
301
+ },
302
+ },
303
+ },
304
+ examples: {
305
+ IdNotAllowedInRequestBody: {
306
+ value: {
307
+ message: 'An id is not allowed in the request body',
308
+ },
309
+ },
310
+ },
311
+ },
312
+ },
313
+ },
314
+ '409': {
315
+ description: 'The id already exists.',
316
+ content: {
317
+ 'application/json': {
318
+ schema: {
319
+ type: 'object',
320
+ properties: {
321
+ message: {
322
+ type: 'string',
323
+ },
324
+ },
325
+ },
326
+ examples: {
327
+ IdAlreadyExists: {
328
+ value: {
329
+ message: "ID '{resourceId}' already exists",
330
+ },
331
+ },
332
+ },
333
+ },
334
+ },
335
+ },
336
+ },
337
+ },
338
+ put: {
339
+ summary: `Replace ${indefinite(singularResourceLowerCase)}`,
340
+ description: `Replace ${indefinite(singularResourceLowerCase)}.`,
341
+ operationId: `replace${singularResourceUpperCase}`,
342
+ parameters: getPathParameters(resourceInfo, true),
343
+ requestBody: getRequestBodySchema(config.schemas?.[resource]?.put),
344
+ responses: {
345
+ '200': {
346
+ description: `The ${singularResourceLowerCase} was replaced. The replaced ${singularResourceLowerCase} is returned in the response.${nullFieldsRemark()}`,
347
+ content: {
348
+ 'application/json': {
349
+ schema: responseSchema,
350
+ },
351
+ },
352
+ },
353
+ '404': {
354
+ description: `The ${singularResourceLowerCase}Id was not found.`,
355
+ content: {
356
+ 'application/json': {
357
+ schema: defaultErrorResponseBodySchema,
358
+ },
359
+ },
360
+ },
361
+ '400': {
362
+ description: 'The request was invalid.',
363
+ content: {
364
+ 'application/json': {
365
+ schema: defaultErrorResponseBodySchema,
366
+ examples: {
367
+ MissingIdInUrl: {
368
+ value: {
369
+ message: 'An id is required in the URL',
370
+ },
371
+ },
372
+ IdNotAllowedInRequestBody: {
373
+ value: {
374
+ message: 'An id is not allowed in the request body',
375
+ },
376
+ },
377
+ },
378
+ },
379
+ },
380
+ },
381
+ },
382
+ },
383
+ patch: {
384
+ summary: `Update ${indefinite(singularResourceLowerCase)}`,
385
+ description: `Update ${indefinite(singularResourceLowerCase)}.`,
386
+ operationId: `update${singularResourceUpperCase}`,
387
+ parameters: getPathParameters(resourceInfo, true),
388
+ requestBody: getRequestBodySchema(config.schemas?.[resource]?.patch),
389
+ responses: {
390
+ '200': {
391
+ description: `The ${singularResourceLowerCase} was updated. The updated ${singularResourceLowerCase} is returned in the response.${nullFieldsRemark()}`,
392
+ content: {
393
+ 'application/json': {
394
+ schema: responseSchema,
395
+ },
396
+ },
397
+ },
398
+ '404': {
399
+ description: `The ${singularResourceLowerCase}Id was not found.`,
400
+ content: {
401
+ 'application/json': {
402
+ schema: defaultErrorResponseBodySchema,
403
+ },
404
+ },
405
+ },
406
+ '400': {
407
+ description: 'The request was invalid.',
408
+ content: {
409
+ 'application/json': {
410
+ schema: defaultErrorResponseBodySchema,
411
+ examples: {
412
+ MissingIdInUrl: {
413
+ value: {
414
+ message: 'An id is required in the URL',
415
+ },
416
+ },
417
+ IdNotAllowedInRequestBody: {
418
+ value: {
419
+ message: 'An id is not allowed in the request body',
420
+ },
421
+ },
422
+ },
423
+ },
424
+ },
425
+ },
426
+ },
427
+ },
428
+ delete: {
429
+ summary: `Delete ${indefinite(singularResourceLowerCase)}`,
430
+ description: `Delete ${indefinite(singularResourceLowerCase)}.`,
431
+ operationId: `delete${singularResourceUpperCase}`,
432
+ parameters: getPathParameters(resourceInfo, true),
433
+ responses: {
434
+ '204': {
435
+ description: `The ${singularResourceLowerCase} was deleted.`,
436
+ },
437
+ },
438
+ },
439
+ });
440
+ });
441
+ return builder.getSpec();
442
+ };
443
+ export const getSpec = (config, request) => {
444
+ let resourceInfos = defaultResourceInfos;
445
+ if (config.resources.length > 0) {
446
+ resourceInfos = config.resources.map((resource) => {
447
+ if (typeof resource === 'string') {
448
+ const pluralResourceLowerCase = resource.toLowerCase();
449
+ const pluralResourceUpperCase = pluralResourceLowerCase.charAt(0).toUpperCase() + pluralResourceLowerCase.slice(1);
450
+ let singularResourceLowerCase = pluralResourceLowerCase;
451
+ if (singularResourceLowerCase.endsWith('s')) {
452
+ singularResourceLowerCase = singularResourceLowerCase.slice(0, -1);
453
+ }
454
+ const singularResourceUpperCase = singularResourceLowerCase.charAt(0).toUpperCase() + singularResourceLowerCase.slice(1);
455
+ return {
456
+ resource,
457
+ pluralResourceLowerCase,
458
+ pluralResourceUpperCase,
459
+ singularResourceLowerCase,
460
+ singularResourceUpperCase,
461
+ };
462
+ }
463
+ else {
464
+ const pluralResourceLowerCase = resource.pluralName.toLowerCase();
465
+ const pluralResourceUpperCase = pluralResourceLowerCase.charAt(0).toUpperCase() + pluralResourceLowerCase.slice(1);
466
+ const singularResourceLowerCase = resource.singularName.toLowerCase();
467
+ const singularResourceUpperCase = singularResourceLowerCase.charAt(0).toUpperCase() + singularResourceLowerCase.slice(1);
468
+ return {
469
+ resource: resource.resourcePath,
470
+ pluralResourceLowerCase,
471
+ pluralResourceUpperCase,
472
+ singularResourceLowerCase,
473
+ singularResourceUpperCase,
474
+ };
475
+ }
476
+ });
477
+ }
478
+ let server = getServerUrl(request.host);
479
+ if (config.apiPrefix)
480
+ server += `/${config.apiPrefix}/`;
481
+ const spec = buildOpenApiSpec(config, server, resourceInfos);
482
+ const builder = new OpenApiBuilder(typeof config.openapi === 'object' ? deepmerge(spec, config.openapi) : spec);
483
+ const specje = request.format === 'json' ? builder.getSpecAsJson() : builder.getSpecAsYaml();
484
+ return specje;
485
+ };
486
+ //# sourceMappingURL=spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec.js","sourceRoot":"","sources":["../../../src/openapi/spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "temba",
3
- "version": "0.42.8",
3
+ "version": "0.44.0",
4
4
  "description": "Get a simple REST API with zero coding in less than 30 seconds (seriously).",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",
7
7
  "scripts": {
8
- "build": "rm -rf dist && tsc && tsc-alias && cp package.json README.md ./dist/src",
8
+ "build": "rm -rf dist && tsc && tsc-alias && cp package.json ../../README.md ./dist/src",
9
9
  "test": "vitest",
10
10
  "test:watch": "vitest --watch",
11
11
  "lint": "eslint --ignore-path .gitignore --ext .js,.ts . && npx tsc",
@@ -23,17 +23,17 @@
23
23
  "@types/etag": "^1.8.3",
24
24
  "@types/indefinite": "^2.3.4",
25
25
  "@types/morgan": "^1.9.9",
26
- "@types/supertest": "^6.0.2",
27
- "@typescript-eslint/eslint-plugin": "^8.24.0",
28
- "@typescript-eslint/parser": "^8.24.0",
26
+ "@types/supertest": "^6.0.3",
27
+ "@typescript-eslint/eslint-plugin": "^8.29.1",
28
+ "@typescript-eslint/parser": "^8.29.1",
29
29
  "eslint": "8.57.0",
30
- "eslint-config-prettier": "^10.0.1",
31
- "prettier": "^3.5.1",
32
- "supertest": "^7.0.0",
30
+ "eslint-config-prettier": "^10.1.1",
31
+ "prettier": "^3.5.3",
32
+ "supertest": "^7.1.0",
33
33
  "ts-node": "^10.9.2",
34
- "tsc-alias": "^1.8.10",
35
- "typescript": "^5.7.3",
36
- "vitest": "^3.0.5"
34
+ "tsc-alias": "^1.8.14",
35
+ "typescript": "^5.8.3",
36
+ "vitest": "^3.1.1"
37
37
  },
38
38
  "dependencies": {
39
39
  "@rakered/mongo": "^1.6.0",
@@ -45,7 +45,7 @@
45
45
  "etag": "^1.8.1",
46
46
  "indefinite": "^2.5.1",
47
47
  "lowdb": "^7.0.1",
48
- "mime": "^4.0.6",
48
+ "mime": "^4.0.7",
49
49
  "morgan": "^1.10.0",
50
50
  "openapi3-ts": "^4.4.0"
51
51
  }
@@ -2,12 +2,12 @@ import type { Queries } from '../data/types.js';
2
2
  import type { RequestInterceptor } from '../requestInterceptor/types.js';
3
3
  import type { DeleteRequest } from './types.js';
4
4
  export declare const createDeleteRoutes: (queries: Queries, allowDeleteCollection: boolean, requestInterceptor: RequestInterceptor | null, etagsEnabled: boolean) => (req: DeleteRequest) => Promise<{
5
- status: number;
5
+ statusCode: number;
6
6
  body: {
7
7
  message: string;
8
8
  };
9
9
  } | {
10
- status: number;
10
+ statusCode: number;
11
11
  body?: undefined;
12
12
  }>;
13
13
  //# sourceMappingURL=delete.d.ts.map
@@ -7,11 +7,11 @@ export const createDeleteRoutes = (queries, allowDeleteCollection, requestInterc
7
7
  const { headers, resource, id } = req;
8
8
  if (requestInterceptor?.delete) {
9
9
  try {
10
- interceptDeleteRequest(requestInterceptor.delete, headers, resource, id);
10
+ await interceptDeleteRequest(requestInterceptor.delete, headers, resource, id);
11
11
  }
12
12
  catch (error) {
13
13
  return {
14
- status: error instanceof TembaError ? error.statusCode : 500,
14
+ statusCode: error instanceof TembaError ? error.statusCode : 500,
15
15
  body: { message: error.message },
16
16
  };
17
17
  }
@@ -23,7 +23,7 @@ export const createDeleteRoutes = (queries, allowDeleteCollection, requestInterc
23
23
  const itemEtag = etag(JSON.stringify(item));
24
24
  if (req.etag !== itemEtag) {
25
25
  return {
26
- status: 412,
26
+ statusCode: 412,
27
27
  body: {
28
28
  message: 'Precondition failed',
29
29
  },
@@ -37,7 +37,7 @@ export const createDeleteRoutes = (queries, allowDeleteCollection, requestInterc
37
37
  // The client needs to do a GET to determine it, after which it finds out the item is gone.
38
38
  if (etagsEnabled && !req.etag) {
39
39
  return {
40
- status: 412,
40
+ statusCode: 412,
41
41
  body: {
42
42
  message: 'Precondition failed',
43
43
  },
@@ -47,14 +47,14 @@ export const createDeleteRoutes = (queries, allowDeleteCollection, requestInterc
47
47
  }
48
48
  else {
49
49
  if (!allowDeleteCollection) {
50
- return { status: 405 };
50
+ return { statusCode: 405 };
51
51
  }
52
52
  if (etagsEnabled) {
53
53
  const items = await queries.getAll(resource);
54
54
  const etagValue = etag(JSON.stringify(items));
55
55
  if (req.etag !== etagValue) {
56
56
  return {
57
- status: 412,
57
+ statusCode: 412,
58
58
  body: {
59
59
  message: 'Precondition failed',
60
60
  },
@@ -63,10 +63,10 @@ export const createDeleteRoutes = (queries, allowDeleteCollection, requestInterc
63
63
  }
64
64
  await queries.deleteAll(resource);
65
65
  }
66
- return { status: 204 };
66
+ return { statusCode: 204 };
67
67
  }
68
68
  catch (error) {
69
- return { status: 500, body: { message: error.message } };
69
+ return { statusCode: 500, body: { message: error.message } };
70
70
  }
71
71
  };
72
72
  return handleDelete;
@@ -1 +1 @@
1
- {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/requestHandlers/delete.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAA;AAC/E,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAI7D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,OAAgB,EAChB,qBAA8B,EAC9B,kBAA6C,EAC7C,YAAqB,EACrB,EAAE;IACF,MAAM,YAAY,GAAG,KAAK,EAAE,GAAkB,EAAE,EAAE;QAChD,IAAI,CAAC;YACH,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,GAAG,CAAA;YAErC,IAAI,kBAAkB,EAAE,MAAM,EAAE,CAAC;gBAC/B,IAAI,CAAC;oBACH,sBAAsB,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAA;gBAC1E,CAAC;gBAAC,OAAO,KAAc,EAAE,CAAC;oBACxB,OAAO;wBACL,MAAM,EAAE,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG;wBAC5D,IAAI,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE;qBAC5C,CAAA;gBACH,CAAC;YACH,CAAC;YAED,IAAI,EAAE,EAAE,CAAC;gBACP,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;gBAChD,IAAI,IAAI,EAAE,CAAC;oBACT,IAAI,YAAY,EAAE,CAAC;wBACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;wBAC3C,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;4BAC1B,OAAO;gCACL,MAAM,EAAE,GAAG;gCACX,IAAI,EAAE;oCACJ,OAAO,EAAE,qBAAqB;iCAC/B;6BACF,CAAA;wBACH,CAAC;oBACH,CAAC;oBAED,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;gBACxC,CAAC;qBAAM,CAAC;oBACN,iEAAiE;oBACjE,2FAA2F;oBAC3F,IAAI,YAAY,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;wBAC9B,OAAO;4BACL,MAAM,EAAE,GAAG;4BACX,IAAI,EAAE;gCACJ,OAAO,EAAE,qBAAqB;6BAC/B;yBACF,CAAA;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,qBAAqB,EAAE,CAAC;oBAC3B,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAA;gBACxB,CAAC;gBAED,IAAI,YAAY,EAAE,CAAC;oBACjB,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;oBAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;oBAC7C,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;wBAC3B,OAAO;4BACL,MAAM,EAAE,GAAG;4BACX,IAAI,EAAE;gCACJ,OAAO,EAAE,qBAAqB;6BAC/B;yBACF,CAAA;oBACH,CAAC;gBACH,CAAC;gBAED,MAAM,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;YACnC,CAAC;YAED,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAA;QACxB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE,EAAE,CAAA;QACrE,CAAC;IACH,CAAC,CAAA;IAED,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA"}
1
+ {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/requestHandlers/delete.ts"],"names":[],"mappings":"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"}