temba 0.53.6 → 0.55.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/dist/data/json/filtering.d.ts +3 -0
  2. package/dist/data/json/filtering.d.ts.map +1 -0
  3. package/dist/data/json/filtering.js +76 -0
  4. package/dist/data/json/filtering.js.map +1 -0
  5. package/dist/data/json/index.d.ts.map +1 -1
  6. package/dist/data/json/index.js +22 -8
  7. package/dist/data/json/index.js.map +1 -1
  8. package/dist/data/mongo/index.d.ts.map +1 -1
  9. package/dist/data/mongo/index.js +15 -7
  10. package/dist/data/mongo/index.js.map +1 -1
  11. package/dist/data/types.d.ts +36 -7
  12. package/dist/data/types.d.ts.map +1 -1
  13. package/dist/debug.d.ts +2 -0
  14. package/dist/debug.d.ts.map +1 -0
  15. package/dist/debug.js +5 -0
  16. package/dist/debug.js.map +1 -0
  17. package/dist/filtering/filter.d.ts +21 -0
  18. package/dist/filtering/filter.d.ts.map +1 -0
  19. package/dist/filtering/filter.js +76 -0
  20. package/dist/filtering/filter.js.map +1 -0
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +41 -1
  23. package/dist/index.js.map +1 -1
  24. package/dist/queryStrings/parseQueryString.d.ts +3 -0
  25. package/dist/queryStrings/parseQueryString.d.ts.map +1 -0
  26. package/dist/queryStrings/parseQueryString.js +7 -0
  27. package/dist/queryStrings/parseQueryString.js.map +1 -0
  28. package/dist/requestHandlers/delete.d.ts +3 -3
  29. package/dist/requestHandlers/delete.d.ts.map +1 -1
  30. package/dist/requestHandlers/delete.js +14 -5
  31. package/dist/requestHandlers/delete.js.map +1 -1
  32. package/dist/requestHandlers/get.d.ts +3 -3
  33. package/dist/requestHandlers/get.d.ts.map +1 -1
  34. package/dist/requestHandlers/get.js +13 -4
  35. package/dist/requestHandlers/get.js.map +1 -1
  36. package/dist/requestHandlers/index.d.ts +6 -6
  37. package/dist/requestHandlers/patch.js +2 -2
  38. package/dist/requestHandlers/patch.js.map +1 -1
  39. package/dist/requestHandlers/post.js +2 -2
  40. package/dist/requestHandlers/post.js.map +1 -1
  41. package/dist/requestHandlers/put.js +2 -2
  42. package/dist/requestHandlers/put.js.map +1 -1
  43. package/dist/requestHandlers/types.d.ts +4 -0
  44. package/dist/requestHandlers/types.d.ts.map +1 -1
  45. package/dist/requestInterceptor/interceptRequest.d.ts +2 -1
  46. package/dist/requestInterceptor/interceptRequest.d.ts.map +1 -1
  47. package/dist/requestInterceptor/interceptRequest.js +11 -9
  48. package/dist/requestInterceptor/interceptRequest.js.map +1 -1
  49. package/dist/requestInterceptor/interceptorActions.d.ts +10 -2
  50. package/dist/requestInterceptor/interceptorActions.d.ts.map +1 -1
  51. package/dist/requestInterceptor/interceptorActions.js +7 -1
  52. package/dist/requestInterceptor/interceptorActions.js.map +1 -1
  53. package/dist/requestInterceptor/types.d.ts +17 -14
  54. package/dist/requestInterceptor/types.d.ts.map +1 -1
  55. package/dist/resourceHandler.d.ts.map +1 -1
  56. package/dist/resourceHandler.js +35 -0
  57. package/dist/resourceHandler.js.map +1 -1
  58. package/dist/responseBodyInterceptor/interceptResponseBody.d.ts +1 -1
  59. package/dist/responseBodyInterceptor/interceptResponseBody.d.ts.map +1 -1
  60. package/dist/responseBodyInterceptor/interceptResponseBody.js +4 -4
  61. package/dist/responseBodyInterceptor/interceptResponseBody.js.map +1 -1
  62. package/dist/responseBodyInterceptor/types.d.ts +1 -1
  63. package/dist/responseBodyInterceptor/types.d.ts.map +1 -1
  64. package/dist/root/root.d.ts.map +1 -1
  65. package/dist/root/root.js +1 -3
  66. package/dist/root/root.js.map +1 -1
  67. package/dist/staticFolder/staticFolder.d.ts.map +1 -1
  68. package/dist/staticFolder/staticFolder.js +1 -4
  69. package/dist/staticFolder/staticFolder.js.map +1 -1
  70. package/dist/version.d.ts +1 -1
  71. package/dist/version.js +1 -1
  72. package/package.json +2 -1
@@ -0,0 +1,3 @@
1
+ import { type Filter } from '../../filtering/filter.js';
2
+ export declare const makePredicate: <T extends Record<string, unknown>>(f: Filter) => (item: T) => boolean;
3
+ //# sourceMappingURL=filtering.d.ts.map
@@ -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":"AAKA,OAAO,KAAK,EAAuB,OAAO,EAAE,MAAM,UAAU,CAAA;AAiC5D,KAAK,UAAU,GAAG;IAIhB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CACxB,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EAAE,QAAQ,EAAE,EAAE,UAAU,WAqGjE"}
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"}
@@ -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 getById(resource, id) {
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(resource, item) {
96
- return update(resource, item);
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":"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"}
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":"AACA,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,YA6FvE,CAAA"}
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"}
@@ -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 getById = async (resource, id) => {
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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/data/mongo/index.ts"],"names":[],"mappings":"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"}
@@ -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: (resource: string) => Promise<Item[]>;
8
- getById: (resource: string, id: string) => Promise<Item | null>;
9
- create: (resource: string, id: string | null, item: ItemWithoutId) => Promise<Item>;
10
- update: (resource: string, item: Item) => Promise<Item>;
11
- replace: (resource: string, item: Item) => Promise<Item>;
12
- deleteById: (resource: string, id: string) => Promise<void>;
13
- deleteAll: (resource: string) => Promise<void>;
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
@@ -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;IAC7C,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;IAC/D,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACnF,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACvD,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACxD,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3D,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC/C,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"}
@@ -0,0 +1,2 @@
1
+ export declare const debug: (message: string, arg: unknown) => void;
2
+ //# sourceMappingURL=debug.d.ts.map
@@ -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,5 @@
1
+ export const debug = (message, arg) => {
2
+ console.log(message);
3
+ console.dir(arg, { depth: null, colors: true });
4
+ };
5
+ //# sourceMappingURL=debug.js.map
@@ -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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"}
@@ -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;AAoGtD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,MAAM,GAAI,aAAa,UAAU;;;EAA6B,CAAA;AAG3E,YAAY,EAAE,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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import qs from 'qs';
2
+ export declare const parseQueryString: (queryString: string) => qs.ParsedQs;
3
+ //# sourceMappingURL=parseQueryString.d.ts.map
@@ -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,7 @@
1
+ import qs from 'qs';
2
+ // Parses query string keys and values into an object
3
+ export const parseQueryString = (queryString) => qs.parse(queryString, {
4
+ allowDots: true,
5
+ ignoreQueryPrefix: true,
6
+ });
7
+ //# sourceMappingURL=parseQueryString.js.map
@@ -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;;;;;;;;;;;EA0F/C,CAAA"}
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"}