temba 0.53.6 → 0.55.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 (72) hide show
  1. package/dist/data/json/filtering.d.ts +3 -0
  2. package/dist/data/json/filtering.d.ts.map +1 -0
  3. package/dist/data/json/filtering.js +76 -0
  4. package/dist/data/json/filtering.js.map +1 -0
  5. package/dist/data/json/index.d.ts.map +1 -1
  6. package/dist/data/json/index.js +22 -8
  7. package/dist/data/json/index.js.map +1 -1
  8. package/dist/data/mongo/index.d.ts.map +1 -1
  9. package/dist/data/mongo/index.js +15 -7
  10. package/dist/data/mongo/index.js.map +1 -1
  11. package/dist/data/types.d.ts +36 -7
  12. package/dist/data/types.d.ts.map +1 -1
  13. package/dist/debug.d.ts +2 -0
  14. package/dist/debug.d.ts.map +1 -0
  15. package/dist/debug.js +5 -0
  16. package/dist/debug.js.map +1 -0
  17. package/dist/filtering/filter.d.ts +21 -0
  18. package/dist/filtering/filter.d.ts.map +1 -0
  19. package/dist/filtering/filter.js +76 -0
  20. package/dist/filtering/filter.js.map +1 -0
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +41 -1
  23. package/dist/index.js.map +1 -1
  24. package/dist/queryStrings/parseQueryString.d.ts +3 -0
  25. package/dist/queryStrings/parseQueryString.d.ts.map +1 -0
  26. package/dist/queryStrings/parseQueryString.js +7 -0
  27. package/dist/queryStrings/parseQueryString.js.map +1 -0
  28. package/dist/requestHandlers/delete.d.ts +3 -3
  29. package/dist/requestHandlers/delete.d.ts.map +1 -1
  30. package/dist/requestHandlers/delete.js +14 -5
  31. package/dist/requestHandlers/delete.js.map +1 -1
  32. package/dist/requestHandlers/get.d.ts +3 -3
  33. package/dist/requestHandlers/get.d.ts.map +1 -1
  34. package/dist/requestHandlers/get.js +13 -4
  35. package/dist/requestHandlers/get.js.map +1 -1
  36. package/dist/requestHandlers/index.d.ts +6 -6
  37. package/dist/requestHandlers/patch.js +2 -2
  38. package/dist/requestHandlers/patch.js.map +1 -1
  39. package/dist/requestHandlers/post.js +2 -2
  40. package/dist/requestHandlers/post.js.map +1 -1
  41. package/dist/requestHandlers/put.js +2 -2
  42. package/dist/requestHandlers/put.js.map +1 -1
  43. package/dist/requestHandlers/types.d.ts +4 -0
  44. package/dist/requestHandlers/types.d.ts.map +1 -1
  45. package/dist/requestInterceptor/interceptRequest.d.ts +2 -1
  46. package/dist/requestInterceptor/interceptRequest.d.ts.map +1 -1
  47. package/dist/requestInterceptor/interceptRequest.js +11 -9
  48. package/dist/requestInterceptor/interceptRequest.js.map +1 -1
  49. package/dist/requestInterceptor/interceptorActions.d.ts +10 -2
  50. package/dist/requestInterceptor/interceptorActions.d.ts.map +1 -1
  51. package/dist/requestInterceptor/interceptorActions.js +7 -1
  52. package/dist/requestInterceptor/interceptorActions.js.map +1 -1
  53. package/dist/requestInterceptor/types.d.ts +17 -14
  54. package/dist/requestInterceptor/types.d.ts.map +1 -1
  55. package/dist/resourceHandler.d.ts.map +1 -1
  56. package/dist/resourceHandler.js +35 -0
  57. package/dist/resourceHandler.js.map +1 -1
  58. package/dist/responseBodyInterceptor/interceptResponseBody.d.ts +1 -1
  59. package/dist/responseBodyInterceptor/interceptResponseBody.d.ts.map +1 -1
  60. package/dist/responseBodyInterceptor/interceptResponseBody.js +4 -4
  61. package/dist/responseBodyInterceptor/interceptResponseBody.js.map +1 -1
  62. package/dist/responseBodyInterceptor/types.d.ts +1 -1
  63. package/dist/responseBodyInterceptor/types.d.ts.map +1 -1
  64. package/dist/root/root.d.ts.map +1 -1
  65. package/dist/root/root.js +1 -3
  66. package/dist/root/root.js.map +1 -1
  67. package/dist/staticFolder/staticFolder.d.ts.map +1 -1
  68. package/dist/staticFolder/staticFolder.js +1 -4
  69. package/dist/staticFolder/staticFolder.js.map +1 -1
  70. package/dist/version.d.ts +1 -1
  71. package/dist/version.js +1 -1
  72. package/package.json +2 -1
@@ -2,7 +2,11 @@ import { etag } from '../etags/etags.js';
2
2
  import { interceptDeleteRequest } from '../requestInterceptor/interceptRequest.js';
3
3
  export const createDeleteRoutes = (queries, allowDeleteCollection, requestInterceptor, etagsEnabled, broadcast) => {
4
4
  const handleDelete = async (req) => {
5
- const { headers, resource, id } = req;
5
+ const { headers, resource, id, filter } = req;
6
+ if (filter === 'invalid')
7
+ return { statusCode: 400, body: { message: 'Malformed filter expression' } };
8
+ if (id && filter)
9
+ return { statusCode: 400, body: { message: 'Filtering on a resource by ID is not supported' } };
6
10
  if (requestInterceptor?.delete) {
7
11
  try {
8
12
  const interceptResult = await interceptDeleteRequest(requestInterceptor.delete, headers, resource, id);
@@ -22,7 +26,7 @@ export const createDeleteRoutes = (queries, allowDeleteCollection, requestInterc
22
26
  }
23
27
  }
24
28
  if (id) {
25
- const item = await queries.getById(resource, id);
29
+ const item = await queries.getById({ resource, id });
26
30
  if (item) {
27
31
  if (etagsEnabled) {
28
32
  const itemEtag = etag(JSON.stringify(item));
@@ -35,7 +39,7 @@ export const createDeleteRoutes = (queries, allowDeleteCollection, requestInterc
35
39
  };
36
40
  }
37
41
  }
38
- await queries.deleteById(resource, id);
42
+ await queries.deleteById({ resource, id });
39
43
  // Broadcast to WebSocket clients if enabled
40
44
  if (broadcast) {
41
45
  broadcast(resource, 'DELETE', { id });
@@ -59,7 +63,7 @@ export const createDeleteRoutes = (queries, allowDeleteCollection, requestInterc
59
63
  return { statusCode: 405 };
60
64
  }
61
65
  if (etagsEnabled) {
62
- const items = await queries.getAll(resource);
66
+ const items = await queries.getAll({ resource });
63
67
  const etagValue = etag(JSON.stringify(items));
64
68
  if (req.etag !== etagValue) {
65
69
  return {
@@ -70,7 +74,12 @@ export const createDeleteRoutes = (queries, allowDeleteCollection, requestInterc
70
74
  };
71
75
  }
72
76
  }
73
- await queries.deleteAll(resource);
77
+ if (filter) {
78
+ await queries.deleteByFilter({ resource, filter });
79
+ }
80
+ else {
81
+ await queries.deleteAll({ resource });
82
+ }
74
83
  // Broadcast to WebSocket clients if enabled
75
84
  if (broadcast) {
76
85
  broadcast(resource, 'DELETE_ALL');
@@ -1 +1 @@
1
- {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../src/requestHandlers/delete.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../src/requestHandlers/delete.ts"],"names":[],"mappings":"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"}
@@ -14,14 +14,14 @@ export declare const createGetRoutes: (queries: Queries, requestInterceptor: Req
14
14
  headers: {
15
15
  etag: string;
16
16
  };
17
- } | {
18
- statusCode: number;
19
- body: Body | undefined;
20
17
  } | {
21
18
  statusCode: number;
22
19
  body: {
23
20
  message: string;
24
21
  };
22
+ } | {
23
+ statusCode: number;
24
+ body: Body | undefined;
25
25
  } | {
26
26
  statusCode: number;
27
27
  body?: undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../src/requestHandlers/get.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAG5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAErE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAA;AAC/E,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAG/C,eAAO,MAAM,eAAe,GAC1B,SAAS,OAAO,EAChB,oBAAoB,kBAAkB,GAAG,IAAI,EAC7C,yBAAyB,uBAAuB,GAAG,IAAI,EACvD,kBAAkB,OAAO,EACzB,cAAc,OAAO,WAES,UAAU;;;;;;;;;;;;;;;;;;;;;;;EAgFzC,CAAA"}
1
+ {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../src/requestHandlers/get.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAG5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAErE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAA;AAC/E,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAG/C,eAAO,MAAM,eAAe,GAC1B,SAAS,OAAO,EAChB,oBAAoB,kBAAkB,GAAG,IAAI,EAC7C,yBAAyB,uBAAuB,GAAG,IAAI,EACvD,kBAAkB,OAAO,EACzB,cAAc,OAAO,WAES,UAAU;;;;;;;;;;;;;;;;;;;;;;;EA0FzC,CAAA"}
@@ -4,7 +4,14 @@ import { interceptResponseBody } from '../responseBodyInterceptor/interceptRespo
4
4
  import { removeNullFields } from './utils.js';
5
5
  export const createGetRoutes = (queries, requestInterceptor, responseBodyInterceptor, returnNullFields, etagsEnabled) => {
6
6
  const handleGet = async (req) => {
7
- const { headers, resource, id, ifNoneMatchEtag } = req;
7
+ const { headers, resource, id, ifNoneMatchEtag, filter } = req;
8
+ if (filter === 'invalid')
9
+ return { statusCode: 400, body: { message: 'Malformed filter expression' } };
10
+ if (id && filter)
11
+ return {
12
+ statusCode: 400,
13
+ body: { message: 'Filtering on a resource by ID is not supported' },
14
+ };
8
15
  const responseOk = (body) => {
9
16
  if (!etagsEnabled)
10
17
  return { statusCode: 200, body };
@@ -13,7 +20,7 @@ export const createGetRoutes = (queries, requestInterceptor, responseBodyInterce
13
20
  ? { statusCode: 304, headers: { etag } }
14
21
  : { statusCode: 200, body, headers: { etag } };
15
22
  };
16
- if (req.method === 'get' && requestInterceptor?.get) {
23
+ if (requestInterceptor?.get) {
17
24
  try {
18
25
  const interceptResult = await interceptGetRequest(requestInterceptor.get, headers, resource, id);
19
26
  // If interceptor returned a response action, return immediately
@@ -32,7 +39,7 @@ export const createGetRoutes = (queries, requestInterceptor, responseBodyInterce
32
39
  }
33
40
  }
34
41
  if (id) {
35
- const item = await queries.getById(resource, id);
42
+ const item = await queries.getById({ resource, id });
36
43
  if (!item) {
37
44
  return { statusCode: 404 };
38
45
  }
@@ -49,7 +56,9 @@ export const createGetRoutes = (queries, requestInterceptor, responseBodyInterce
49
56
  }
50
57
  return responseOk(theItem);
51
58
  }
52
- const items = await queries.getAll(resource);
59
+ const items = filter
60
+ ? await queries.getByFilter({ resource, filter })
61
+ : await queries.getAll({ resource });
53
62
  const theItems = responseBodyInterceptor
54
63
  ? await interceptResponseBody(responseBodyInterceptor, { resource, body: items })
55
64
  : items;
@@ -1 +1 @@
1
- {"version":3,"file":"get.js","sourceRoot":"","sources":["../../src/requestHandlers/get.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../src/requestHandlers/get.ts"],"names":[],"mappings":"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"}
@@ -15,14 +15,14 @@ export declare const getRequestHandler: (queries: Queries, schemas: CompiledSche
15
15
  headers: {
16
16
  etag: string;
17
17
  };
18
- } | {
19
- statusCode: number;
20
- body: import("./types.js").Body | undefined;
21
18
  } | {
22
19
  statusCode: number;
23
20
  body: {
24
21
  message: string;
25
22
  };
23
+ } | {
24
+ statusCode: number;
25
+ body: import("./types.js").Body | undefined;
26
26
  } | {
27
27
  statusCode: number;
28
28
  body?: undefined;
@@ -65,13 +65,13 @@ export declare const getRequestHandler: (queries: Queries, schemas: CompiledSche
65
65
  body: import("./types.js").Body | undefined;
66
66
  }>;
67
67
  handleDelete: (req: import("./types.js").DeleteRequest) => Promise<{
68
- statusCode: number;
69
- body: import("./types.js").Body | undefined;
70
- } | {
71
68
  statusCode: number;
72
69
  body: {
73
70
  message: string;
74
71
  };
72
+ } | {
73
+ statusCode: number;
74
+ body: import("./types.js").Body | undefined;
75
75
  } | {
76
76
  statusCode: number;
77
77
  body?: undefined;
@@ -28,7 +28,7 @@ export const createPatchRoutes = (queries, requestInterceptor, returnNullFields,
28
28
  };
29
29
  }
30
30
  }
31
- let item = await queries.getById(resource, id);
31
+ let item = await queries.getById({ resource, id });
32
32
  if (!item)
33
33
  return {
34
34
  statusCode: 404,
@@ -48,7 +48,7 @@ export const createPatchRoutes = (queries, requestInterceptor, returnNullFields,
48
48
  }
49
49
  }
50
50
  item = { ...item, ...body, id };
51
- const updatedItem = await queries.update(resource, item);
51
+ const updatedItem = await queries.update({ resource, item });
52
52
  // Broadcast to WebSocket clients if enabled
53
53
  if (broadcast) {
54
54
  broadcast(resource, 'UPDATE', updatedItem);
@@ -1 +1 @@
1
- {"version":3,"file":"patch.js","sourceRoot":"","sources":["../../src/requestHandlers/patch.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAA;AAG9E,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAG7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE1C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,OAAgB,EAChB,kBAA6C,EAC7C,gBAAyB,EACzB,OAA2C,EAC3C,YAAqB,EACrB,SAAmC,EACnC,EAAE;IACF,MAAM,WAAW,GAAG,KAAK,EAAE,GAAiB,EAAE,EAAE;QAC9C,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,GAAG,CAAA;QACrC,IAAI,EAAE,IAAI,EAAE,GAAG,GAAG,CAAA;QAElB,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC5D,IAAI,gBAAgB,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YACvC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,gBAAgB,CAAC,YAAY,EAAE,EAAE,CAAA;QAC9E,CAAC;QAED,IAAI,kBAAkB,EAAE,KAAK,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,eAAe,GAAG,MAAM,qBAAqB,CACjD,kBAAkB,CAAC,KAAK,EACxB,OAAO,EACP,QAAQ,EACR,EAAE,EACF,IAAI,CACL,CAAA;gBAED,IAAI,eAAe,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACxC,OAAO;wBACL,UAAU,EAAE,eAAe,CAAC,MAAM;wBAClC,IAAI,EAAE,eAAe,CAAC,IAAI;qBAC3B,CAAA;gBACH,CAAC;gBAED,IAAI,GAAG,eAAe,CAAC,IAAI,IAAI,IAAI,CAAA;YACrC,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,OAAO;oBACL,UAAU,EAAE,GAAG;oBACf,IAAI,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE;iBAC5C,CAAA;YACH,CAAC;QACH,CAAC;QAED,IAAI,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QAE9C,IAAI,CAAC,IAAI;YACP,OAAO;gBACL,UAAU,EAAE,GAAG;gBACf,IAAI,EAAE;oBACJ,OAAO,EAAE,OAAO,EAAE,aAAa;iBAChC;aACF,CAAA;QAEH,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;YAC3C,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC1B,OAAO;oBACL,UAAU,EAAE,GAAG;oBACf,IAAI,EAAE;wBACJ,OAAO,EAAE,qBAAqB;qBAC/B;iBACF,CAAA;YACH,CAAC;QACH,CAAC;QAED,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,GAAI,IAAe,EAAE,EAAE,EAAE,CAAA;QAE3C,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QAExD,4CAA4C;QAC5C,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAA;QAC5C,CAAC;QAED,OAAO;YACL,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC;SACrE,CAAA;IACH,CAAC,CAAA;IAED,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA"}
1
+ {"version":3,"file":"patch.js","sourceRoot":"","sources":["../../src/requestHandlers/patch.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,7 @@ export const createPostRoutes = (queries, requestInterceptor, returnNullFields,
29
29
  }
30
30
  }
31
31
  if (id) {
32
- const item = await queries.getById(resource, id);
32
+ const item = await queries.getById({ resource, id });
33
33
  if (item)
34
34
  return {
35
35
  statusCode: 409,
@@ -38,7 +38,7 @@ export const createPostRoutes = (queries, requestInterceptor, returnNullFields,
38
38
  },
39
39
  };
40
40
  }
41
- const newItem = await queries.create(resource, id, body);
41
+ const newItem = await queries.create({ resource, id, item: body });
42
42
  // Broadcast to WebSocket clients if enabled
43
43
  if (broadcast) {
44
44
  broadcast(resource, 'CREATE', newItem);
@@ -1 +1 @@
1
- {"version":3,"file":"post.js","sourceRoot":"","sources":["../../src/requestHandlers/post.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAA;AAE5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAA;AAG7E,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAG7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE1C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,OAAgB,EAChB,kBAA6C,EAC7C,gBAAyB,EACzB,OAAoC,EACpC,SAAmC,EACnC,EAAE;IACF,MAAM,UAAU,GAAG,KAAK,EAAE,GAAgB,EAAE,EAAE;QAC5C,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,GAAG,CAAA;QACrD,IAAI,EAAE,IAAI,EAAE,GAAG,GAAG,CAAA;QAElB,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC1D,IAAI,gBAAgB,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YACvC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,gBAAgB,CAAC,YAAY,EAAE,EAAE,CAAA;QAC9E,CAAC;QAED,IAAI,kBAAkB,EAAE,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,eAAe,GAAG,MAAM,oBAAoB,CAChD,kBAAkB,CAAC,IAAI,EACvB,OAAO,EACP,QAAQ,EACR,EAAE,EACF,IAAI,CACL,CAAA;gBAED,IAAI,eAAe,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACxC,OAAO;wBACL,UAAU,EAAE,eAAe,CAAC,MAAM;wBAClC,IAAI,EAAE,eAAe,CAAC,IAAI;qBAC3B,CAAA;gBACH,CAAC;gBAED,IAAI,GAAG,eAAe,CAAC,IAAI,IAAI,IAAI,CAAA;YACrC,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,OAAO;oBACL,UAAU,EAAE,GAAG;oBACf,IAAI,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE;iBAC5C,CAAA;YACH,CAAC;QACH,CAAC;QAED,IAAI,EAAE,EAAE,CAAC;YACP,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;YAEhD,IAAI,IAAI;gBACN,OAAO;oBACL,UAAU,EAAE,GAAG;oBACf,IAAI,EAAE;wBACJ,OAAO,EAAE,OAAO,EAAE,kBAAkB;qBACrC;iBACF,CAAA;QACL,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAqB,CAAC,CAAA;QAEzE,4CAA4C;QAC5C,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;QACxC,CAAC;QAED,OAAO;YACL,OAAO,EAAE;gBACP,QAAQ,EAAE,MAAM,CAAC;oBACf,QAAQ,EAAE,QAAQ;oBAClB,IAAI,EAAE,IAAI;oBACV,QAAQ,EAAE,GAAG,QAAQ,IAAI,OAAO,CAAC,EAAE,EAAE;iBACtC,CAAC;aACH;YACD,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC;SAC7D,CAAA;IACH,CAAC,CAAA;IAED,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA"}
1
+ {"version":3,"file":"post.js","sourceRoot":"","sources":["../../src/requestHandlers/post.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAA;AAE5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAA;AAG7E,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAG7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE1C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,OAAgB,EAChB,kBAA6C,EAC7C,gBAAyB,EACzB,OAAoC,EACpC,SAAmC,EACnC,EAAE;IACF,MAAM,UAAU,GAAG,KAAK,EAAE,GAAgB,EAAE,EAAE;QAC5C,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,GAAG,CAAA;QACrD,IAAI,EAAE,IAAI,EAAE,GAAG,GAAG,CAAA;QAElB,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC1D,IAAI,gBAAgB,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YACvC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,gBAAgB,CAAC,YAAY,EAAE,EAAE,CAAA;QAC9E,CAAC;QAED,IAAI,kBAAkB,EAAE,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,eAAe,GAAG,MAAM,oBAAoB,CAChD,kBAAkB,CAAC,IAAI,EACvB,OAAO,EACP,QAAQ,EACR,EAAE,EACF,IAAI,CACL,CAAA;gBAED,IAAI,eAAe,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACxC,OAAO;wBACL,UAAU,EAAE,eAAe,CAAC,MAAM;wBAClC,IAAI,EAAE,eAAe,CAAC,IAAI;qBAC3B,CAAA;gBACH,CAAC;gBAED,IAAI,GAAG,eAAe,CAAC,IAAI,IAAI,IAAI,CAAA;YACrC,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,OAAO;oBACL,UAAU,EAAE,GAAG;oBACf,IAAI,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE;iBAC5C,CAAA;YACH,CAAC;QACH,CAAC;QAED,IAAI,EAAE,EAAE,CAAC;YACP,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;YAEpD,IAAI,IAAI;gBACN,OAAO;oBACL,UAAU,EAAE,GAAG;oBACf,IAAI,EAAE;wBACJ,OAAO,EAAE,OAAO,EAAE,kBAAkB;qBACrC;iBACF,CAAA;QACL,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,IAAqB,EAAE,CAAC,CAAA;QAEnF,4CAA4C;QAC5C,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;QACxC,CAAC;QAED,OAAO;YACL,OAAO,EAAE;gBACP,QAAQ,EAAE,MAAM,CAAC;oBACf,QAAQ,EAAE,QAAQ;oBAClB,IAAI,EAAE,IAAI;oBACV,QAAQ,EAAE,GAAG,QAAQ,IAAI,OAAO,CAAC,EAAE,EAAE;iBACtC,CAAC;aACH;YACD,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC;SAC7D,CAAA;IACH,CAAC,CAAA;IAED,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA"}
@@ -28,7 +28,7 @@ export const createPutRoutes = (queries, requestInterceptor, returnNullFields, s
28
28
  };
29
29
  }
30
30
  }
31
- let item = await queries.getById(resource, id);
31
+ let item = await queries.getById({ resource, id });
32
32
  if (!item)
33
33
  return {
34
34
  statusCode: 404,
@@ -48,7 +48,7 @@ export const createPutRoutes = (queries, requestInterceptor, returnNullFields, s
48
48
  }
49
49
  }
50
50
  item = { ...body, id };
51
- const replacedItem = await queries.replace(resource, item);
51
+ const replacedItem = await queries.replace({ resource, item });
52
52
  // Broadcast to WebSocket clients if enabled
53
53
  if (broadcast) {
54
54
  broadcast(resource, 'UPDATE', replacedItem);
@@ -1 +1 @@
1
- {"version":3,"file":"put.js","sourceRoot":"","sources":["../../src/requestHandlers/put.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAA;AAG5E,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAG7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE1C,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,OAAgB,EAChB,kBAA6C,EAC7C,gBAAyB,EACzB,OAA2C,EAC3C,YAAqB,EACrB,SAAmC,EACnC,EAAE;IACF,MAAM,SAAS,GAAG,KAAK,EAAE,GAAe,EAAE,EAAE;QAC1C,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,GAAG,CAAA;QACrC,IAAI,EAAE,IAAI,EAAE,GAAG,GAAG,CAAA;QAElB,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC5D,IAAI,gBAAgB,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YACvC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,gBAAgB,CAAC,YAAY,EAAE,EAAE,CAAA;QAC9E,CAAC;QAED,IAAI,kBAAkB,EAAE,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,eAAe,GAAG,MAAM,mBAAmB,CAC/C,kBAAkB,CAAC,GAAG,EACtB,OAAO,EACP,QAAQ,EACR,EAAE,EACF,IAAI,CACL,CAAA;gBAED,IAAI,eAAe,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACxC,OAAO;wBACL,UAAU,EAAE,eAAe,CAAC,MAAM;wBAClC,IAAI,EAAE,eAAe,CAAC,IAAI;qBAC3B,CAAA;gBACH,CAAC;gBAED,IAAI,GAAG,eAAe,CAAC,IAAI,IAAI,IAAI,CAAA;YACrC,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,OAAO;oBACL,UAAU,EAAE,GAAG;oBACf,IAAI,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE;iBAC5C,CAAA;YACH,CAAC;QACH,CAAC;QAED,IAAI,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QAE9C,IAAI,CAAC,IAAI;YACP,OAAO;gBACL,UAAU,EAAE,GAAG;gBACf,IAAI,EAAE;oBACJ,OAAO,EAAE,OAAO,EAAE,aAAa;iBAChC;aACF,CAAA;QAEH,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;YAC3C,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC1B,OAAO;oBACL,UAAU,EAAE,GAAG;oBACf,IAAI,EAAE;wBACJ,OAAO,EAAE,qBAAqB;qBAC/B;iBACF,CAAA;YACH,CAAC;QACH,CAAC;QAED,IAAI,GAAG,EAAE,GAAI,IAAe,EAAE,EAAE,EAAE,CAAA;QAElC,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QAE1D,4CAA4C;QAC5C,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAA;QAC7C,CAAC;QAED,OAAO;YACL,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC;SACvE,CAAA;IACH,CAAC,CAAA;IAED,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA"}
1
+ {"version":3,"file":"put.js","sourceRoot":"","sources":["../../src/requestHandlers/put.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAA;AAG5E,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAG7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE1C,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,OAAgB,EAChB,kBAA6C,EAC7C,gBAAyB,EACzB,OAA2C,EAC3C,YAAqB,EACrB,SAAmC,EACnC,EAAE;IACF,MAAM,SAAS,GAAG,KAAK,EAAE,GAAe,EAAE,EAAE;QAC1C,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,GAAG,CAAA;QACrC,IAAI,EAAE,IAAI,EAAE,GAAG,GAAG,CAAA;QAElB,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC5D,IAAI,gBAAgB,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YACvC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,gBAAgB,CAAC,YAAY,EAAE,EAAE,CAAA;QAC9E,CAAC;QAED,IAAI,kBAAkB,EAAE,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,eAAe,GAAG,MAAM,mBAAmB,CAC/C,kBAAkB,CAAC,GAAG,EACtB,OAAO,EACP,QAAQ,EACR,EAAE,EACF,IAAI,CACL,CAAA;gBAED,IAAI,eAAe,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACxC,OAAO;wBACL,UAAU,EAAE,eAAe,CAAC,MAAM;wBAClC,IAAI,EAAE,eAAe,CAAC,IAAI;qBAC3B,CAAA;gBACH,CAAC;gBAED,IAAI,GAAG,eAAe,CAAC,IAAI,IAAI,IAAI,CAAA;YACrC,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,OAAO;oBACL,UAAU,EAAE,GAAG;oBACf,IAAI,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE;iBAC5C,CAAA;YACH,CAAC;QACH,CAAC;QAED,IAAI,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;QAElD,IAAI,CAAC,IAAI;YACP,OAAO;gBACL,UAAU,EAAE,GAAG;gBACf,IAAI,EAAE;oBACJ,OAAO,EAAE,OAAO,EAAE,aAAa;iBAChC;aACF,CAAA;QAEH,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;YAC3C,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC1B,OAAO;oBACL,UAAU,EAAE,GAAG;oBACf,IAAI,EAAE;wBACJ,OAAO,EAAE,qBAAqB;qBAC/B;iBACF,CAAA;YACH,CAAC;QACH,CAAC;QAED,IAAI,GAAG,EAAE,GAAI,IAAe,EAAE,EAAE,EAAE,CAAA;QAElC,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;QAE9D,4CAA4C;QAC5C,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAA;QAC7C,CAAC;QAED,OAAO;YACL,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC;SACvE,CAAA;IACH,CAAC,CAAA;IAED,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import type { IncomingHttpHeaders } from 'http';
2
+ import type { Filter } from '../filtering/filter.js';
2
3
  export type Body = object | string | Buffer | null;
3
4
  export type UrlInfo = {
4
5
  resource: string | null;
@@ -14,6 +15,7 @@ export type RequestInfo = {
14
15
  headers: IncomingHttpHeaders;
15
16
  etag: string | null;
16
17
  ifNoneMatchEtag: string | null;
18
+ queryString: string | null;
17
19
  };
18
20
  export type TembaRequest = {
19
21
  headers: IncomingHttpHeaders;
@@ -23,6 +25,7 @@ export type GetRequest = TembaRequest & {
23
25
  id: string | null;
24
26
  method: 'get' | 'head';
25
27
  ifNoneMatchEtag: string | null;
28
+ filter: Filter | null | 'invalid';
26
29
  };
27
30
  export type PostRequest = TembaRequest & {
28
31
  body: Body;
@@ -39,5 +42,6 @@ export type PatchRequest = PutRequest;
39
42
  export type DeleteRequest = TembaRequest & {
40
43
  id: string | null;
41
44
  etag: string | null;
45
+ filter: Filter | null | 'invalid';
42
46
  };
43
47
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/requestHandlers/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAA;AAE/C,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;AAElD,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAA;IACjB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,mBAAmB,CAAA;IAC5B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;CAC/B,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,mBAAmB,CAAA;IAC5B,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG;IACtC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;IACjB,MAAM,EAAE,KAAK,GAAG,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;CAC/B,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG;IACvC,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG;IACtC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,IAAI,CAAA;IACV,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,CAAA;AAErC,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG;IACzC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;IACjB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/requestHandlers/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAA;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAEjD,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;AAElD,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAA;IACjB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,mBAAmB,CAAA;IAC5B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,mBAAmB,CAAA;IAC5B,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG;IACtC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;IACjB,MAAM,EAAE,KAAK,GAAG,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;CAClC,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG;IACvC,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG;IACtC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,IAAI,CAAA;IACV,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,CAAA;AAErC,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG;IACzC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;IACjB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;CAClC,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import type { IncomingHttpHeaders } from 'http';
2
2
  import type { Body } from '../requestHandlers/types.js';
3
- import type { InterceptedDeleteRequest, InterceptedGetRequest, InterceptedPostRequest, InterceptedPutRequest } from './types.js';
3
+ import type { InterceptedDeleteRequest, InterceptedGetRequest, InterceptedPostRequest, InterceptedPutRequest, NonResourceRequestType } from './types.js';
4
4
  export type InterceptResult = {
5
5
  type: 'continue';
6
6
  body?: Body;
@@ -10,6 +10,7 @@ export type InterceptResult = {
10
10
  body?: Body;
11
11
  };
12
12
  export declare const interceptGetRequest: (intercept: InterceptedGetRequest, headers: IncomingHttpHeaders, resource: string, id: string | null) => Promise<InterceptResult>;
13
+ export declare const interceptNonResourceGetRequest: (intercept: InterceptedGetRequest, headers: IncomingHttpHeaders, requestType: NonResourceRequestType) => Promise<InterceptResult>;
13
14
  export declare const interceptPostRequest: (intercept: InterceptedPostRequest, headers: IncomingHttpHeaders, resource: string, id: string | null, body: Body) => Promise<InterceptResult>;
14
15
  export declare const interceptPutRequest: (intercept: InterceptedPutRequest, headers: IncomingHttpHeaders, resource: string, id: string, body: Body) => Promise<InterceptResult>;
15
16
  export declare const interceptPatchRequest: (intercept: InterceptedPutRequest, headers: IncomingHttpHeaders, resource: string, id: string, body: Body) => Promise<InterceptResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"interceptRequest.d.ts","sourceRoot":"","sources":["../../src/requestInterceptor/interceptRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAA;AAE/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAOpD,OAAO,KAAK,EACV,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EAEtB,MAAM,SAAS,CAAA;AAGhB,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,CAAC,EAAE,IAAI,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,IAAI,CAAA;CAAE,CAAA;AAErD,eAAO,MAAM,mBAAmB,GAC9B,WAAW,qBAAqB,EAChC,SAAS,mBAAmB,EAC5B,UAAU,MAAM,EAChB,IAAI,MAAM,GAAG,IAAI,KAChB,OAAO,CAAC,eAAe,CAIzB,CAAA;AAED,eAAO,MAAM,oBAAoB,GAC/B,WAAW,sBAAsB,EACjC,SAAS,mBAAmB,EAC5B,UAAU,MAAM,EAChB,IAAI,MAAM,GAAG,IAAI,EACjB,MAAM,IAAI,KACT,OAAO,CAAC,eAAe,CAIzB,CAAA;AAED,eAAO,MAAM,mBAAmB,GAC9B,WAAW,qBAAqB,EAChC,SAAS,mBAAmB,EAC5B,UAAU,MAAM,EAChB,IAAI,MAAM,EACV,MAAM,IAAI,KACT,OAAO,CAAC,eAAe,CAIzB,CAAA;AAED,eAAO,MAAM,qBAAqB,cAXrB,qBAAqB,WACvB,mBAAmB,YAClB,MAAM,MACZ,MAAM,QACJ,IAAI,KACT,OAAO,CAAC,eAAe,CAM8B,CAAA;AAExD,eAAO,MAAM,sBAAsB,GACjC,WAAW,wBAAwB,EACnC,SAAS,mBAAmB,EAC5B,UAAU,MAAM,EAChB,IAAI,MAAM,GAAG,IAAI,KAChB,OAAO,CAAC,eAAe,CAIzB,CAAA"}
1
+ {"version":3,"file":"interceptRequest.d.ts","sourceRoot":"","sources":["../../src/requestInterceptor/interceptRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAA;AAE/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAQpD,OAAO,KAAK,EACV,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EAErB,sBAAsB,EACvB,MAAM,SAAS,CAAA;AAGhB,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,CAAC,EAAE,IAAI,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,IAAI,CAAA;CAAE,CAAA;AAErD,eAAO,MAAM,mBAAmB,GAC9B,WAAW,qBAAqB,EAChC,SAAS,mBAAmB,EAC5B,UAAU,MAAM,EAChB,IAAI,MAAM,GAAG,IAAI,KAChB,OAAO,CAAC,eAAe,CAIzB,CAAA;AAED,eAAO,MAAM,8BAA8B,GACzC,WAAW,qBAAqB,EAChC,SAAS,mBAAmB,EAC5B,aAAa,sBAAsB,KAClC,OAAO,CAAC,eAAe,CAIzB,CAAA;AAED,eAAO,MAAM,oBAAoB,GAC/B,WAAW,sBAAsB,EACjC,SAAS,mBAAmB,EAC5B,UAAU,MAAM,EAChB,IAAI,MAAM,GAAG,IAAI,EACjB,MAAM,IAAI,KACT,OAAO,CAAC,eAAe,CAIzB,CAAA;AAED,eAAO,MAAM,mBAAmB,GAC9B,WAAW,qBAAqB,EAChC,SAAS,mBAAmB,EAC5B,UAAU,MAAM,EAChB,IAAI,MAAM,EACV,MAAM,IAAI,KACT,OAAO,CAAC,eAAe,CAIzB,CAAA;AAED,eAAO,MAAM,qBAAqB,cAXrB,qBAAqB,WACvB,mBAAmB,YAClB,MAAM,MACZ,MAAM,QACJ,IAAI,KACT,OAAO,CAAC,eAAe,CAM8B,CAAA;AAExD,eAAO,MAAM,sBAAsB,GACjC,WAAW,wBAAwB,EACnC,SAAS,mBAAmB,EAC5B,UAAU,MAAM,EAChB,IAAI,MAAM,GAAG,IAAI,KAChB,OAAO,CAAC,eAAe,CAIzB,CAAA"}
@@ -1,23 +1,28 @@
1
- import { createActions, isInterceptorAction, isResponseAction, isSetRequestBodyAction, } from './interceptorActions.js';
1
+ import { createActions, createNonResourceActions, isInterceptorAction, isResponseAction, isSetRequestBodyAction, } from './interceptorActions.js';
2
2
  export const interceptGetRequest = async (intercept, headers, resource, id) => {
3
3
  const actions = createActions();
4
- const result = await intercept({ headers, resource, id }, actions);
4
+ const result = await intercept({ type: 'resource', headers, resource, id }, actions);
5
+ return processInterceptResult(result);
6
+ };
7
+ export const interceptNonResourceGetRequest = async (intercept, headers, requestType) => {
8
+ const actions = createNonResourceActions();
9
+ const result = await intercept({ type: requestType, headers }, actions);
5
10
  return processInterceptResult(result);
6
11
  };
7
12
  export const interceptPostRequest = async (intercept, headers, resource, id, body) => {
8
13
  const actions = createActions();
9
- const result = await intercept({ headers, resource, body, id }, actions);
14
+ const result = await intercept({ type: 'resource', headers, resource, body, id }, actions);
10
15
  return processInterceptResult(result, body);
11
16
  };
12
17
  export const interceptPutRequest = async (intercept, headers, resource, id, body) => {
13
18
  const actions = createActions();
14
- const result = await intercept({ headers, resource, id, body }, actions);
19
+ const result = await intercept({ type: 'resource', headers, resource, id, body }, actions);
15
20
  return processInterceptResult(result, body);
16
21
  };
17
22
  export const interceptPatchRequest = interceptPutRequest;
18
23
  export const interceptDeleteRequest = async (intercept, headers, resource, id) => {
19
24
  const actions = createActions();
20
- const result = await intercept({ headers, resource, id }, actions);
25
+ const result = await intercept({ type: 'resource', headers, resource, id }, actions);
21
26
  return processInterceptResult(result);
22
27
  };
23
28
  // Process the interceptor return value and convert to InterceptResult
@@ -35,10 +40,7 @@ const processInterceptResult = (intercepted, originalBody) => {
35
40
  return { type: 'response', status: intercepted.status, body: intercepted.body };
36
41
  }
37
42
  }
38
- // Legacy behavior removed - plain objects are no longer supported
39
- // If we get here, the return value is invalid (e.g., plain object, number, string, boolean, etc.)
40
- // We treat it as void and continue with the original body
41
- // Developers should use actions.setRequestBody() or actions.response() instead
43
+ // Any other return value is treated as void continue with the original body
42
44
  return { type: 'continue', body: originalBody };
43
45
  };
44
46
  //# sourceMappingURL=interceptRequest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interceptRequest.js","sourceRoot":"","sources":["../../src/requestInterceptor/interceptRequest.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,sBAAsB,CAAA;AAc7B,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,SAAgC,EAChC,OAA4B,EAC5B,QAAgB,EAChB,EAAiB,EACS,EAAE;IAC5B,MAAM,OAAO,GAAG,aAAa,EAAE,CAAA;IAC/B,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;IAClE,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAA;AACvC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACvC,SAAiC,EACjC,OAA4B,EAC5B,QAAgB,EAChB,EAAiB,EACjB,IAAU,EACgB,EAAE;IAC5B,MAAM,OAAO,GAAG,aAAa,EAAE,CAAA;IAC/B,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;IACxE,OAAO,sBAAsB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;AAC7C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,SAAgC,EAChC,OAA4B,EAC5B,QAAgB,EAChB,EAAU,EACV,IAAU,EACgB,EAAE;IAC5B,MAAM,OAAO,GAAG,aAAa,EAAE,CAAA;IAC/B,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,CAAA;IACxE,OAAO,sBAAsB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;AAC7C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,mBAAmB,CAAA;AAExD,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EACzC,SAAmC,EACnC,OAA4B,EAC5B,QAAgB,EAChB,EAAiB,EACS,EAAE;IAC5B,MAAM,OAAO,GAAG,aAAa,EAAE,CAAA;IAC/B,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;IAClE,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAA;AACvC,CAAC,CAAA;AAED,sEAAsE;AACtE,MAAM,sBAAsB,GAAG,CAC7B,WAAmC,EACnC,YAAmB,EACF,EAAE;IACnB,iDAAiD;IACjD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAA;IACjD,CAAC;IAED,4CAA4C;IAC5C,IAAI,mBAAmB,CAAC,WAAW,CAAC,EAAE,CAAC;QACrC,IAAI,sBAAsB,CAAC,WAAW,CAAC,EAAE,CAAC;YACxC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,CAAC,IAAY,EAAE,CAAA;QAC7D,CAAC;QAED,IAAI,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,IAAY,EAAE,CAAA;QACzF,CAAC;IACH,CAAC;IAED,kEAAkE;IAClE,kGAAkG;IAClG,0DAA0D;IAC1D,+EAA+E;IAC/E,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAA;AACjD,CAAC,CAAA"}
1
+ {"version":3,"file":"interceptRequest.js","sourceRoot":"","sources":["../../src/requestInterceptor/interceptRequest.ts"],"names":[],"mappings":"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"}
@@ -16,13 +16,21 @@ export type InterceptorAction = SetRequestBodyAction | ResponseAction;
16
16
  export declare const isInterceptorAction: (value: unknown) => value is InterceptorAction;
17
17
  export declare const isSetRequestBodyAction: (action: InterceptorAction) => action is SetRequestBodyAction;
18
18
  export declare const isResponseAction: (action: InterceptorAction) => action is ResponseAction;
19
- export type Actions = {
19
+ export type ResourceActions = {
20
20
  setRequestBody: (body: unknown) => SetRequestBodyAction;
21
21
  response: (options?: {
22
22
  body?: unknown;
23
23
  status?: number;
24
24
  }) => ResponseAction;
25
25
  };
26
- export declare const createActions: () => Actions;
26
+ export type NonResourceActions = {
27
+ response: (options?: {
28
+ body?: unknown;
29
+ status?: number;
30
+ }) => ResponseAction;
31
+ };
32
+ export type Actions = ResourceActions;
33
+ export declare const createActions: () => ResourceActions;
34
+ export declare const createNonResourceActions: () => NonResourceActions;
27
35
  export {};
28
36
  //# sourceMappingURL=interceptorActions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interceptorActions.d.ts","sourceRoot":"","sources":["../../src/requestInterceptor/interceptorActions.ts"],"names":[],"mappings":"AACA,QAAA,MAAM,yBAAyB,eAA8B,CAAA;AAG7D,KAAK,qBAAqB,GAAG;IAC3B,QAAQ,CAAC,CAAC,yBAAyB,CAAC,EAAE,IAAI,CAAA;IAC1C,QAAQ,CAAC,IAAI,EAAE,gBAAgB,GAAG,UAAU,CAAA;CAC7C,CAAA;AAGD,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAA;IAC/B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CACvB,GAAG,qBAAqB,CAAA;AAGzB,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB,GAAG,qBAAqB,CAAA;AAGzB,MAAM,MAAM,iBAAiB,GAAG,oBAAoB,GAAG,cAAc,CAAA;AAGrE,eAAO,MAAM,mBAAmB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,iBAO7D,CAAA;AAGD,eAAO,MAAM,sBAAsB,GACjC,QAAQ,iBAAiB,KACxB,MAAM,IAAI,oBAEZ,CAAA;AAGD,eAAO,MAAM,gBAAgB,GAAI,QAAQ,iBAAiB,KAAG,MAAM,IAAI,cAEtE,CAAA;AAsBD,MAAM,MAAM,OAAO,GAAG;IACpB,cAAc,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,oBAAoB,CAAA;IACvD,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,cAAc,CAAA;CAC5E,CAAA;AAGD,eAAO,MAAM,aAAa,QAAO,OAKhC,CAAA"}
1
+ {"version":3,"file":"interceptorActions.d.ts","sourceRoot":"","sources":["../../src/requestInterceptor/interceptorActions.ts"],"names":[],"mappings":"AACA,QAAA,MAAM,yBAAyB,eAA8B,CAAA;AAG7D,KAAK,qBAAqB,GAAG;IAC3B,QAAQ,CAAC,CAAC,yBAAyB,CAAC,EAAE,IAAI,CAAA;IAC1C,QAAQ,CAAC,IAAI,EAAE,gBAAgB,GAAG,UAAU,CAAA;CAC7C,CAAA;AAGD,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAA;IAC/B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CACvB,GAAG,qBAAqB,CAAA;AAGzB,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB,GAAG,qBAAqB,CAAA;AAGzB,MAAM,MAAM,iBAAiB,GAAG,oBAAoB,GAAG,cAAc,CAAA;AAGrE,eAAO,MAAM,mBAAmB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,iBAO7D,CAAA;AAGD,eAAO,MAAM,sBAAsB,GACjC,QAAQ,iBAAiB,KACxB,MAAM,IAAI,oBAEZ,CAAA;AAGD,eAAO,MAAM,gBAAgB,GAAI,QAAQ,iBAAiB,KAAG,MAAM,IAAI,cAEtE,CAAA;AAsBD,MAAM,MAAM,eAAe,GAAG;IAC5B,cAAc,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,oBAAoB,CAAA;IACvD,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,cAAc,CAAA;CAC5E,CAAA;AAGD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,cAAc,CAAA;CAC5E,CAAA;AAGD,MAAM,MAAM,OAAO,GAAG,eAAe,CAAA;AAGrC,eAAO,MAAM,aAAa,QAAO,eAKhC,CAAA;AAGD,eAAO,MAAM,wBAAwB,QAAO,kBAI3C,CAAA"}
@@ -32,11 +32,17 @@ const createResponseAction = (options) => {
32
32
  status: options?.status ?? 200,
33
33
  };
34
34
  };
35
- // Factory to create the actions object
35
+ // Factory to create the full resource actions object
36
36
  export const createActions = () => {
37
37
  return {
38
38
  setRequestBody: createSetRequestBodyAction,
39
39
  response: createResponseAction,
40
40
  };
41
41
  };
42
+ // Factory to create the non-resource actions object (response only)
43
+ export const createNonResourceActions = () => {
44
+ return {
45
+ response: createResponseAction,
46
+ };
47
+ };
42
48
  //# sourceMappingURL=interceptorActions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interceptorActions.js","sourceRoot":"","sources":["../../src/requestInterceptor/interceptorActions.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,MAAM,yBAAyB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAA;AAwB7D,0DAA0D;AAC1D,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAc,EAA8B,EAAE;IAChF,OAAO,CACL,CAAC,CAAC,KAAK;QACP,OAAO,KAAK,KAAK,QAAQ;QACzB,yBAAyB,IAAI,KAAK;QACjC,KAA2B,CAAC,yBAAyB,CAAC,KAAK,IAAI,CACjE,CAAA;AACH,CAAC,CAAA;AAED,sCAAsC;AACtC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,MAAyB,EACO,EAAE;IAClC,OAAO,MAAM,CAAC,IAAI,KAAK,gBAAgB,CAAA;AACzC,CAAC,CAAA;AAED,gCAAgC;AAChC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAyB,EAA4B,EAAE;IACtF,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU,CAAA;AACnC,CAAC,CAAA;AAED,oDAAoD;AACpD,MAAM,0BAA0B,GAAG,CAAC,IAAa,EAAwB,EAAE;IACzE,OAAO;QACL,CAAC,yBAAyB,CAAC,EAAE,IAAI;QACjC,IAAI,EAAE,gBAAgB;QACtB,IAAI;KACL,CAAA;AACH,CAAC,CAAA;AAED,8CAA8C;AAC9C,MAAM,oBAAoB,GAAG,CAAC,OAA6C,EAAkB,EAAE;IAC7F,OAAO;QACL,CAAC,yBAAyB,CAAC,EAAE,IAAI;QACjC,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,OAAO,EAAE,IAAI;QACnB,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG;KAC/B,CAAA;AACH,CAAC,CAAA;AAQD,uCAAuC;AACvC,MAAM,CAAC,MAAM,aAAa,GAAG,GAAY,EAAE;IACzC,OAAO;QACL,cAAc,EAAE,0BAA0B;QAC1C,QAAQ,EAAE,oBAAoB;KAC/B,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"interceptorActions.js","sourceRoot":"","sources":["../../src/requestInterceptor/interceptorActions.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,MAAM,yBAAyB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAA;AAwB7D,0DAA0D;AAC1D,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAc,EAA8B,EAAE;IAChF,OAAO,CACL,CAAC,CAAC,KAAK;QACP,OAAO,KAAK,KAAK,QAAQ;QACzB,yBAAyB,IAAI,KAAK;QACjC,KAA2B,CAAC,yBAAyB,CAAC,KAAK,IAAI,CACjE,CAAA;AACH,CAAC,CAAA;AAED,sCAAsC;AACtC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,MAAyB,EACO,EAAE;IAClC,OAAO,MAAM,CAAC,IAAI,KAAK,gBAAgB,CAAA;AACzC,CAAC,CAAA;AAED,gCAAgC;AAChC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAyB,EAA4B,EAAE;IACtF,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU,CAAA;AACnC,CAAC,CAAA;AAED,oDAAoD;AACpD,MAAM,0BAA0B,GAAG,CAAC,IAAa,EAAwB,EAAE;IACzE,OAAO;QACL,CAAC,yBAAyB,CAAC,EAAE,IAAI;QACjC,IAAI,EAAE,gBAAgB;QACtB,IAAI;KACL,CAAA;AACH,CAAC,CAAA;AAED,8CAA8C;AAC9C,MAAM,oBAAoB,GAAG,CAAC,OAA6C,EAAkB,EAAE;IAC7F,OAAO;QACL,CAAC,yBAAyB,CAAC,EAAE,IAAI;QACjC,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,OAAO,EAAE,IAAI;QACnB,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG;KAC/B,CAAA;AACH,CAAC,CAAA;AAgBD,qDAAqD;AACrD,MAAM,CAAC,MAAM,aAAa,GAAG,GAAoB,EAAE;IACjD,OAAO;QACL,cAAc,EAAE,0BAA0B;QAC1C,QAAQ,EAAE,oBAAoB;KAC/B,CAAA;AACH,CAAC,CAAA;AAED,oEAAoE;AACpE,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAuB,EAAE;IAC/D,OAAO;QACL,QAAQ,EAAE,oBAAoB;KAC/B,CAAA;AACH,CAAC,CAAA"}
@@ -1,30 +1,33 @@
1
1
  import type { IncomingHttpHeaders } from 'http';
2
2
  import type { Body } from '../requestHandlers/types.js';
3
3
  import type { MaybePromise } from '../types.js';
4
- import type { Actions, InterceptorAction } from './interceptorActions.js';
5
- type InterceptedResource = {
4
+ import type { InterceptorAction, NonResourceActions, ResourceActions } from './interceptorActions.js';
5
+ export type ResourceRequestType = 'resource';
6
+ export type NonResourceRequestType = 'root' | 'openapi' | 'static';
7
+ export type RequestType = ResourceRequestType | NonResourceRequestType;
8
+ type InterceptedNonResourceRequest = {
9
+ type: NonResourceRequestType;
6
10
  headers: IncomingHttpHeaders;
7
- resource: string;
8
11
  };
9
- type WithMaybeId = InterceptedResource & {
12
+ type InterceptedResourceRequest = {
13
+ type: ResourceRequestType;
14
+ headers: IncomingHttpHeaders;
15
+ resource: string;
10
16
  id: string | null;
11
17
  };
12
- type WithBody = InterceptedResource & {
18
+ type WithBody = InterceptedResourceRequest & {
13
19
  body: Body;
14
20
  };
15
- type WithIdAndBody = InterceptedResource & {
21
+ type WithIdAndBody = InterceptedResourceRequest & {
16
22
  id: string;
17
23
  body: Body;
18
24
  };
19
- type WithBodyAndMaybeId = WithBody & {
20
- id: string | null;
21
- };
22
25
  export type InterceptedReturnValue = void | InterceptorAction;
23
- export type InterceptedGetRequest = (request: WithMaybeId, actions: Actions) => MaybePromise<InterceptedReturnValue>;
24
- export type InterceptedPostRequest = (request: WithBodyAndMaybeId, actions: Actions) => MaybePromise<InterceptedReturnValue>;
25
- export type InterceptedPatchRequest = (request: WithIdAndBody, actions: Actions) => MaybePromise<InterceptedReturnValue>;
26
- export type InterceptedPutRequest = (request: WithIdAndBody, actions: Actions) => MaybePromise<InterceptedReturnValue>;
27
- export type InterceptedDeleteRequest = (request: WithMaybeId, actions: Actions) => MaybePromise<InterceptedReturnValue>;
26
+ export type InterceptedGetRequest = (request: InterceptedResourceRequest | InterceptedNonResourceRequest, actions: ResourceActions | NonResourceActions) => MaybePromise<InterceptedReturnValue>;
27
+ export type InterceptedPostRequest = (request: WithBody, actions: ResourceActions) => MaybePromise<InterceptedReturnValue>;
28
+ export type InterceptedPatchRequest = (request: WithIdAndBody, actions: ResourceActions) => MaybePromise<InterceptedReturnValue>;
29
+ export type InterceptedPutRequest = (request: WithIdAndBody, actions: ResourceActions) => MaybePromise<InterceptedReturnValue>;
30
+ export type InterceptedDeleteRequest = (request: InterceptedResourceRequest, actions: ResourceActions) => MaybePromise<InterceptedReturnValue>;
28
31
  export type RequestInterceptor = {
29
32
  get?: InterceptedGetRequest;
30
33
  post?: InterceptedPostRequest;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/requestInterceptor/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAA;AAC/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAEtE,KAAK,mBAAmB,GAAG;IACzB,OAAO,EAAE,mBAAmB,CAAA;IAC5B,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,KAAK,WAAW,GAAG,mBAAmB,GAAG;IACvC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;CAClB,CAAA;AAED,KAAK,QAAQ,GAAG,mBAAmB,GAAG;IACpC,IAAI,EAAE,IAAI,CAAA;CACX,CAAA;AAED,KAAK,aAAa,GAAG,mBAAmB,GAAG;IACzC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,IAAI,CAAA;CACX,CAAA;AAED,KAAK,kBAAkB,GAAG,QAAQ,GAAG;IACnC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG,IAAI,GAAG,iBAAiB,CAAA;AAE7D,MAAM,MAAM,qBAAqB,GAAG,CAClC,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,OAAO,KACb,YAAY,CAAC,sBAAsB,CAAC,CAAA;AACzC,MAAM,MAAM,sBAAsB,GAAG,CACnC,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,OAAO,KACb,YAAY,CAAC,sBAAsB,CAAC,CAAA;AACzC,MAAM,MAAM,uBAAuB,GAAG,CACpC,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,OAAO,KACb,YAAY,CAAC,sBAAsB,CAAC,CAAA;AACzC,MAAM,MAAM,qBAAqB,GAAG,CAClC,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,OAAO,KACb,YAAY,CAAC,sBAAsB,CAAC,CAAA;AACzC,MAAM,MAAM,wBAAwB,GAAG,CACrC,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,OAAO,KACb,YAAY,CAAC,sBAAsB,CAAC,CAAA;AAEzC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,CAAC,EAAE,qBAAqB,CAAA;IAC3B,IAAI,CAAC,EAAE,sBAAsB,CAAA;IAC7B,KAAK,CAAC,EAAE,uBAAuB,CAAA;IAC/B,GAAG,CAAC,EAAE,qBAAqB,CAAA;IAC3B,MAAM,CAAC,EAAE,wBAAwB,CAAA;CAClC,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/requestInterceptor/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAA;AAC/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAGlG,MAAM,MAAM,mBAAmB,GAAG,UAAU,CAAA;AAC5C,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAA;AAClE,MAAM,MAAM,WAAW,GAAG,mBAAmB,GAAG,sBAAsB,CAAA;AAGtE,KAAK,6BAA6B,GAAG;IACnC,IAAI,EAAE,sBAAsB,CAAA;IAC5B,OAAO,EAAE,mBAAmB,CAAA;CAC7B,CAAA;AAGD,KAAK,0BAA0B,GAAG;IAChC,IAAI,EAAE,mBAAmB,CAAA;IACzB,OAAO,EAAE,mBAAmB,CAAA;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;CAClB,CAAA;AAED,KAAK,QAAQ,GAAG,0BAA0B,GAAG;IAC3C,IAAI,EAAE,IAAI,CAAA;CACX,CAAA;AAED,KAAK,aAAa,GAAG,0BAA0B,GAAG;IAChD,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,IAAI,CAAA;CACX,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG,IAAI,GAAG,iBAAiB,CAAA;AAG7D,MAAM,MAAM,qBAAqB,GAAG,CAClC,OAAO,EAAE,0BAA0B,GAAG,6BAA6B,EACnE,OAAO,EAAE,eAAe,GAAG,kBAAkB,KAC1C,YAAY,CAAC,sBAAsB,CAAC,CAAA;AAGzC,MAAM,MAAM,sBAAsB,GAAG,CACnC,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,eAAe,KACrB,YAAY,CAAC,sBAAsB,CAAC,CAAA;AAGzC,MAAM,MAAM,uBAAuB,GAAG,CACpC,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,eAAe,KACrB,YAAY,CAAC,sBAAsB,CAAC,CAAA;AAGzC,MAAM,MAAM,qBAAqB,GAAG,CAClC,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,eAAe,KACrB,YAAY,CAAC,sBAAsB,CAAC,CAAA;AAGzC,MAAM,MAAM,wBAAwB,GAAG,CACrC,OAAO,EAAE,0BAA0B,EACnC,OAAO,EAAE,eAAe,KACrB,YAAY,CAAC,sBAAsB,CAAC,CAAA;AAEzC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,CAAC,EAAE,qBAAqB,CAAA;IAC3B,IAAI,CAAC,EAAE,sBAAsB,CAAA;IAC7B,KAAK,CAAC,EAAE,uBAAuB,CAAA;IAC/B,GAAG,CAAC,EAAE,qBAAqB,CAAA;IAC3B,MAAM,CAAC,EAAE,wBAAwB,CAAA;CAClC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"resourceHandler.d.ts","sourceRoot":"","sources":["../src/resourceHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAY3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAErD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAuE9D,eAAO,MAAM,qBAAqB,GAChC,SAAS,OAAO,EAChB,SAAS,eAAe,EACxB,QAAQ,MAAM,EACd,WAAW,iBAAiB,GAAG,IAAI,mBAuKtB,eAAe,OAAO,cAAc,CAAC,eAAe,CAAC,+BAOnE,CAAA"}
1
+ {"version":3,"file":"resourceHandler.d.ts","sourceRoot":"","sources":["../src/resourceHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;AAE3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAc3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAErD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAgG9D,eAAO,MAAM,qBAAqB,GAChC,SAAS,OAAO,EAChB,SAAS,eAAe,EACxB,QAAQ,MAAM,EACd,WAAW,iBAAiB,GAAG,IAAI,mBA6KtB,eAAe,OAAO,cAAc,CAAC,eAAe,CAAC,+BAOnE,CAAA"}
@@ -1,3 +1,6 @@
1
+ import { parse } from 'url';
2
+ import { prepareFilter, validateFilter } from './filtering/filter.js';
3
+ import { parseQueryString } from './queryStrings/parseQueryString.js';
1
4
  import { getRequestHandler } from './requestHandlers/index.js';
2
5
  import { sendErrorResponse, sendResponse } from './responseHandler.js';
3
6
  import { parseUrl } from './urls/urlParser.js';
@@ -15,6 +18,31 @@ const validateIdInRequestBodyNotAllowed = (requestInfo) => {
15
18
  ? createError(400, 'An id is not allowed in the request body')
16
19
  : requestInfo;
17
20
  };
21
+ const hasMalformedBrackets = (queryString) => {
22
+ let depth = 0;
23
+ for (const char of queryString) {
24
+ if (char === '[')
25
+ depth++;
26
+ else if (char === ']')
27
+ depth--;
28
+ if (depth < 0)
29
+ return true;
30
+ }
31
+ return depth !== 0;
32
+ };
33
+ const getFilter = (queryString) => {
34
+ if (!queryString)
35
+ return null;
36
+ if (hasMalformedBrackets(queryString))
37
+ return 'invalid';
38
+ const parsedQueryString = parseQueryString(queryString);
39
+ const result = validateFilter(parsedQueryString);
40
+ if (result === 'valid')
41
+ return prepareFilter(parsedQueryString);
42
+ if (result === 'invalid')
43
+ return 'invalid';
44
+ return null;
45
+ };
18
46
  const convertToGetRequest = (requestInfo) => {
19
47
  return {
20
48
  headers: requestInfo.headers,
@@ -22,6 +50,7 @@ const convertToGetRequest = (requestInfo) => {
22
50
  resource: requestInfo.resource,
23
51
  method: requestInfo.method.toUpperCase() === 'HEAD' ? 'head' : 'get',
24
52
  ifNoneMatchEtag: requestInfo.ifNoneMatchEtag,
53
+ filter: getFilter(requestInfo.queryString),
25
54
  };
26
55
  };
27
56
  const convertToPostRequest = (requestInfo) => {
@@ -50,6 +79,7 @@ const convertToDeleteRequest = (requestInfo) => {
50
79
  id: requestInfo.id,
51
80
  resource: requestInfo.resource,
52
81
  etag: requestInfo.etag ?? null,
82
+ filter: getFilter(requestInfo.queryString),
53
83
  };
54
84
  };
55
85
  export const createResourceHandler = async (queries, schemas, config, broadcast) => {
@@ -78,6 +108,10 @@ export const createResourceHandler = async (queries, schemas, config, broadcast)
78
108
  .on('error', (err) => reject(err));
79
109
  });
80
110
  };
111
+ const getQueryString = (req) => {
112
+ const parsedUrl = parse(req.url || '', true);
113
+ return parsedUrl.search || null;
114
+ };
81
115
  const parseRequest = async (req) => {
82
116
  const urlInfo = getUrlInfo(req.url ?? '');
83
117
  // Due to how routing is setup this situation can not happen,
@@ -98,6 +132,7 @@ export const createResourceHandler = async (queries, schemas, config, broadcast)
98
132
  headers: req.headers,
99
133
  etag: req.headers['if-match'] ?? null,
100
134
  ifNoneMatchEtag: req.headers['if-none-match'] ?? null,
135
+ queryString: getQueryString(req),
101
136
  };
102
137
  };
103
138
  const validateResource = (requestInfo) => {