temba 0.46.1 → 0.49.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 (63) hide show
  1. package/README.md +1 -1
  2. package/config/index.d.ts.map +1 -1
  3. package/config/index.js +6 -3
  4. package/config/index.js.map +1 -1
  5. package/etags/etags.js +1 -1
  6. package/etags/etags.js.map +1 -1
  7. package/index.d.ts +1 -3
  8. package/index.d.ts.map +1 -1
  9. package/index.js +4 -5
  10. package/index.js.map +1 -1
  11. package/package.json +1 -1
  12. package/requestHandlers/delete.d.ts +3 -0
  13. package/requestHandlers/delete.d.ts.map +1 -1
  14. package/requestHandlers/delete.js +49 -48
  15. package/requestHandlers/delete.js.map +1 -1
  16. package/requestHandlers/get.d.ts +3 -4
  17. package/requestHandlers/get.d.ts.map +1 -1
  18. package/requestHandlers/get.js +38 -37
  19. package/requestHandlers/get.js.map +1 -1
  20. package/requestHandlers/index.d.ts +13 -11
  21. package/requestHandlers/index.d.ts.map +1 -1
  22. package/requestHandlers/index.js +16 -5
  23. package/requestHandlers/index.js.map +1 -1
  24. package/requestHandlers/patch.d.ts +1 -3
  25. package/requestHandlers/patch.d.ts.map +1 -1
  26. package/requestHandlers/patch.js +39 -38
  27. package/requestHandlers/patch.js.map +1 -1
  28. package/requestHandlers/post.d.ts +4 -0
  29. package/requestHandlers/post.d.ts.map +1 -1
  30. package/requestHandlers/post.js +39 -38
  31. package/requestHandlers/post.js.map +1 -1
  32. package/requestHandlers/put.d.ts +1 -3
  33. package/requestHandlers/put.d.ts.map +1 -1
  34. package/requestHandlers/put.js +39 -38
  35. package/requestHandlers/put.js.map +1 -1
  36. package/requestInterceptor/interceptRequest.d.ts +13 -5
  37. package/requestInterceptor/interceptRequest.d.ts.map +1 -1
  38. package/requestInterceptor/interceptRequest.js +33 -15
  39. package/requestInterceptor/interceptRequest.js.map +1 -1
  40. package/requestInterceptor/interceptorActions.d.ts +28 -0
  41. package/requestInterceptor/interceptorActions.d.ts.map +1 -0
  42. package/requestInterceptor/interceptorActions.js +42 -0
  43. package/requestInterceptor/interceptorActions.js.map +1 -0
  44. package/requestInterceptor/types.d.ts +8 -7
  45. package/requestInterceptor/types.d.ts.map +1 -1
  46. package/responseBodyInterceptor/interceptResponseBody.d.ts +1 -1
  47. package/responseBodyInterceptor/interceptResponseBody.d.ts.map +1 -1
  48. package/responseBodyInterceptor/interceptResponseBody.js +2 -2
  49. package/responseBodyInterceptor/interceptResponseBody.js.map +1 -1
  50. package/responseBodyInterceptor/types.d.ts +2 -1
  51. package/responseBodyInterceptor/types.d.ts.map +1 -1
  52. package/types.d.ts +2 -0
  53. package/types.d.ts.map +1 -0
  54. package/types.js +3 -0
  55. package/types.js.map +1 -0
  56. package/urls/urlParser.d.ts.map +1 -1
  57. package/urls/urlParser.js +2 -1
  58. package/urls/urlParser.js.map +1 -1
  59. package/version.js +1 -1
  60. package/requestInterceptor/TembaError.d.ts +0 -5
  61. package/requestInterceptor/TembaError.d.ts.map +0 -1
  62. package/requestInterceptor/TembaError.js +0 -9
  63. package/requestInterceptor/TembaError.js.map +0 -1
@@ -1,57 +1,58 @@
1
1
  import { interceptPatchRequest } from '../requestInterceptor/interceptRequest.js';
2
2
  import { validate } from '../schema/validate.js';
3
3
  import { removeNullFields } from './utils.js';
4
- import { TembaError } from '../requestInterceptor/TembaError.js';
5
4
  import { etag } from '../etags/etags.js';
6
5
  export const createPatchRoutes = (queries, requestInterceptor, returnNullFields, schemas, etagsEnabled) => {
7
6
  const handlePatch = async (req) => {
8
- try {
9
- const { headers, body, resource, id } = req;
10
- const validationResult = validate(body, schemas?.[resource]);
11
- if (validationResult.isValid === false) {
12
- return { statusCode: 400, body: { message: validationResult.errorMessage } };
13
- }
14
- let body2 = body;
15
- if (requestInterceptor?.patch) {
16
- try {
17
- body2 = await interceptPatchRequest(requestInterceptor.patch, headers, resource, id, body);
18
- }
19
- catch (error) {
7
+ const { headers, resource, id } = req;
8
+ let { body } = req;
9
+ const validationResult = validate(body, schemas?.[resource]);
10
+ if (validationResult.isValid === false) {
11
+ return { statusCode: 400, body: { message: validationResult.errorMessage } };
12
+ }
13
+ if (requestInterceptor?.patch) {
14
+ try {
15
+ const interceptResult = await interceptPatchRequest(requestInterceptor.patch, headers, resource, id, body);
16
+ if (interceptResult.type === 'response') {
20
17
  return {
21
- statusCode: error instanceof TembaError ? error.statusCode : 500,
22
- body: { message: error.message },
18
+ statusCode: interceptResult.status,
19
+ body: interceptResult.body,
23
20
  };
24
21
  }
22
+ body = interceptResult.body ?? body;
25
23
  }
26
- let item = await queries.getById(resource, id);
27
- if (!item)
24
+ catch (error) {
28
25
  return {
29
- statusCode: 404,
30
- body: {
31
- message: `ID '${id}' not found`,
32
- },
26
+ statusCode: 500,
27
+ body: { message: error.message },
33
28
  };
34
- if (etagsEnabled) {
35
- const itemEtag = etag(JSON.stringify(item));
36
- if (req.etag !== itemEtag) {
37
- return {
38
- statusCode: 412,
39
- body: {
40
- message: 'Precondition failed',
41
- },
42
- };
43
- }
44
29
  }
45
- item = { ...item, ...body2, id };
46
- const updatedItem = await queries.update(resource, item);
30
+ }
31
+ let item = await queries.getById(resource, id);
32
+ if (!item)
47
33
  return {
48
- statusCode: 200,
49
- body: returnNullFields ? updatedItem : removeNullFields(updatedItem),
34
+ statusCode: 404,
35
+ body: {
36
+ message: `ID '${id}' not found`,
37
+ },
50
38
  };
39
+ if (etagsEnabled) {
40
+ const itemEtag = etag(JSON.stringify(item));
41
+ if (req.etag !== itemEtag) {
42
+ return {
43
+ statusCode: 412,
44
+ body: {
45
+ message: 'Precondition failed',
46
+ },
47
+ };
48
+ }
51
49
  }
52
- catch (error) {
53
- return { statusCode: 500, body: { message: error.message } };
54
- }
50
+ item = { ...item, ...body, id };
51
+ const updatedItem = await queries.update(resource, item);
52
+ return {
53
+ statusCode: 200,
54
+ body: returnNullFields ? updatedItem : removeNullFields(updatedItem),
55
+ };
55
56
  };
56
57
  return handlePatch;
57
58
  };
@@ -1 +1 @@
1
- {"version":3,"file":"patch.js","sourceRoot":"","sources":["../../../src/requestHandlers/patch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAA;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAK1C,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAErC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,OAAgB,EAChB,kBAA6C,EAC7C,gBAAyB,EACzB,OAA2C,EAC3C,YAAqB,EACrB,EAAE;IACF,MAAM,WAAW,GAAG,KAAK,EAAE,GAAiB,EAAE,EAAE;QAC9C,IAAI,CAAC;YACH,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,GAAG,CAAA;YAE3C,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;YAC5D,IAAI,gBAAgB,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;gBACvC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,gBAAgB,CAAC,YAAY,EAAE,EAAE,CAAA;YAC9E,CAAC;YAED,IAAI,KAAK,GAAG,IAAI,CAAA;YAChB,IAAI,kBAAkB,EAAE,KAAK,EAAE,CAAC;gBAC9B,IAAI,CAAC;oBACH,KAAK,GAAG,MAAM,qBAAqB,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;gBAC5F,CAAC;gBAAC,OAAO,KAAc,EAAE,CAAC;oBACxB,OAAO;wBACL,UAAU,EAAE,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG;wBAChE,IAAI,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE;qBAC5C,CAAA;gBACH,CAAC;YACH,CAAC;YAED,IAAI,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;YAE9C,IAAI,CAAC,IAAI;gBACP,OAAO;oBACL,UAAU,EAAE,GAAG;oBACf,IAAI,EAAE;wBACJ,OAAO,EAAE,OAAO,EAAE,aAAa;qBAChC;iBACF,CAAA;YAEH,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;gBAC3C,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC1B,OAAO;wBACL,UAAU,EAAE,GAAG;wBACf,IAAI,EAAE;4BACJ,OAAO,EAAE,qBAAqB;yBAC/B;qBACF,CAAA;gBACH,CAAC;YACH,CAAC;YAED,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,GAAI,KAAgB,EAAE,EAAE,EAAE,CAAA;YAE5C,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;YAExD,OAAO;gBACL,UAAU,EAAE,GAAG;gBACf,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC;aACrE,CAAA;QACH,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE,EAAE,CAAA;QACzE,CAAC;IACH,CAAC,CAAA;IAED,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA"}
1
+ {"version":3,"file":"patch.js","sourceRoot":"","sources":["../../../src/requestHandlers/patch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAA;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAK1C,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAErC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,OAAgB,EAChB,kBAA6C,EAC7C,gBAAyB,EACzB,OAA2C,EAC3C,YAAqB,EACrB,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,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"}
@@ -8,6 +8,10 @@ export declare const createPostRoutes: (queries: Queries, requestInterceptor: Re
8
8
  message: string;
9
9
  };
10
10
  headers?: undefined;
11
+ } | {
12
+ statusCode: number;
13
+ body: import("./types.js").Body | undefined;
14
+ headers?: undefined;
11
15
  } | {
12
16
  headers: {
13
17
  Location: string;
@@ -1 +1 @@
1
- {"version":3,"file":"post.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/post.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,KAAK,EAAiB,OAAO,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAGrE,eAAO,MAAM,gBAAgB,GAC3B,SAAS,OAAO,EAChB,oBAAoB,kBAAkB,GAAG,IAAI,EAC7C,kBAAkB,OAAO,EACzB,SAAS,2BAA2B,WAEL,WAAW;;;;;;;;;;;;;;EAoD3C,CAAA"}
1
+ {"version":3,"file":"post.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/post.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,KAAK,EAAiB,OAAO,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAErE,eAAO,MAAM,gBAAgB,GAC3B,SAAS,OAAO,EAChB,oBAAoB,kBAAkB,GAAG,IAAI,EAC7C,kBAAkB,OAAO,EACzB,SAAS,2BAA2B,WAEL,WAAW;;;;;;;;;;;;;;;;;;EA+D3C,CAAA"}
@@ -2,53 +2,54 @@ import { format } from 'url';
2
2
  import { interceptPostRequest } from '../requestInterceptor/interceptRequest.js';
3
3
  import { removeNullFields } from './utils.js';
4
4
  import { validate } from '../schema/validate.js';
5
- import { TembaError } from '../requestInterceptor/TembaError.js';
6
5
  export const createPostRoutes = (queries, requestInterceptor, returnNullFields, schemas) => {
7
6
  const handlePost = async (req) => {
8
- try {
9
- const { headers, body, protocol, host, resource, id } = req;
10
- const validationResult = validate(body, schemas[resource]);
11
- if (validationResult.isValid === false) {
12
- return { statusCode: 400, body: { message: validationResult.errorMessage } };
13
- }
14
- let body2 = body;
15
- if (requestInterceptor?.post) {
16
- try {
17
- body2 = await interceptPostRequest(requestInterceptor.post, headers, resource, id, body);
18
- }
19
- catch (error) {
7
+ const { headers, protocol, host, resource, id } = req;
8
+ let { body } = req;
9
+ const validationResult = validate(body, schemas[resource]);
10
+ if (validationResult.isValid === false) {
11
+ return { statusCode: 400, body: { message: validationResult.errorMessage } };
12
+ }
13
+ if (requestInterceptor?.post) {
14
+ try {
15
+ const interceptResult = await interceptPostRequest(requestInterceptor.post, headers, resource, id, body);
16
+ if (interceptResult.type === 'response') {
20
17
  return {
21
- statusCode: error instanceof TembaError ? error.statusCode : 500,
22
- body: { message: error.message },
18
+ statusCode: interceptResult.status,
19
+ body: interceptResult.body,
23
20
  };
24
21
  }
22
+ body = interceptResult.body ?? body;
25
23
  }
26
- if (id) {
27
- const item = await queries.getById(resource, id);
28
- if (item)
29
- return {
30
- statusCode: 409,
31
- body: {
32
- message: `ID '${id}' already exists`,
33
- },
34
- };
24
+ catch (error) {
25
+ return {
26
+ statusCode: 500,
27
+ body: { message: error.message },
28
+ };
35
29
  }
36
- const newItem = await queries.create(resource, id, body2);
37
- return {
38
- headers: {
39
- Location: format({
40
- protocol: protocol,
41
- host: host,
42
- pathname: `${resource}/${newItem.id}`,
43
- }),
44
- },
45
- statusCode: 201,
46
- body: returnNullFields ? newItem : removeNullFields(newItem),
47
- };
48
30
  }
49
- catch (error) {
50
- return { statusCode: 500, body: { message: error.message } };
31
+ if (id) {
32
+ const item = await queries.getById(resource, id);
33
+ if (item)
34
+ return {
35
+ statusCode: 409,
36
+ body: {
37
+ message: `ID '${id}' already exists`,
38
+ },
39
+ };
51
40
  }
41
+ const newItem = await queries.create(resource, id, body);
42
+ return {
43
+ headers: {
44
+ Location: format({
45
+ protocol: protocol,
46
+ host: host,
47
+ pathname: `${resource}/${newItem.id}`,
48
+ }),
49
+ },
50
+ statusCode: 201,
51
+ body: returnNullFields ? newItem : removeNullFields(newItem),
52
+ };
52
53
  };
53
54
  return handlePost;
54
55
  };
@@ -1 +1 @@
1
- {"version":3,"file":"post.js","sourceRoot":"","sources":["../../../src/requestHandlers/post.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAA;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAK7C,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAE7D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,OAAgB,EAChB,kBAA6C,EAC7C,gBAAyB,EACzB,OAAoC,EACpC,EAAE;IACF,MAAM,UAAU,GAAG,KAAK,EAAE,GAAgB,EAAE,EAAE;QAC5C,IAAI,CAAC;YACH,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,GAAG,CAAA;YAE3D,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;YAC1D,IAAI,gBAAgB,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;gBACvC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,gBAAgB,CAAC,YAAY,EAAE,EAAE,CAAA;YAC9E,CAAC;YAED,IAAI,KAAK,GAAG,IAAI,CAAA;YAChB,IAAI,kBAAkB,EAAE,IAAI,EAAE,CAAC;gBAC7B,IAAI,CAAC;oBACH,KAAK,GAAG,MAAM,oBAAoB,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;gBAC1F,CAAC;gBAAC,OAAO,KAAc,EAAE,CAAC;oBACxB,OAAO;wBACL,UAAU,EAAE,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG;wBAChE,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;gBAEhD,IAAI,IAAI;oBACN,OAAO;wBACL,UAAU,EAAE,GAAG;wBACf,IAAI,EAAE;4BACJ,OAAO,EAAE,OAAO,EAAE,kBAAkB;yBACrC;qBACF,CAAA;YACL,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAE,KAAsB,CAAC,CAAA;YAE1E,OAAO;gBACL,OAAO,EAAE;oBACP,QAAQ,EAAE,MAAM,CAAC;wBACf,QAAQ,EAAE,QAAQ;wBAClB,IAAI,EAAE,IAAI;wBACV,QAAQ,EAAE,GAAG,QAAQ,IAAI,OAAO,CAAC,EAAE,EAAE;qBACtC,CAAC;iBACH;gBACD,UAAU,EAAE,GAAG;gBACf,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC;aAC7D,CAAA;QACH,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE,EAAE,CAAA;QACzE,CAAC;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;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAA;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAM7C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,OAAgB,EAChB,kBAA6C,EAC7C,gBAAyB,EACzB,OAAoC,EACpC,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,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"}
@@ -9,8 +9,6 @@ export declare const createPutRoutes: (queries: Queries, requestInterceptor: Req
9
9
  };
10
10
  } | {
11
11
  statusCode: number;
12
- body: string | {
13
- [k: string]: any;
14
- } | null;
12
+ body: import("./types.js").Body | undefined;
15
13
  }>;
16
14
  //# sourceMappingURL=put.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"put.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/put.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAIrE,eAAO,MAAM,eAAe,GAC1B,SAAS,OAAO,EAChB,oBAAoB,kBAAkB,GAAG,IAAI,EAC7C,kBAAkB,OAAO,EACzB,SAAS,2BAA2B,GAAG,IAAI,EAC3C,cAAc,OAAO,WAES,UAAU;;;;;;;;;;EAyDzC,CAAA"}
1
+ {"version":3,"file":"put.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/put.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAGrE,eAAO,MAAM,eAAe,GAC1B,SAAS,OAAO,EAChB,oBAAoB,kBAAkB,GAAG,IAAI,EAC7C,kBAAkB,OAAO,EACzB,SAAS,2BAA2B,GAAG,IAAI,EAC3C,cAAc,OAAO,WAES,UAAU;;;;;;;;EAoEzC,CAAA"}
@@ -1,57 +1,58 @@
1
1
  import { interceptPutRequest } from '../requestInterceptor/interceptRequest.js';
2
2
  import { validate } from '../schema/validate.js';
3
3
  import { removeNullFields } from './utils.js';
4
- import { TembaError } from '../requestInterceptor/TembaError.js';
5
4
  import { etag } from '../etags/etags.js';
6
5
  export const createPutRoutes = (queries, requestInterceptor, returnNullFields, schemas, etagsEnabled) => {
7
6
  const handlePut = async (req) => {
8
- try {
9
- const { headers, body, resource, id } = req;
10
- const validationResult = validate(body, schemas?.[resource]);
11
- if (validationResult.isValid === false) {
12
- return { statusCode: 400, body: { message: validationResult.errorMessage } };
13
- }
14
- let body2 = body;
15
- if (requestInterceptor?.put) {
16
- try {
17
- body2 = await interceptPutRequest(requestInterceptor.put, headers, resource, id, body);
18
- }
19
- catch (error) {
7
+ const { headers, resource, id } = req;
8
+ let { body } = req;
9
+ const validationResult = validate(body, schemas?.[resource]);
10
+ if (validationResult.isValid === false) {
11
+ return { statusCode: 400, body: { message: validationResult.errorMessage } };
12
+ }
13
+ if (requestInterceptor?.put) {
14
+ try {
15
+ const interceptResult = await interceptPutRequest(requestInterceptor.put, headers, resource, id, body);
16
+ if (interceptResult.type === 'response') {
20
17
  return {
21
- statusCode: error instanceof TembaError ? error.statusCode : 500,
22
- body: { message: error.message },
18
+ statusCode: interceptResult.status,
19
+ body: interceptResult.body,
23
20
  };
24
21
  }
22
+ body = interceptResult.body ?? body;
25
23
  }
26
- let item = await queries.getById(resource, id);
27
- if (!item)
24
+ catch (error) {
28
25
  return {
29
- statusCode: 404,
30
- body: {
31
- message: `ID '${id}' not found`,
32
- },
26
+ statusCode: 500,
27
+ body: { message: error.message },
33
28
  };
34
- if (etagsEnabled) {
35
- const itemEtag = etag(JSON.stringify(item));
36
- if (req.etag !== itemEtag) {
37
- return {
38
- statusCode: 412,
39
- body: {
40
- message: 'Precondition failed',
41
- },
42
- };
43
- }
44
29
  }
45
- item = { ...body2, id };
46
- const replacedItem = await queries.replace(resource, item);
30
+ }
31
+ let item = await queries.getById(resource, id);
32
+ if (!item)
47
33
  return {
48
- statusCode: 200,
49
- body: returnNullFields ? replacedItem : removeNullFields(replacedItem),
34
+ statusCode: 404,
35
+ body: {
36
+ message: `ID '${id}' not found`,
37
+ },
50
38
  };
39
+ if (etagsEnabled) {
40
+ const itemEtag = etag(JSON.stringify(item));
41
+ if (req.etag !== itemEtag) {
42
+ return {
43
+ statusCode: 412,
44
+ body: {
45
+ message: 'Precondition failed',
46
+ },
47
+ };
48
+ }
51
49
  }
52
- catch (error) {
53
- return { statusCode: 500, body: { message: error.message } };
54
- }
50
+ item = { ...body, id };
51
+ const replacedItem = await queries.replace(resource, item);
52
+ return {
53
+ statusCode: 200,
54
+ body: returnNullFields ? replacedItem : removeNullFields(replacedItem),
55
+ };
55
56
  };
56
57
  return handlePut;
57
58
  };
@@ -1 +1 @@
1
- {"version":3,"file":"put.js","sourceRoot":"","sources":["../../../src/requestHandlers/put.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAA;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAK1C,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAErC,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,OAAgB,EAChB,kBAA6C,EAC7C,gBAAyB,EACzB,OAA2C,EAC3C,YAAqB,EACrB,EAAE;IACF,MAAM,SAAS,GAAG,KAAK,EAAE,GAAe,EAAE,EAAE;QAC1C,IAAI,CAAC;YACH,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,GAAG,CAAA;YAE3C,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;YAC5D,IAAI,gBAAgB,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;gBACvC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,gBAAgB,CAAC,YAAY,EAAE,EAAE,CAAA;YAC9E,CAAC;YAED,IAAI,KAAK,GAAG,IAAI,CAAA;YAChB,IAAI,kBAAkB,EAAE,GAAG,EAAE,CAAC;gBAC5B,IAAI,CAAC;oBACH,KAAK,GAAG,MAAM,mBAAmB,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;gBACxF,CAAC;gBAAC,OAAO,KAAc,EAAE,CAAC;oBACxB,OAAO;wBACL,UAAU,EAAE,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG;wBAChE,IAAI,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE;qBAC5C,CAAA;gBACH,CAAC;YACH,CAAC;YAED,IAAI,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;YAE9C,IAAI,CAAC,IAAI;gBACP,OAAO;oBACL,UAAU,EAAE,GAAG;oBACf,IAAI,EAAE;wBACJ,OAAO,EAAE,OAAO,EAAE,aAAa;qBAChC;iBACF,CAAA;YAEH,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;gBAC3C,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC1B,OAAO;wBACL,UAAU,EAAE,GAAG;wBACf,IAAI,EAAE;4BACJ,OAAO,EAAE,qBAAqB;yBAC/B;qBACF,CAAA;gBACH,CAAC;YACH,CAAC;YAED,IAAI,GAAG,EAAE,GAAI,KAAgB,EAAE,EAAE,EAAE,CAAA;YAEnC,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;YAE1D,OAAO;gBACL,UAAU,EAAE,GAAG;gBACf,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC;aACvE,CAAA;QACH,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE,EAAE,CAAA;QACzE,CAAC;IACH,CAAC,CAAA;IAED,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA"}
1
+ {"version":3,"file":"put.js","sourceRoot":"","sources":["../../../src/requestHandlers/put.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAA;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAK1C,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAErC,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,OAAgB,EAChB,kBAA6C,EAC7C,gBAAyB,EACzB,OAA2C,EAC3C,YAAqB,EACrB,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,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,9 +1,17 @@
1
1
  import type { IncomingHttpHeaders } from 'http';
2
2
  import type { InterceptedDeleteRequest, InterceptedGetRequest, InterceptedPostRequest, InterceptedPutRequest } from './types.js';
3
3
  import type { Body } from '../requestHandlers/types.js';
4
- export declare const interceptGetRequest: (intercept: InterceptedGetRequest, headers: IncomingHttpHeaders, resource: string, id: string | null) => Promise<void>;
5
- export declare const interceptPostRequest: (intercept: InterceptedPostRequest, headers: IncomingHttpHeaders, resource: string, id: string | null, body: Body) => Promise<Body>;
6
- export declare const interceptPutRequest: (intercept: InterceptedPutRequest, headers: IncomingHttpHeaders, resource: string, id: string, body: Body) => Promise<Body>;
7
- export declare const interceptPatchRequest: (intercept: InterceptedPutRequest, headers: IncomingHttpHeaders, resource: string, id: string, body: Body) => Promise<Body>;
8
- export declare const interceptDeleteRequest: (intercept: InterceptedDeleteRequest, headers: IncomingHttpHeaders, resource: string, id: string | null) => Promise<void>;
4
+ export type InterceptResult = {
5
+ type: 'continue';
6
+ body?: Body;
7
+ } | {
8
+ type: 'response';
9
+ status: number;
10
+ body?: Body;
11
+ };
12
+ export declare const interceptGetRequest: (intercept: InterceptedGetRequest, headers: IncomingHttpHeaders, resource: string, id: string | null) => Promise<InterceptResult>;
13
+ export declare const interceptPostRequest: (intercept: InterceptedPostRequest, headers: IncomingHttpHeaders, resource: string, id: string | null, body: Body) => Promise<InterceptResult>;
14
+ export declare const interceptPutRequest: (intercept: InterceptedPutRequest, headers: IncomingHttpHeaders, resource: string, id: string, body: Body) => Promise<InterceptResult>;
15
+ export declare const interceptPatchRequest: (intercept: InterceptedPutRequest, headers: IncomingHttpHeaders, resource: string, id: string, body: Body) => Promise<InterceptResult>;
16
+ export declare const interceptDeleteRequest: (intercept: InterceptedDeleteRequest, headers: IncomingHttpHeaders, resource: string, id: string | null) => Promise<InterceptResult>;
9
17
  //# sourceMappingURL=interceptRequest.d.ts.map
@@ -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,EACV,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EAEtB,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAEpD,eAAO,MAAM,mBAAmB,GAC9B,WAAW,qBAAqB,EAChC,SAAS,mBAAmB,EAC5B,UAAU,MAAM,EAChB,IAAI,MAAM,GAAG,IAAI,kBAGlB,CAAA;AAED,eAAO,MAAM,oBAAoB,GAC/B,WAAW,sBAAsB,EACjC,SAAS,mBAAmB,EAC5B,UAAU,MAAM,EAChB,IAAI,MAAM,GAAG,IAAI,EACjB,MAAM,IAAI,kBAIX,CAAA;AAED,eAAO,MAAM,mBAAmB,GAC9B,WAAW,qBAAqB,EAChC,SAAS,mBAAmB,EAC5B,UAAU,MAAM,EAChB,IAAI,MAAM,EACV,MAAM,IAAI,kBAIX,CAAA;AAED,eAAO,MAAM,qBAAqB,cAVrB,qBAAqB,WACvB,mBAAmB,YAClB,MAAM,MACZ,MAAM,QACJ,IAAI,kBAM4C,CAAA;AAExD,eAAO,MAAM,sBAAsB,GACjC,WAAW,wBAAwB,EACnC,SAAS,mBAAmB,EAC5B,UAAU,MAAM,EAChB,IAAI,MAAM,GAAG,IAAI,kBAGlB,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,EACV,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EAEtB,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AASpD,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,26 +1,44 @@
1
+ import { createActions, isInterceptorAction, isSetRequestBodyAction, isResponseAction, } from './interceptorActions.js';
1
2
  export const interceptGetRequest = async (intercept, headers, resource, id) => {
2
- await intercept({ headers, resource, id });
3
+ const actions = createActions();
4
+ const result = await intercept({ headers, resource, id }, actions);
5
+ return processInterceptResult(result);
3
6
  };
4
7
  export const interceptPostRequest = async (intercept, headers, resource, id, body) => {
5
- const intercepted = await intercept({ headers, resource, body, id });
6
- return interceptRequest(intercepted, body);
8
+ const actions = createActions();
9
+ const result = await intercept({ headers, resource, body, id }, actions);
10
+ return processInterceptResult(result, body);
7
11
  };
8
12
  export const interceptPutRequest = async (intercept, headers, resource, id, body) => {
9
- const intercepted = await intercept({ headers, resource, id, body });
10
- return interceptRequest(intercepted, body);
13
+ const actions = createActions();
14
+ const result = await intercept({ headers, resource, id, body }, actions);
15
+ return processInterceptResult(result, body);
11
16
  };
12
17
  export const interceptPatchRequest = interceptPutRequest;
13
18
  export const interceptDeleteRequest = async (intercept, headers, resource, id) => {
14
- await intercept({ headers, resource, id });
19
+ const actions = createActions();
20
+ const result = await intercept({ headers, resource, id }, actions);
21
+ return processInterceptResult(result);
15
22
  };
16
- const interceptRequest = (intercepted, body) => {
17
- if (!intercepted && typeof body === 'object')
18
- return body;
19
- // The request body was replaced by an object
20
- if (intercepted && typeof intercepted === 'object' && !Array.isArray(intercepted))
21
- return intercepted;
22
- // The request body was replaced by something else than an object.
23
- // This is not supported, so we return the original request body.
24
- return body;
23
+ // Process the interceptor return value and convert to InterceptResult
24
+ const processInterceptResult = (intercepted, originalBody) => {
25
+ // If void/undefined, continue with original body
26
+ if (intercepted === undefined) {
27
+ return { type: 'continue', body: originalBody };
28
+ }
29
+ // If it's an interceptor action, process it
30
+ if (isInterceptorAction(intercepted)) {
31
+ if (isSetRequestBodyAction(intercepted)) {
32
+ return { type: 'continue', body: intercepted.body };
33
+ }
34
+ if (isResponseAction(intercepted)) {
35
+ return { type: 'response', status: intercepted.status, body: intercepted.body };
36
+ }
37
+ }
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
42
+ return { type: 'continue', body: originalBody };
25
43
  };
26
44
  //# sourceMappingURL=interceptRequest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interceptRequest.js","sourceRoot":"","sources":["../../../src/requestInterceptor/interceptRequest.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,SAAgC,EAChC,OAA4B,EAC5B,QAAgB,EAChB,EAAiB,EACjB,EAAE;IACF,MAAM,SAAS,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;AAC5C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACvC,SAAiC,EACjC,OAA4B,EAC5B,QAAgB,EAChB,EAAiB,EACjB,IAAU,EACV,EAAE;IACF,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;IACpE,OAAO,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;AAC5C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,SAAgC,EAChC,OAA4B,EAC5B,QAAgB,EAChB,EAAU,EACV,IAAU,EACV,EAAE;IACF,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;IACpE,OAAO,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;AAC5C,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,EACjB,EAAE;IACF,MAAM,SAAS,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;AAC5C,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,CAAC,WAAmC,EAAE,IAAU,EAAE,EAAE;IAC3E,IAAI,CAAC,WAAW,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IAEzD,6CAA6C;IAC7C,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;QAC/E,OAAO,WAAW,CAAA;IAEpB,kEAAkE;IAClE,iEAAiE;IACjE,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
1
+ {"version":3,"file":"interceptRequest.js","sourceRoot":"","sources":["../../../src/requestInterceptor/interceptRequest.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,sBAAsB,CAAA;AAO7B,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"}
@@ -0,0 +1,28 @@
1
+ declare const INTERCEPTOR_ACTION_MARKER: unique symbol;
2
+ type InterceptorActionBase = {
3
+ readonly [INTERCEPTOR_ACTION_MARKER]: true;
4
+ readonly type: 'setRequestBody' | 'response';
5
+ };
6
+ export type SetRequestBodyAction = {
7
+ readonly type: 'setRequestBody';
8
+ readonly body: unknown;
9
+ } & InterceptorActionBase;
10
+ export type ResponseAction = {
11
+ readonly type: 'response';
12
+ readonly body?: unknown;
13
+ readonly status: number;
14
+ } & InterceptorActionBase;
15
+ export type InterceptorAction = SetRequestBodyAction | ResponseAction;
16
+ export declare const isInterceptorAction: (value: unknown) => value is InterceptorAction;
17
+ export declare const isSetRequestBodyAction: (action: InterceptorAction) => action is SetRequestBodyAction;
18
+ export declare const isResponseAction: (action: InterceptorAction) => action is ResponseAction;
19
+ export type Actions = {
20
+ setRequestBody: (body: unknown) => SetRequestBodyAction;
21
+ response: (options?: {
22
+ body?: unknown;
23
+ status?: number;
24
+ }) => ResponseAction;
25
+ };
26
+ export declare const createActions: () => Actions;
27
+ export {};
28
+ //# sourceMappingURL=interceptorActions.d.ts.map
@@ -0,0 +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,GAAI,QAAQ,iBAAiB,KAAG,MAAM,IAAI,oBAE5E,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"}
@@ -0,0 +1,42 @@
1
+ // Internal marker to identify interceptor actions
2
+ const INTERCEPTOR_ACTION_MARKER = Symbol('InterceptorAction');
3
+ // Type guard to check if a value is an interceptor action
4
+ export const isInterceptorAction = (value) => {
5
+ return (!!value &&
6
+ typeof value === 'object' &&
7
+ INTERCEPTOR_ACTION_MARKER in value &&
8
+ value[INTERCEPTOR_ACTION_MARKER] === true);
9
+ };
10
+ // Type guard for SetRequestBodyAction
11
+ export const isSetRequestBodyAction = (action) => {
12
+ return action.type === 'setRequestBody';
13
+ };
14
+ // Type guard for ResponseAction
15
+ export const isResponseAction = (action) => {
16
+ return action.type === 'response';
17
+ };
18
+ // Factory function to create a SetRequestBodyAction
19
+ const createSetRequestBodyAction = (body) => {
20
+ return {
21
+ [INTERCEPTOR_ACTION_MARKER]: true,
22
+ type: 'setRequestBody',
23
+ body,
24
+ };
25
+ };
26
+ // Factory function to create a ResponseAction
27
+ const createResponseAction = (options) => {
28
+ return {
29
+ [INTERCEPTOR_ACTION_MARKER]: true,
30
+ type: 'response',
31
+ body: options?.body,
32
+ status: options?.status ?? 200,
33
+ };
34
+ };
35
+ // Factory to create the actions object
36
+ export const createActions = () => {
37
+ return {
38
+ setRequestBody: createSetRequestBodyAction,
39
+ response: createResponseAction,
40
+ };
41
+ };
42
+ //# sourceMappingURL=interceptorActions.js.map
@@ -0,0 +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,CAAC,MAAyB,EAAkC,EAAE;IAClG,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,6 +1,7 @@
1
1
  import type { IncomingHttpHeaders } from 'http';
2
2
  import type { Body } from '../requestHandlers/types.js';
3
- type MaybePromise<T> = T | Promise<T>;
3
+ import type { MaybePromise } from '../types.js';
4
+ import type { Actions, InterceptorAction } from './interceptorActions.js';
4
5
  type InterceptedResource = {
5
6
  headers: IncomingHttpHeaders;
6
7
  resource: string;
@@ -18,12 +19,12 @@ type WithIdAndBody = InterceptedResource & {
18
19
  type WithBodyAndMaybeId = WithBody & {
19
20
  id: string | null;
20
21
  };
21
- export type InterceptedReturnValue = void | object;
22
- export type InterceptedGetRequest = (request: WithMaybeId) => MaybePromise<InterceptedReturnValue>;
23
- export type InterceptedPostRequest = (request: WithBodyAndMaybeId) => MaybePromise<InterceptedReturnValue>;
24
- export type InterceptedPatchRequest = (request: WithIdAndBody) => MaybePromise<InterceptedReturnValue>;
25
- export type InterceptedPutRequest = (request: WithIdAndBody) => MaybePromise<InterceptedReturnValue>;
26
- export type InterceptedDeleteRequest = (request: WithMaybeId) => MaybePromise<InterceptedReturnValue>;
22
+ 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>;
27
28
  export type RequestInterceptor = {
28
29
  get?: InterceptedGetRequest;
29
30
  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;AAEpD,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;AAErC,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,MAAM,CAAA;AAElD,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,YAAY,CAAC,sBAAsB,CAAC,CAAA;AAClG,MAAM,MAAM,sBAAsB,GAAG,CACnC,OAAO,EAAE,kBAAkB,KACxB,YAAY,CAAC,sBAAsB,CAAC,CAAA;AACzC,MAAM,MAAM,uBAAuB,GAAG,CACpC,OAAO,EAAE,aAAa,KACnB,YAAY,CAAC,sBAAsB,CAAC,CAAA;AACzC,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE,aAAa,KAAK,YAAY,CAAC,sBAAsB,CAAC,CAAA;AACpG,MAAM,MAAM,wBAAwB,GAAG,CACrC,OAAO,EAAE,WAAW,KACjB,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,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,3 +1,3 @@
1
1
  import type { InterceptedResponse, ResponseBodyInterceptor } from './types.js';
2
- export declare const interceptResponseBody: (interceptor: ResponseBodyInterceptor, info: InterceptedResponse) => {};
2
+ export declare const interceptResponseBody: (interceptor: ResponseBodyInterceptor, info: InterceptedResponse) => Promise<{}>;
3
3
  //# sourceMappingURL=interceptResponseBody.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interceptResponseBody.d.ts","sourceRoot":"","sources":["../../../src/responseBodyInterceptor/interceptResponseBody.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAE3E,eAAO,MAAM,qBAAqB,GAChC,aAAa,uBAAuB,EACpC,MAAM,mBAAmB,OAO1B,CAAA"}
1
+ {"version":3,"file":"interceptResponseBody.d.ts","sourceRoot":"","sources":["../../../src/responseBodyInterceptor/interceptResponseBody.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAE3E,eAAO,MAAM,qBAAqB,GAChC,aAAa,uBAAuB,EACpC,MAAM,mBAAmB,gBAO1B,CAAA"}