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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filtering.d.ts","sourceRoot":"","sources":["../../../src/data/json/filtering.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,MAAM,EAIZ,MAAM,wBAAwB,CAAA;AAgF/B,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,MAAM,MAChE,MAAM,CAAC,YAChB,CAAA"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { supportedOperators, } from '../../filtering/filter.js';
|
|
2
|
+
const operatorFns = {
|
|
3
|
+
eq: (a, b) => {
|
|
4
|
+
if (typeof a === 'string') {
|
|
5
|
+
return a === b;
|
|
6
|
+
}
|
|
7
|
+
if (typeof a === 'number') {
|
|
8
|
+
return a === Number(b);
|
|
9
|
+
}
|
|
10
|
+
if (typeof a === 'boolean') {
|
|
11
|
+
return a === (b.toLowerCase() === 'true');
|
|
12
|
+
}
|
|
13
|
+
return a === b;
|
|
14
|
+
},
|
|
15
|
+
ieq: (a, b) => {
|
|
16
|
+
if (typeof a === 'string') {
|
|
17
|
+
return a.toLowerCase() === b.toLowerCase();
|
|
18
|
+
}
|
|
19
|
+
if (typeof a === 'number') {
|
|
20
|
+
return a === Number(b);
|
|
21
|
+
}
|
|
22
|
+
if (typeof a === 'boolean') {
|
|
23
|
+
return a === (b.toLowerCase() === 'true');
|
|
24
|
+
}
|
|
25
|
+
return a === b;
|
|
26
|
+
},
|
|
27
|
+
neq: (a, b) => {
|
|
28
|
+
if (typeof a === 'string') {
|
|
29
|
+
return a !== b;
|
|
30
|
+
}
|
|
31
|
+
if (typeof a === 'number') {
|
|
32
|
+
return a !== Number(b);
|
|
33
|
+
}
|
|
34
|
+
if (typeof a === 'boolean') {
|
|
35
|
+
return a !== (b.toLowerCase() === 'true');
|
|
36
|
+
}
|
|
37
|
+
return a !== b;
|
|
38
|
+
},
|
|
39
|
+
ineq: (a, b) => {
|
|
40
|
+
if (typeof a === 'string') {
|
|
41
|
+
return a.toLowerCase() !== b.toLowerCase();
|
|
42
|
+
}
|
|
43
|
+
if (typeof a === 'number') {
|
|
44
|
+
return a !== Number(b);
|
|
45
|
+
}
|
|
46
|
+
if (typeof a === 'boolean') {
|
|
47
|
+
return a !== (b.toLowerCase() === 'true');
|
|
48
|
+
}
|
|
49
|
+
return a !== b;
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
const isOperatorObject = (obj) => {
|
|
53
|
+
return (obj !== null &&
|
|
54
|
+
typeof obj === 'object' &&
|
|
55
|
+
Object.keys(obj).some((k) => supportedOperators.includes(k)));
|
|
56
|
+
};
|
|
57
|
+
const matchesFilter = (obj, spec) => {
|
|
58
|
+
return Object.entries(spec).every(([key, constraint]) => {
|
|
59
|
+
const v = obj[key];
|
|
60
|
+
if (isOperatorObject(constraint)) {
|
|
61
|
+
return Object.keys(constraint).every((op) => {
|
|
62
|
+
const rhs = constraint[op];
|
|
63
|
+
return rhs !== undefined && operatorFns[op]?.(v, rhs);
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
if (typeof v !== 'object' || v === null)
|
|
68
|
+
return false;
|
|
69
|
+
return matchesFilter(v, constraint);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
};
|
|
73
|
+
export const makePredicate = (f) => {
|
|
74
|
+
return (item) => matchesFilter(item, f.filter);
|
|
75
|
+
};
|
|
76
|
+
//# sourceMappingURL=filtering.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filtering.js","sourceRoot":"","sources":["../../../src/data/json/filtering.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/data/json/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/data/json/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAuB,OAAO,EAAE,MAAM,UAAU,CAAA;AAkC5D,KAAK,UAAU,GAAG;IAIhB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CACxB,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EAAE,QAAQ,EAAE,EAAE,UAAU,WAgIjE"}
|
package/dist/data/json/index.js
CHANGED
|
@@ -2,6 +2,7 @@ import { Low, Memory } from 'lowdb';
|
|
|
2
2
|
import { TextFile } from 'lowdb/node';
|
|
3
3
|
import { promises as fs } from 'node:fs';
|
|
4
4
|
import { join } from 'node:path';
|
|
5
|
+
import { makePredicate } from './filtering.js';
|
|
5
6
|
class PrettyJsonFile {
|
|
6
7
|
adapter;
|
|
7
8
|
constructor(filename) {
|
|
@@ -70,14 +71,19 @@ export default function createJsonQueries({ filename }) {
|
|
|
70
71
|
data[resource] = next;
|
|
71
72
|
});
|
|
72
73
|
};
|
|
73
|
-
async function getAll(resource) {
|
|
74
|
+
async function getAll({ resource }) {
|
|
74
75
|
return await readAll(resource);
|
|
75
76
|
}
|
|
76
|
-
async function
|
|
77
|
+
async function getByFilter({ resource, filter }) {
|
|
78
|
+
const data = await readAll(resource);
|
|
79
|
+
const pred = makePredicate(filter);
|
|
80
|
+
return data.filter((item) => pred(item));
|
|
81
|
+
}
|
|
82
|
+
async function getById({ resource, id }) {
|
|
77
83
|
const data = await readAll(resource);
|
|
78
84
|
return data.find((x) => x.id === id) || null;
|
|
79
85
|
}
|
|
80
|
-
async function create(resource, id, item) {
|
|
86
|
+
async function create({ resource, id, item, }) {
|
|
81
87
|
const data = await readAll(resource);
|
|
82
88
|
const itemWithId = {
|
|
83
89
|
...item,
|
|
@@ -86,31 +92,39 @@ export default function createJsonQueries({ filename }) {
|
|
|
86
92
|
await writeAll(resource, [...data, itemWithId]);
|
|
87
93
|
return itemWithId;
|
|
88
94
|
}
|
|
89
|
-
async function update(resource, item) {
|
|
95
|
+
async function update({ resource, item }) {
|
|
90
96
|
const data = await readAll(resource);
|
|
91
97
|
const next = data.map((r) => (r.id === item.id ? { ...item } : r));
|
|
92
98
|
await writeAll(resource, next);
|
|
93
99
|
return next.find((r) => r.id === item.id);
|
|
94
100
|
}
|
|
95
|
-
async function replace(
|
|
96
|
-
return update(
|
|
101
|
+
async function replace(query) {
|
|
102
|
+
return update(query);
|
|
97
103
|
}
|
|
98
|
-
async function deleteById(resource, id) {
|
|
104
|
+
async function deleteById({ resource, id }) {
|
|
99
105
|
const data = await readAll(resource);
|
|
100
106
|
const next = data.filter((r) => r.id !== id);
|
|
101
107
|
await writeAll(resource, next);
|
|
102
108
|
}
|
|
103
|
-
async function deleteAll(resource) {
|
|
109
|
+
async function deleteAll({ resource }) {
|
|
104
110
|
await writeAll(resource, []);
|
|
105
111
|
}
|
|
112
|
+
async function deleteByFilter({ resource, filter }) {
|
|
113
|
+
const data = await readAll(resource);
|
|
114
|
+
const pred = makePredicate(filter);
|
|
115
|
+
const next = data.filter((item) => !pred(item));
|
|
116
|
+
await writeAll(resource, next);
|
|
117
|
+
}
|
|
106
118
|
const fileQueries = {
|
|
107
119
|
getAll,
|
|
120
|
+
getByFilter,
|
|
108
121
|
getById,
|
|
109
122
|
create,
|
|
110
123
|
update,
|
|
111
124
|
replace,
|
|
112
125
|
deleteById,
|
|
113
126
|
deleteAll,
|
|
127
|
+
deleteByFilter,
|
|
114
128
|
};
|
|
115
129
|
return fileQueries;
|
|
116
130
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/data/json/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,EAAgB,MAAM,OAAO,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAA;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAGhC,MAAM,cAAc;IACV,OAAO,CAAU;IAEzB,YAAY,QAAgB;QAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACvC,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;QACtC,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAO,CAAA;IACvD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAM;QAChB,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IACxD,CAAC;CACF;AAED,MAAM,aAAa,GAAG,CAAO,WAAiB,EAAsB,EAAE;IACpE,OAAO,SAAS,CAAC,IAAI,MAAM,EAAQ,EAAE,WAAW,CAAC,CAAA;AACnD,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,KAAK,EAAQ,QAAkB,EAAE,WAAiB,EAAsB,EAAE;IAC1F,OAAO,MAAM,SAAS,CAAC,IAAI,cAAc,CAAO,QAAkB,CAAC,EAAE,WAAW,CAAC,CAAA;AACnF,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,KAAK,EAAQ,OAAsB,EAAE,WAAiB,EAAsB,EAAE;IAC9F,MAAM,EAAE,GAAG,IAAI,GAAG,CAAO,OAAO,EAAE,WAAW,CAAC,CAAA;IAC9C,MAAM,EAAE,CAAC,IAAI,EAAE,CAAA;IACf,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AASD,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EAAE,QAAQ,EAAc;IAChE,MAAM,IAAI,GACR,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAA;IAE3F,MAAM,cAAc,GAA8B,EAAE,CAAA;IACpD,IAAI,QAAQ,GAAmD,IAAI,CAAA;IAEnE,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ;gBACN,IAAI,KAAK,QAAQ;oBACf,CAAC,CAAC,aAAa,CAAC,cAAc,CAAC;oBAC/B,CAAC,CAAC,SAAS,CAAC,QAAkB,EAAE,cAAc,CAAC,CAAA;QACrD,CAAC;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,IAAI,GAAG,EAAmD,CAAA;IAC9E,IAAI,UAAU,GAAG,KAAK,CAAA;IACtB,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;QAC3B,IAAI,UAAU;YAAE,OAAM;QACtB,MAAM,EAAE,CAAC,KAAK,CAAC,QAAkB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACvD,UAAU,GAAG,IAAI,CAAA;IACnB,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/data/json/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/data/mongo/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/data/mongo/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,KAAK,EAAuB,OAAO,EAAE,MAAM,UAAU,CAAA;AAe5D,eAAO,MAAM,kBAAkB,GAAI,kBAAkB,MAAM,EAAE,KAAK,MAAM,YA+GvE,CAAA"}
|
package/dist/data/mongo/index.js
CHANGED
|
@@ -20,32 +20,35 @@ export const createMongoQueries = (connectionString, log) => {
|
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
};
|
|
23
|
-
const getAll = async (resource) => {
|
|
23
|
+
const getAll = async ({ resource }) => {
|
|
24
24
|
await connectToDatabase();
|
|
25
25
|
const items = (await db[resource].find({}));
|
|
26
26
|
if (!items)
|
|
27
27
|
return [];
|
|
28
28
|
return items.map((item) => removeUnderscoreFromId(item));
|
|
29
29
|
};
|
|
30
|
-
const
|
|
30
|
+
const getByFilter = async ({ resource }) => {
|
|
31
|
+
return getAll({ resource });
|
|
32
|
+
};
|
|
33
|
+
const getById = async ({ resource, id }) => {
|
|
31
34
|
await connectToDatabase();
|
|
32
35
|
const item = await db[resource].findOne({ _id: id });
|
|
33
36
|
if (!item)
|
|
34
37
|
return null;
|
|
35
38
|
return removeUnderscoreFromId(item);
|
|
36
39
|
};
|
|
37
|
-
const create = async (resource, id, item) => {
|
|
40
|
+
const create = async ({ resource, id, item, }) => {
|
|
38
41
|
await connectToDatabase();
|
|
39
42
|
const createdItem = await db[resource].insertOne(id ? { ...item, _id: id } : item);
|
|
40
43
|
return removeUnderscoreFromId(createdItem.ops[0]);
|
|
41
44
|
};
|
|
42
|
-
const update = async (resource, item) => {
|
|
45
|
+
const update = async ({ resource, item }) => {
|
|
43
46
|
await connectToDatabase();
|
|
44
47
|
const { id, ...itemWithoutId } = item;
|
|
45
48
|
const updatedItem = await db[resource].findOneAndUpdate({ _id: id }, { $set: itemWithoutId }, { returnOriginal: false });
|
|
46
49
|
return removeUnderscoreFromId(updatedItem.value);
|
|
47
50
|
};
|
|
48
|
-
const replace = async (resource, item) => {
|
|
51
|
+
const replace = async ({ resource, item }) => {
|
|
49
52
|
await connectToDatabase();
|
|
50
53
|
const { id, ...itemWithoutId } = item;
|
|
51
54
|
const replacedItem = await db[resource].findOneAndReplace({ _id: id }, itemWithoutId, {
|
|
@@ -53,22 +56,27 @@ export const createMongoQueries = (connectionString, log) => {
|
|
|
53
56
|
});
|
|
54
57
|
return removeUnderscoreFromId(replacedItem.value);
|
|
55
58
|
};
|
|
56
|
-
const deleteById = async (resource, id) => {
|
|
59
|
+
const deleteById = async ({ resource, id }) => {
|
|
57
60
|
await connectToDatabase();
|
|
58
61
|
await db[resource].deleteOne({ _id: id });
|
|
59
62
|
};
|
|
60
|
-
const deleteAll = async (resource) => {
|
|
63
|
+
const deleteAll = async ({ resource }) => {
|
|
61
64
|
await connectToDatabase();
|
|
62
65
|
await db[resource].deleteMany({});
|
|
63
66
|
};
|
|
67
|
+
const deleteByFilter = async ({ resource }) => {
|
|
68
|
+
return deleteAll({ resource });
|
|
69
|
+
};
|
|
64
70
|
const mongoQueries = {
|
|
65
71
|
getAll,
|
|
72
|
+
getByFilter,
|
|
66
73
|
getById,
|
|
67
74
|
create,
|
|
68
75
|
update,
|
|
69
76
|
replace,
|
|
70
77
|
deleteById,
|
|
71
78
|
deleteAll,
|
|
79
|
+
deleteByFilter,
|
|
72
80
|
};
|
|
73
81
|
return mongoQueries;
|
|
74
82
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/data/mongo/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,OAAO,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/data/mongo/index.ts"],"names":[],"mappings":"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"}
|
package/dist/data/types.d.ts
CHANGED
|
@@ -1,15 +1,44 @@
|
|
|
1
|
+
import type { Filter } from '../filtering/filter.js';
|
|
1
2
|
export type Item = {
|
|
2
3
|
id: string;
|
|
3
4
|
[key: string]: unknown;
|
|
4
5
|
};
|
|
5
6
|
export type ItemWithoutId = Omit<Item, 'id'>;
|
|
6
7
|
export type Queries = {
|
|
7
|
-
getAll: (
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
getAll: (query: {
|
|
9
|
+
resource: string;
|
|
10
|
+
}) => Promise<Item[]>;
|
|
11
|
+
getByFilter: (query: {
|
|
12
|
+
resource: string;
|
|
13
|
+
filter: Filter;
|
|
14
|
+
}) => Promise<Item[]>;
|
|
15
|
+
getById: (query: {
|
|
16
|
+
resource: string;
|
|
17
|
+
id: string;
|
|
18
|
+
}) => Promise<Item | null>;
|
|
19
|
+
create: (query: {
|
|
20
|
+
resource: string;
|
|
21
|
+
id: string | null;
|
|
22
|
+
item: ItemWithoutId;
|
|
23
|
+
}) => Promise<Item>;
|
|
24
|
+
update: (query: {
|
|
25
|
+
resource: string;
|
|
26
|
+
item: Item;
|
|
27
|
+
}) => Promise<Item>;
|
|
28
|
+
replace: (query: {
|
|
29
|
+
resource: string;
|
|
30
|
+
item: Item;
|
|
31
|
+
}) => Promise<Item>;
|
|
32
|
+
deleteById: (query: {
|
|
33
|
+
resource: string;
|
|
34
|
+
id: string;
|
|
35
|
+
}) => Promise<void>;
|
|
36
|
+
deleteAll: (query: {
|
|
37
|
+
resource: string;
|
|
38
|
+
}) => Promise<void>;
|
|
39
|
+
deleteByFilter: (query: {
|
|
40
|
+
resource: string;
|
|
41
|
+
filter: Filter;
|
|
42
|
+
}) => Promise<void>;
|
|
14
43
|
};
|
|
15
44
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/data/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/data/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,IAAI,GAAG;IACjB,EAAE,EAAE,MAAM,CAAA;IACV,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AAE5C,MAAM,MAAM,OAAO,GAAG;IACpB,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/data/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAEjD,MAAM,MAAM,IAAI,GAAG;IACjB,EAAE,EAAE,MAAM,CAAA;IACV,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AAE5C,MAAM,MAAM,OAAO,GAAG;IACpB,MAAM,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;IACxD,WAAW,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;IAC7E,OAAO,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;IAC1E,MAAM,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,EAAE,aAAa,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9F,MAAM,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,IAAI,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAClE,OAAO,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,IAAI,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACnE,UAAU,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtE,SAAS,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACzD,cAAc,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC/E,CAAA"}
|
package/dist/debug.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,GAAI,SAAS,MAAM,EAAE,KAAK,OAAO,SAGlD,CAAA"}
|
package/dist/debug.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,OAAe,EAAE,GAAY,EAAE,EAAE;IACrD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACpB,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;AACjD,CAAC,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
type RawFilter = {
|
|
2
|
+
filter: Record<string, unknown>;
|
|
3
|
+
};
|
|
4
|
+
export declare const supportedOperators: readonly ["eq", "neq", "ieq", "ineq"];
|
|
5
|
+
export type Operator = (typeof supportedOperators)[number];
|
|
6
|
+
export type OperatorMap = Record<Operator, string>;
|
|
7
|
+
type ExactlyOne<T> = {
|
|
8
|
+
[K in keyof T]: Pick<T, K> & Partial<Record<Exclude<keyof T, K>, never>>;
|
|
9
|
+
}[keyof T];
|
|
10
|
+
export type OperatorObject = ExactlyOne<OperatorMap>;
|
|
11
|
+
export type NestedFilter = {
|
|
12
|
+
[Key: string]: OperatorObject | NestedFilter;
|
|
13
|
+
};
|
|
14
|
+
export type Filter = {
|
|
15
|
+
filter: NestedFilter;
|
|
16
|
+
};
|
|
17
|
+
type FilterValidationResult = 'valid' | 'invalid' | 'missing';
|
|
18
|
+
export declare const validateFilter: (input: unknown) => FilterValidationResult;
|
|
19
|
+
export declare const prepareFilter: (rawFilter: RawFilter) => Filter;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=filter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../src/filtering/filter.ts"],"names":[],"mappings":"AAAA,KAAK,SAAS,GAAG;IACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAChC,CAAA;AAED,eAAO,MAAM,kBAAkB,uCAAwC,CAAA;AACvE,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAA;AAC1D,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;AAElD,KAAK,UAAU,CAAC,CAAC,IAAI;KAClB,CAAC,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;CACzE,CAAC,MAAM,CAAC,CAAC,CAAA;AAEV,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,WAAW,CAAC,CAAA;AAEpD,MAAM,MAAM,YAAY,GAAG;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,YAAY,CAAA;CAC7C,CAAA;AAED,MAAM,MAAM,MAAM,GAAG;IACnB,MAAM,EAAE,YAAY,CAAA;CACrB,CAAA;AAuDD,KAAK,sBAAsB,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAA;AAE7D,eAAO,MAAM,cAAc,GAAI,OAAO,OAAO,KAAG,sBA8B/C,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,WAAW,SAAS,KAAG,MACN,CAAA"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
export const supportedOperators = ['eq', 'neq', 'ieq', 'ineq'];
|
|
2
|
+
/**
|
|
3
|
+
* Walks an arbitrary object and, at each leaf, wraps the value
|
|
4
|
+
* in an `{ eq: string }` if it isn’t already an OperatorObject.
|
|
5
|
+
*/
|
|
6
|
+
const addDefaultEqOperatorWhenNoOperator = (raw) => {
|
|
7
|
+
const wrapEq = (node) => {
|
|
8
|
+
if (node !== null && typeof node === 'object' && !Array.isArray(node)) {
|
|
9
|
+
const obj = node;
|
|
10
|
+
const keys = Object.keys(obj);
|
|
11
|
+
if (keys.some((k) => supportedOperators.includes(k))) {
|
|
12
|
+
return obj;
|
|
13
|
+
}
|
|
14
|
+
const out = {};
|
|
15
|
+
for (const k of keys) {
|
|
16
|
+
out[k] = wrapEq(obj[k]);
|
|
17
|
+
}
|
|
18
|
+
return out;
|
|
19
|
+
}
|
|
20
|
+
return { eq: String(node) };
|
|
21
|
+
};
|
|
22
|
+
return {
|
|
23
|
+
filter: wrapEq(raw.filter),
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
const isObject = (x) => typeof x === 'object' && x !== null;
|
|
27
|
+
/**
|
|
28
|
+
* Walks the filter object recursively. At depth > 1 (inside a field's value),
|
|
29
|
+
* any key pointing to a string is in operator position and must be a valid
|
|
30
|
+
* supported operator (exact case-sensitive match).
|
|
31
|
+
*/
|
|
32
|
+
const hasValidOperators = (node, depth) => {
|
|
33
|
+
for (const [key, value] of Object.entries(node)) {
|
|
34
|
+
if (typeof value === 'string') {
|
|
35
|
+
if (depth > 1 && !supportedOperators.includes(key)) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
else if (Array.isArray(value)) {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
else if (isObject(value)) {
|
|
43
|
+
if (!hasValidOperators(value, depth + 1)) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return true;
|
|
49
|
+
};
|
|
50
|
+
export const validateFilter = (input) => {
|
|
51
|
+
// 1. If it's not an object, it can't possess properties, so it's missing.
|
|
52
|
+
if (!isObject(input)) {
|
|
53
|
+
return 'missing';
|
|
54
|
+
}
|
|
55
|
+
// 2. Check for the exact lowercase "filter" property
|
|
56
|
+
if ('filter' in input) {
|
|
57
|
+
const value = input.filter;
|
|
58
|
+
// Check if the value is a non-array object
|
|
59
|
+
if (!isObject(value) || Array.isArray(value)) {
|
|
60
|
+
return 'invalid';
|
|
61
|
+
}
|
|
62
|
+
// Check that all operator keys are valid supported operators
|
|
63
|
+
if (!hasValidOperators(value, 1)) {
|
|
64
|
+
return 'invalid';
|
|
65
|
+
}
|
|
66
|
+
return 'valid';
|
|
67
|
+
}
|
|
68
|
+
// 3. Check for any case-insensitive variation (e.g., "Filter", "FILTER")
|
|
69
|
+
if (Object.keys(input).some((key) => key.toLowerCase() === 'filter')) {
|
|
70
|
+
return 'invalid';
|
|
71
|
+
}
|
|
72
|
+
// 4. If no "filter" (any case) exists
|
|
73
|
+
return 'missing';
|
|
74
|
+
};
|
|
75
|
+
export const prepareFilter = (rawFilter) => addDefaultEqOperatorWhenNoOperator(rawFilter);
|
|
76
|
+
//# sourceMappingURL=filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../src/filtering/filter.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;AAE3D,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;AAE3D,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,UAAU,CAAA;AAgKtD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,MAAM,GAAI,aAAa,UAAU;;;EAA6B,CAAA;AAG3E,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -4,8 +4,9 @@ import { createQueries } from './data/queries.js';
|
|
|
4
4
|
import { getDefaultImplementations } from './implementations.js';
|
|
5
5
|
import { getHttpLogger, initLogger } from './log/logger.js';
|
|
6
6
|
import { createOpenApiHandler, getOpenApiPaths } from './openapi/index.js';
|
|
7
|
+
import { interceptNonResourceGetRequest } from './requestInterceptor/interceptRequest.js';
|
|
7
8
|
import { createResourceHandler } from './resourceHandler.js';
|
|
8
|
-
import { handleNotFound, sendErrorResponse, sendResponse } from './responseHandler.js';
|
|
9
|
+
import { handleMethodNotAllowed, handleNotFound, sendErrorResponse, sendResponse, } from './responseHandler.js';
|
|
9
10
|
import { createRootUrlHandler } from './root/root.js';
|
|
10
11
|
import { compileSchemas } from './schema/compile.js';
|
|
11
12
|
import { handleStaticFolder } from './staticFolder/staticFolder.js';
|
|
@@ -42,12 +43,51 @@ const createServer = async (userConfig) => {
|
|
|
42
43
|
return handleOptionsRequest(res);
|
|
43
44
|
}
|
|
44
45
|
if (config.staticFolder && !`${requestUrl}/`.startsWith(config.apiPrefix + '/')) {
|
|
46
|
+
// Only GET and HEAD are supported for static files
|
|
47
|
+
if (req.method !== 'GET' && req.method !== 'HEAD')
|
|
48
|
+
return handleMethodNotAllowed(res);
|
|
49
|
+
// Run interceptor before serving static file
|
|
50
|
+
if (config.requestInterceptor?.get) {
|
|
51
|
+
const interceptResult = await interceptNonResourceGetRequest(config.requestInterceptor.get, req.headers, 'static');
|
|
52
|
+
if (interceptResult.type === 'response') {
|
|
53
|
+
return sendResponse(res)({
|
|
54
|
+
statusCode: interceptResult.status,
|
|
55
|
+
body: interceptResult.body,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
45
59
|
handleStaticFolder(req, res, async () => await implementations.getStaticFileFromDisk(req.url === '/' ? 'index.html' : req.url || 'index.html'));
|
|
46
60
|
}
|
|
47
61
|
else if (requestUrl === rootPath) {
|
|
62
|
+
// Only GET is supported for the root URL
|
|
63
|
+
if (req.method !== 'GET')
|
|
64
|
+
return handleMethodNotAllowed(res);
|
|
65
|
+
// Run interceptor before serving root URL
|
|
66
|
+
if (config.requestInterceptor?.get) {
|
|
67
|
+
const interceptResult = await interceptNonResourceGetRequest(config.requestInterceptor.get, req.headers, 'root');
|
|
68
|
+
if (interceptResult.type === 'response') {
|
|
69
|
+
return sendResponse(res)({
|
|
70
|
+
statusCode: interceptResult.status,
|
|
71
|
+
body: interceptResult.body,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}
|
|
48
75
|
createRootUrlHandler(config)(req, res);
|
|
49
76
|
}
|
|
50
77
|
else if (openapiPaths.includes(requestUrl)) {
|
|
78
|
+
// Only GET is supported for the OpenAPI URL
|
|
79
|
+
if (req.method !== 'GET')
|
|
80
|
+
return handleMethodNotAllowed(res);
|
|
81
|
+
// Run interceptor before serving OpenAPI
|
|
82
|
+
if (config.requestInterceptor?.get) {
|
|
83
|
+
const interceptResult = await interceptNonResourceGetRequest(config.requestInterceptor.get, req.headers, 'openapi');
|
|
84
|
+
if (interceptResult.type === 'response') {
|
|
85
|
+
return sendResponse(res)({
|
|
86
|
+
statusCode: interceptResult.status,
|
|
87
|
+
body: interceptResult.body,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}
|
|
51
91
|
createOpenApiHandler(config, requestUrl, req.headers.host || '')(res);
|
|
52
92
|
}
|
|
53
93
|
else if (requestUrl.startsWith(rootPath)) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAmB,MAAM,UAAU,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseQueryString.d.ts","sourceRoot":"","sources":["../../src/queryStrings/parseQueryString.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AAGnB,eAAO,MAAM,gBAAgB,GAAI,aAAa,MAAM,gBAIhD,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseQueryString.js","sourceRoot":"","sources":["../../src/queryStrings/parseQueryString.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AAEnB,qDAAqD;AACrD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,WAAmB,EAAE,EAAE,CACtD,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE;IACpB,SAAS,EAAE,IAAI;IACf,iBAAiB,EAAE,IAAI;CACxB,CAAC,CAAA"}
|
|
@@ -3,13 +3,13 @@ import type { RequestInterceptor } from '../requestInterceptor/types.js';
|
|
|
3
3
|
import type { BroadcastFunction } from '../websocket/websocket.js';
|
|
4
4
|
import type { DeleteRequest } from './types.js';
|
|
5
5
|
export declare const createDeleteRoutes: (queries: Queries, allowDeleteCollection: boolean, requestInterceptor: RequestInterceptor | null, etagsEnabled: boolean, broadcast: BroadcastFunction | null) => (req: DeleteRequest) => Promise<{
|
|
6
|
-
statusCode: number;
|
|
7
|
-
body: import("./types.js").Body | undefined;
|
|
8
|
-
} | {
|
|
9
6
|
statusCode: number;
|
|
10
7
|
body: {
|
|
11
8
|
message: string;
|
|
12
9
|
};
|
|
10
|
+
} | {
|
|
11
|
+
statusCode: number;
|
|
12
|
+
body: import("./types.js").Body | undefined;
|
|
13
13
|
} | {
|
|
14
14
|
statusCode: number;
|
|
15
15
|
body?: undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../src/requestHandlers/delete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAG5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5C,eAAO,MAAM,kBAAkB,GAC7B,SAAS,OAAO,EAChB,uBAAuB,OAAO,EAC9B,oBAAoB,kBAAkB,GAAG,IAAI,EAC7C,cAAc,OAAO,EACrB,WAAW,iBAAiB,GAAG,IAAI,WAEF,aAAa;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../src/requestHandlers/delete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAG5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5C,eAAO,MAAM,kBAAkB,GAC7B,SAAS,OAAO,EAChB,uBAAuB,OAAO,EAC9B,oBAAoB,kBAAkB,GAAG,IAAI,EAC7C,cAAc,OAAO,EACrB,WAAW,iBAAiB,GAAG,IAAI,WAEF,aAAa;;;;;;;;;;;EAiG/C,CAAA"}
|