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.
- package/dist/data/json/filtering.d.ts +3 -0
- package/dist/data/json/filtering.d.ts.map +1 -0
- package/dist/data/json/filtering.js +76 -0
- package/dist/data/json/filtering.js.map +1 -0
- package/dist/data/json/index.d.ts.map +1 -1
- package/dist/data/json/index.js +22 -8
- package/dist/data/json/index.js.map +1 -1
- package/dist/data/mongo/index.d.ts.map +1 -1
- package/dist/data/mongo/index.js +15 -7
- package/dist/data/mongo/index.js.map +1 -1
- package/dist/data/types.d.ts +36 -7
- package/dist/data/types.d.ts.map +1 -1
- package/dist/debug.d.ts +2 -0
- package/dist/debug.d.ts.map +1 -0
- package/dist/debug.js +5 -0
- package/dist/debug.js.map +1 -0
- package/dist/filtering/filter.d.ts +21 -0
- package/dist/filtering/filter.d.ts.map +1 -0
- package/dist/filtering/filter.js +76 -0
- package/dist/filtering/filter.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +41 -1
- package/dist/index.js.map +1 -1
- package/dist/queryStrings/parseQueryString.d.ts +3 -0
- package/dist/queryStrings/parseQueryString.d.ts.map +1 -0
- package/dist/queryStrings/parseQueryString.js +7 -0
- package/dist/queryStrings/parseQueryString.js.map +1 -0
- package/dist/requestHandlers/delete.d.ts +3 -3
- package/dist/requestHandlers/delete.d.ts.map +1 -1
- package/dist/requestHandlers/delete.js +14 -5
- package/dist/requestHandlers/delete.js.map +1 -1
- package/dist/requestHandlers/get.d.ts +3 -3
- package/dist/requestHandlers/get.d.ts.map +1 -1
- package/dist/requestHandlers/get.js +13 -4
- package/dist/requestHandlers/get.js.map +1 -1
- package/dist/requestHandlers/index.d.ts +6 -6
- package/dist/requestHandlers/patch.js +2 -2
- package/dist/requestHandlers/patch.js.map +1 -1
- package/dist/requestHandlers/post.js +2 -2
- package/dist/requestHandlers/post.js.map +1 -1
- package/dist/requestHandlers/put.js +2 -2
- package/dist/requestHandlers/put.js.map +1 -1
- package/dist/requestHandlers/types.d.ts +4 -0
- package/dist/requestHandlers/types.d.ts.map +1 -1
- package/dist/requestInterceptor/interceptRequest.d.ts +2 -1
- package/dist/requestInterceptor/interceptRequest.d.ts.map +1 -1
- package/dist/requestInterceptor/interceptRequest.js +11 -9
- package/dist/requestInterceptor/interceptRequest.js.map +1 -1
- package/dist/requestInterceptor/interceptorActions.d.ts +10 -2
- package/dist/requestInterceptor/interceptorActions.d.ts.map +1 -1
- package/dist/requestInterceptor/interceptorActions.js +7 -1
- package/dist/requestInterceptor/interceptorActions.js.map +1 -1
- package/dist/requestInterceptor/types.d.ts +17 -14
- package/dist/requestInterceptor/types.d.ts.map +1 -1
- package/dist/resourceHandler.d.ts.map +1 -1
- package/dist/resourceHandler.js +35 -0
- package/dist/resourceHandler.js.map +1 -1
- package/dist/responseBodyInterceptor/interceptResponseBody.d.ts +1 -1
- package/dist/responseBodyInterceptor/interceptResponseBody.d.ts.map +1 -1
- package/dist/responseBodyInterceptor/interceptResponseBody.js +4 -4
- package/dist/responseBodyInterceptor/interceptResponseBody.js.map +1 -1
- package/dist/responseBodyInterceptor/types.d.ts +1 -1
- package/dist/responseBodyInterceptor/types.d.ts.map +1 -1
- package/dist/root/root.d.ts.map +1 -1
- package/dist/root/root.js +1 -3
- package/dist/root/root.js.map +1 -1
- package/dist/staticFolder/staticFolder.d.ts.map +1 -1
- package/dist/staticFolder/staticFolder.js +1 -4
- package/dist/staticFolder/staticFolder.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- 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
|
-
|
|
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":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAA;AAK/E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,OAAgB,EAChB,qBAA8B,EAC9B,kBAA6C,EAC7C,YAAqB,EACrB,SAAmC,EACnC,EAAE;IACF,MAAM,YAAY,GAAG,KAAK,EAAE,GAAkB,EAAE,EAAE;QAChD,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,GAAG,CAAA;
|
|
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;;;;;;;;;;;;;;;;;;;;;;;
|
|
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 (
|
|
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 =
|
|
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":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAA;AAE5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,kDAAkD,CAAA;AAGxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE1C,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,OAAgB,EAChB,kBAA6C,EAC7C,uBAAuD,EACvD,gBAAyB,EACzB,YAAqB,EACrB,EAAE;IACF,MAAM,SAAS,GAAG,KAAK,EAAE,GAAe,EAAE,EAAE;QAC1C,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,eAAe,EAAE,GAAG,GAAG,CAAA;
|
|
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;
|
|
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;
|
|
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;
|
|
1
|
+
{"version":3,"file":"put.js","sourceRoot":"","sources":["../../src/requestHandlers/put.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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;
|
|
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
|
-
//
|
|
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;
|
|
1
|
+
{"version":3,"file":"interceptRequest.js","sourceRoot":"","sources":["../../src/requestInterceptor/interceptRequest.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,sBAAsB,CAAA;AAe7B,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,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;IACpF,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAA;AACvC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,8BAA8B,GAAG,KAAK,EACjD,SAAgC,EAChC,OAA4B,EAC5B,WAAmC,EACT,EAAE;IAC5B,MAAM,OAAO,GAAG,wBAAwB,EAAE,CAAA;IAC1C,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,CAAA;IACvE,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,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;IAC1F,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,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,CAAA;IAC1F,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,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;IACpF,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,8EAA8E;IAC9E,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAA;AACjD,CAAC,CAAA"}
|
|
@@ -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
|
|
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
|
|
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,
|
|
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;
|
|
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 {
|
|
5
|
-
type
|
|
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
|
|
12
|
+
type InterceptedResourceRequest = {
|
|
13
|
+
type: ResourceRequestType;
|
|
14
|
+
headers: IncomingHttpHeaders;
|
|
15
|
+
resource: string;
|
|
10
16
|
id: string | null;
|
|
11
17
|
};
|
|
12
|
-
type WithBody =
|
|
18
|
+
type WithBody = InterceptedResourceRequest & {
|
|
13
19
|
body: Body;
|
|
14
20
|
};
|
|
15
|
-
type WithIdAndBody =
|
|
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:
|
|
24
|
-
export type InterceptedPostRequest = (request:
|
|
25
|
-
export type InterceptedPatchRequest = (request: WithIdAndBody, actions:
|
|
26
|
-
export type InterceptedPutRequest = (request: WithIdAndBody, actions:
|
|
27
|
-
export type InterceptedDeleteRequest = (request:
|
|
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,
|
|
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;
|
|
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"}
|
package/dist/resourceHandler.js
CHANGED
|
@@ -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) => {
|