quetch 0.6.5 → 0.7.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 (68) hide show
  1. package/dist/constants/SymbolCache.d.ts +1 -0
  2. package/dist/constants/SymbolCache.js +2 -0
  3. package/dist/constants/SymbolCache.js.map +1 -0
  4. package/dist/constants.d.ts +1 -0
  5. package/dist/constants.js +3 -0
  6. package/dist/constants.js.map +1 -0
  7. package/dist/middlewares/aggregate.js.map +1 -1
  8. package/dist/middlewares/cache.js.map +1 -1
  9. package/dist/middlewares/combine.js.map +1 -1
  10. package/dist/middlewares/fetchExternal.js.map +1 -1
  11. package/dist/middlewares/fetchLocal.d.ts +1 -1
  12. package/dist/middlewares/log.js.map +1 -1
  13. package/dist/middlewares/retry.js.map +1 -1
  14. package/dist/tools/defineCustomFetch.d.ts +4 -4
  15. package/dist/tools/defineCustomFetch.js.map +1 -1
  16. package/dist/tools/defineGenericFetch.d.ts +2 -2
  17. package/dist/tools/defineGenericFetch.js.map +1 -1
  18. package/dist/tools/escapeRegex.d.ts +7 -0
  19. package/dist/tools/escapeRegex.js +10 -0
  20. package/dist/tools/escapeRegex.js.map +1 -0
  21. package/dist/tools/filterChildren.d.ts +2 -0
  22. package/dist/tools/filterChildren.js +13 -0
  23. package/dist/tools/filterChildren.js.map +1 -0
  24. package/dist/tools/filterItem.d.ts +3 -1
  25. package/dist/tools/filterItem.js +21 -4
  26. package/dist/tools/filterItem.js.map +1 -1
  27. package/dist/tools/normalizeOrder.js.map +1 -1
  28. package/dist/tools/queryItemList.d.ts +2 -2
  29. package/dist/tools/queryItemList.js +3 -3
  30. package/dist/tools/queryItemList.js.map +1 -1
  31. package/dist/tools/sortItemList.js.map +1 -1
  32. package/dist/tools.d.ts +2 -0
  33. package/dist/tools.js +2 -0
  34. package/dist/tools.js.map +1 -1
  35. package/dist/types/Filter.d.ts +2 -1
  36. package/dist/types/FilterChildren.d.ts +13 -0
  37. package/dist/types/FilterChildren.js +2 -0
  38. package/dist/types/FilterChildren.js.map +1 -0
  39. package/dist/types/FilterKeys.d.ts +3 -3
  40. package/dist/types/FilterStringMatch.d.ts +2 -1
  41. package/dist/types/Query.d.ts +9 -0
  42. package/dist/types/QuerySettings.d.ts +8 -0
  43. package/dist/types/QuerySettings.js +2 -0
  44. package/dist/types/QuerySettings.js.map +1 -0
  45. package/dist/types/Result.d.ts +3 -5
  46. package/dist/types.d.ts +2 -0
  47. package/lib/constants/SymbolCache.ts +1 -0
  48. package/lib/constants.ts +2 -0
  49. package/lib/middlewares/fetchLocal.ts +1 -1
  50. package/lib/tools/defineCustomFetch.ts +10 -5
  51. package/lib/tools/defineGenericFetch.ts +3 -3
  52. package/lib/tools/escapeRegex.ts +9 -0
  53. package/lib/tools/filterChildren.ts +27 -0
  54. package/lib/tools/filterItem.test.ts +52 -0
  55. package/lib/tools/filterItem.ts +32 -4
  56. package/lib/tools/queryItemList.test.ts +2 -2
  57. package/lib/tools/queryItemList.ts +11 -6
  58. package/lib/tools.ts +2 -0
  59. package/lib/types/Filter.ts +8 -5
  60. package/lib/types/FilterChildren.ts +15 -0
  61. package/lib/types/FilterKeys.ts +4 -3
  62. package/lib/types/FilterStringMatch.ts +3 -1
  63. package/lib/types/Query.ts +9 -0
  64. package/lib/types/QueryReadMultiple.ts +0 -1
  65. package/lib/types/QuerySettings.ts +9 -0
  66. package/lib/types/Result.ts +8 -7
  67. package/lib/types.ts +2 -0
  68. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ export declare const SymbolCache: unique symbol;
@@ -0,0 +1,2 @@
1
+ export const SymbolCache = Symbol("cache");
2
+ //# sourceMappingURL=SymbolCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SymbolCache.js","sourceRoot":"","sources":["../../lib/constants/SymbolCache.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export { SymbolCache } from "./constants/SymbolCache.js";
@@ -0,0 +1,3 @@
1
+ // File automatically generated by `vite-plugin-module-list`
2
+ export { SymbolCache } from "./constants/SymbolCache.js";
3
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../lib/constants.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../../lib/middlewares/aggregate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../../lib/middlewares/aggregate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../lib/middlewares/cache.ts"],"names":[],"mappings":"AAsCA,MAAM,UAAU,KAAK,CAAiD,EACpE,MAAM,GAAG,CAAC,EAAE,OAAO,GAAG,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAK,EAAE,EAAE;IACtD,IAAI,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC,EAAE,EAAE;QACnC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;KACxC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,EACD,KAAK,EACL,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,SAAS,GACO;IAChB;;;MAGE;IACF,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC3B,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QACzB,IAAI,CAAC,EAAE,EAAE;YACP,OAAO,IAAI,CAAC,KAAsB,CAAC,CAAC;SACrC;QACD,IAAI,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YACvB,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACvE,IAAI,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE;gBACpD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAsB,CAAC,CAAC;gBACjD,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;gBAChC,OAAO,KAAK,CAAC;aACd;YACD,MAAM,aAAa,GAAG,iBAAiB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YAC5D,IAAI,aAAa,KAAK,SAAS,EAAE;gBAC/B,OAAO,WAAW,CAAC;aACpB;YACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAA8B,CAAC,CAAC;YACzD,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;YACxE,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE;gBACZ,KAAK,EAAE,UAAU,CAAC,aAAa,EAAE,WAAW,CAAC;gBAC7C,KAAK,EAAE,aAAa;aACrB,CAAC,CAAC;YACH,OAAO,aAAa,CAAC;SACtB;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAsB,CAAC,CAAC;QACjD,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAChC,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../lib/middlewares/cache.ts"],"names":[],"mappings":"AAsCA,MAAM,UAAU,KAAK,CAAiD,EACpE,MAAM,GAAG,CAAC,EAAE,OAAO,GAAG,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAK,EAAE,EAAE;IACtD,IAAI,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;QACpC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;IACzC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,EACD,KAAK,EACL,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,SAAS,GACO;IAChB;;;MAGE;IACF,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC3B,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QACzB,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO,IAAI,CAAC,KAAsB,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACxB,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACvE,IAAI,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC;gBACrD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAsB,CAAC,CAAC;gBACjD,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;gBAChC,OAAO,KAAK,CAAC;YACf,CAAC;YACD,MAAM,aAAa,GAAG,iBAAiB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YAC5D,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gBAChC,OAAO,WAAW,CAAC;YACrB,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAA8B,CAAC,CAAC;YACzD,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;YACxE,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE;gBACZ,KAAK,EAAE,UAAU,CAAC,aAAa,EAAE,WAAW,CAAC;gBAC7C,KAAK,EAAE,aAAa;aACrB,CAAC,CAAC;YACH,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAsB,CAAC,CAAC;QACjD,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAChC,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"combine.js","sourceRoot":"","sources":["../../lib/middlewares/combine.ts"],"names":[],"mappings":"AAs2BA,SAAS,OAAO,CA8Cd,GAAG,WAsBF;IAED,sCAAsC;IACtC,OAAO,UAAU,KAAK,EAAE,IAAI;QAC1B,SAAS,QAAQ,CAAC,KAAU,EAAE,KAAa;YACzC,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,CAAC,OAAO,EAAE;gBACZ,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;aACpB;YACD,6DAA6D;YAC7D,MAAM,MAAM,GAAQ,OAAO,CAAC,KAAK,EAAE,UAAU,KAAK;gBAChD,OAAO,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;YACH,IAAI,MAAM,KAAK,SAAS,EAAE;gBACxB,MAAM,IAAI,KAAK,CAAC,oBAAoB,KAAK,4BAA4B,CAAC,CAAC;aACxE;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"combine.js","sourceRoot":"","sources":["../../lib/middlewares/combine.ts"],"names":[],"mappings":"AAs2BA,SAAS,OAAO,CA8Cd,GAAG,WAsBF;IAED,sCAAsC;IACtC,OAAO,UAAU,KAAK,EAAE,IAAI;QAC1B,SAAS,QAAQ,CAAC,KAAU,EAAE,KAAa;YACzC,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;YACD,6DAA6D;YAC7D,MAAM,MAAM,GAAQ,OAAO,CAAC,KAAK,EAAE,UAAU,KAAK;gBAChD,OAAO,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;YACH,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,oBAAoB,KAAK,4BAA4B,CAAC,CAAC;YACzE,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"fetchExternal.js","sourceRoot":"","sources":["../../lib/middlewares/fetchExternal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAC3B,KAAK,GAAG,SAAS,EAAE,CAAC,KAAK;IAEzB,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,IAAI,CAAC,KAAK,EAAE;QACnD,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;KAC3D;IACD,OAAO,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE;QAC1B,IAAI;YACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;YACtC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;gBAChB,MAAM,IAAI,YAAY,CACpB,QAAQ,CAAC,UAAU,EACnB,QAAQ,CAAC,MAAM,EACf,SAAS,EACT,OAAO,EACP,QAAQ,CACT,CAAC;aACH;YACD,OAAO,QAAQ,CAAC;SACjB;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,KAAK,YAAY,KAAK,EAAE;gBAC1B,MAAM,IAAI,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;aAChE;YACD,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;SAChE;IACH,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"fetchExternal.js","sourceRoot":"","sources":["../../lib/middlewares/fetchExternal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAC3B,KAAK,GAAG,SAAS,EAAE,CAAC,KAAK;IAEzB,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,IAAI,CAAC,KAAK,EAAE,CAAC;QACpD,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE;QAC1B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;YACtC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,YAAY,CACpB,QAAQ,CAAC,UAAU,EACnB,QAAQ,CAAC,MAAM,EACf,SAAS,EACT,OAAO,EACP,QAAQ,CACT,CAAC;YACJ,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC3B,MAAM,IAAI,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YACjE,CAAC;YACD,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACjE,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -4,7 +4,7 @@ import type { CustomFieldMap, Handler, Query } from "../types";
4
4
  *
5
5
  * @returns Promise that resolves to the response.
6
6
  */
7
- export declare function fetchLocal<T extends object>(): Handler<Query<T, {}> & {
7
+ export declare function fetchLocal<T extends object>(): Handler<Query<T, undefined> & {
8
8
  type: T[];
9
9
  customFields: never;
10
10
  }, any, never, never>;
@@ -1 +1 @@
1
- {"version":3,"file":"log.js","sourceRoot":"","sources":["../../lib/middlewares/log.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAI7B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,UAAU,GAAG,CAAe,KAAK,GAAG,OAAO;IAC/C,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;QACzC,OAAO,QAAQ,CAAC;KACjB;IACD,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC3B,+BAA+B;QAC/B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC7B,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAsB,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC9B,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO,MAAsB,CAAC;SAC/B;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC5B,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,KAAK,CAAC;SACb;QACD,8BAA8B;IAChC,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"log.js","sourceRoot":"","sources":["../../lib/middlewares/log.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAI7B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,UAAU,GAAG,CAAe,KAAK,GAAG,OAAO;IAC/C,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;QAC1C,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC3B,+BAA+B;QAC/B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAsB,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC9B,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO,MAAsB,CAAC;QAChC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC5B,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,KAAK,CAAC;QACd,CAAC;QACD,8BAA8B;IAChC,CAAC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../lib/middlewares/retry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD;;;;;;;GAOG;AACH,MAAM,UAAU,KAAK,CAAC,EACpB,MAAM,GAAG,CAAC,EACV,KAAK,GAAG,IAAI,EACZ,UAAU,GAAG,GAAG,GACjB,GAAG,EAAE;IACJ,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAAC;IAClC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,IAAI,UAAU,GAAG,MAAM,CAAC;QACxB,MAAM,KAAK,GAAG,KAAK,IAAuB,EAAE;YAC1C,IAAI;gBACF,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC;aAC1B;YAAC,OAAO,KAAK,EAAE;gBACd,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;oBAChD,UAAU,GAAG,MAAM,CAAC;oBACpB,MAAM,WAAW,EAAE,CAAC;iBACrB;qBAAM,IAAI,CAAC,CAAC,KAAK,YAAY,YAAY,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE;oBACjE,MAAM,KAAK,CAAC;iBACb;gBACD,IAAI,EAAE,UAAU,GAAG,CAAC,EAAE;oBACpB,MAAM,KAAK,CACT,KAAK,GAAG,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAC3D,KAAK,CAAC,MAAM,CACb,CAAC;oBACF,OAAO,KAAK,EAAE,CAAC;iBAChB;gBACD,MAAM,KAAK,CAAC;aACb;QACH,CAAC,CAAC;QACF,OAAO,KAAK,EAAE,CAAC;IACjB,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../lib/middlewares/retry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD;;;;;;;GAOG;AACH,MAAM,UAAU,KAAK,CAAC,EACpB,MAAM,GAAG,CAAC,EACV,KAAK,GAAG,IAAI,EACZ,UAAU,GAAG,GAAG,GACjB,GAAG,EAAE;IACJ,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAAC;IAClC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,IAAI,UAAU,GAAG,MAAM,CAAC;QACxB,MAAM,KAAK,GAAG,KAAK,IAAuB,EAAE;YAC1C,IAAI,CAAC;gBACH,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;oBACjD,UAAU,GAAG,MAAM,CAAC;oBACpB,MAAM,WAAW,EAAE,CAAC;gBACtB,CAAC;qBAAM,IAAI,CAAC,CAAC,KAAK,YAAY,YAAY,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;oBAClE,MAAM,KAAK,CAAC;gBACd,CAAC;gBACD,IAAI,EAAE,UAAU,GAAG,CAAC,EAAE,CAAC;oBACrB,MAAM,KAAK,CACT,KAAK,GAAG,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAC3D,KAAK,CAAC,MAAM,CACb,CAAC;oBACF,OAAO,KAAK,EAAE,CAAC;gBACjB,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC,CAAC;QACF,OAAO,KAAK,EAAE,CAAC;IACjB,CAAC,CAAC;AACJ,CAAC"}
@@ -9,17 +9,17 @@ export declare function defineCustomFetch<M extends Record<string, object>>(hand
9
9
  type: Key | any[];
10
10
  customFields?: CustomFieldMap<any>;
11
11
  }, any, never, never>): {
12
- <K extends keyof M, T extends M[K], const Q extends Query<T, {}>>(query: Q & {
12
+ <K extends keyof M, T extends M[K], const Q extends Query<T, undefined>>(query: Q & {
13
13
  type: K;
14
14
  customFields?: undefined;
15
- }): Promise<Result<T, Q, {}>>;
15
+ }): Promise<Result<T, Q, undefined>>;
16
16
  <K_1 extends keyof M, T_1 extends M[K_1], const Q_1 extends Query<T_1, C>, const C extends CustomFieldMap<T_1>>(query: Q_1 & {
17
17
  type: K_1;
18
18
  customFields: C;
19
19
  }): Promise<Result<T_1, Q_1, C>>;
20
- <T_2 extends object, const Q_2 extends Query<T_2, {}>>(type: T_2[], query: Q_2 & {
20
+ <T_2 extends object, const Q_2 extends Query<T_2, undefined>>(type: T_2[], query: Q_2 & {
21
21
  customFields?: undefined;
22
- }): Promise<Result<T_2, Q_2, {}>>;
22
+ }): Promise<Result<T_2, Q_2, undefined>>;
23
23
  <T_3 extends object, const Q_3 extends Query<T_3, C_1>, const C_1 extends CustomFieldMap<T_3>>(query: Q_3 & {
24
24
  type: T_3[];
25
25
  customFields: C_1;
@@ -1 +1 @@
1
- {"version":3,"file":"defineCustomFetch.js","sourceRoot":"","sources":["../../lib/tools/defineCustomFetch.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAKC;IAsBD,KAAK,UAAU,WAAW,CAKxB,KAA8C;QAC9C,OAAO,MAAM,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"defineCustomFetch.js","sourceRoot":"","sources":["../../lib/tools/defineCustomFetch.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAKC;IA2BD,KAAK,UAAU,WAAW,CAKxB,KAA8C;QAC9C,OAAO,MAAM,OAAO,CAAC,KAAY,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC"}
@@ -3,10 +3,10 @@ export declare function defineGenericFetch<K extends string>(handler: Handler<Qu
3
3
  type: Key | any[];
4
4
  customFields?: CustomFieldMap<any>;
5
5
  }, any, never, never>): <T extends object>() => {
6
- <const Q extends Query<T, {}>>(query: Q & {
6
+ <const Q extends Query<T, undefined>>(query: Q & {
7
7
  type: K | T[];
8
8
  customFields?: undefined;
9
- }): Promise<Result<T, Q, {}>>;
9
+ }): Promise<Result<T, Q, undefined>>;
10
10
  <const Q_1 extends Query<T, C>, const C extends CustomFieldMap<T>>(query: Q_1 & {
11
11
  type: K | T[];
12
12
  customFields: C;
@@ -1 +1 @@
1
- {"version":3,"file":"defineGenericFetch.js","sourceRoot":"","sources":["../../lib/tools/defineGenericFetch.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,UAAU,kBAAkB,CAChC,OAKC;IAED,mHAAmH;IACnH,SAAS,YAAY;QAQnB,KAAK,UAAU,WAAW,CAIxB,KAA8C;YAE9C,OAAO,MAAM,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"defineGenericFetch.js","sourceRoot":"","sources":["../../lib/tools/defineGenericFetch.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,UAAU,kBAAkB,CAChC,OAKC;IAED,mHAAmH;IACnH,SAAS,YAAY;QAQnB,KAAK,UAAU,WAAW,CAIxB,KAA8C;YAE9C,OAAO,MAAM,OAAO,CAAC,KAAY,EAAE,IAAI,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Escapes special characters of a given regular expresion `pattern`.
3
+ *
4
+ * @param pattern Regular expression string to escape.
5
+ * @returns Escaped regular expression
6
+ */
7
+ export declare function escapeRegex(pattern: string): string;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Escapes special characters of a given regular expresion `pattern`.
3
+ *
4
+ * @param pattern Regular expression string to escape.
5
+ * @returns Escaped regular expression
6
+ */
7
+ export function escapeRegex(pattern) {
8
+ return pattern.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
9
+ }
10
+ //# sourceMappingURL=escapeRegex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escapeRegex.js","sourceRoot":"","sources":["../../lib/tools/escapeRegex.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,OAAO,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACxD,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { Filter, FilterKeys } from "../types.ts";
2
+ export declare function filterChildren<T extends object>(parentPath: string, pathFieldKey: FilterKeys<T, string>, deep?: boolean, pathSeparator?: string): Filter<T>;
@@ -0,0 +1,13 @@
1
+ import { escapeRegex } from "./escapeRegex.js";
2
+ export function filterChildren(parentPath, pathFieldKey, deep = false, pathSeparator = "/") {
3
+ return {
4
+ field: pathFieldKey,
5
+ operator: "match",
6
+ value: childrenRegex(parentPath, deep, pathSeparator),
7
+ };
8
+ }
9
+ function childrenRegex(parentPath, deep = false, pathSeparator = "/") {
10
+ const escapedSeparator = escapeRegex(pathSeparator);
11
+ return `^${escapeRegex(parentPath)}${parentPath === "" ? "" : escapedSeparator}${deep ? "" : `[^${escapedSeparator}]{1,}$`}`;
12
+ }
13
+ //# sourceMappingURL=filterChildren.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filterChildren.js","sourceRoot":"","sources":["../../lib/tools/filterChildren.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,UAAU,cAAc,CAC5B,UAAkB,EAClB,YAAmC,EACnC,IAAI,GAAG,KAAK,EACZ,aAAa,GAAG,GAAG;IAEnB,OAAO;QACL,KAAK,EAAE,YAAY;QACnB,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE,aAAa,CAAC;KACtD,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CACpB,UAAkB,EAClB,IAAI,GAAG,KAAK,EACZ,aAAa,GAAG,GAAG;IAEnB,MAAM,gBAAgB,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;IACpD,OAAO,IAAI,WAAW,CAAC,UAAU,CAAC,GAChC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAC3B,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,gBAAgB,QAAQ,EAAE,CAAC;AACjD,CAAC"}
@@ -1,9 +1,11 @@
1
1
  import type { Filter } from "../types";
2
+ import type { QuerySettings } from "../types/QuerySettings";
2
3
  /**
3
4
  * Checks wether the provided `value` matches the `filter` or not.
4
5
  *
5
6
  * @param filter The filter to apply.
6
7
  * @param value The value to check.
8
+ * @param settings Optional query settings.
7
9
  * @returns `true` if the `value` matches the `filter` and `false` otherwise.
8
10
  */
9
- export declare function filterItem<T extends object>(filter: Filter<T> | undefined, value: T | undefined): boolean;
11
+ export declare function filterItem<T extends object>(filter: Filter<T> | undefined, value: T | undefined, settings?: QuerySettings<T>): boolean;
@@ -1,12 +1,15 @@
1
+ import { SymbolCache } from "../constants/SymbolCache.js";
2
+ import { filterChildren } from "./filterChildren.js";
1
3
  const { isArray } = Array;
2
4
  /**
3
5
  * Checks wether the provided `value` matches the `filter` or not.
4
6
  *
5
7
  * @param filter The filter to apply.
6
8
  * @param value The value to check.
9
+ * @param settings Optional query settings.
7
10
  * @returns `true` if the `value` matches the `filter` and `false` otherwise.
8
11
  */
9
- export function filterItem(filter, value) {
12
+ export function filterItem(filter, value, settings) {
10
13
  if (value === undefined) {
11
14
  return false;
12
15
  }
@@ -46,6 +49,20 @@ export function filterItem(filter, value) {
46
49
  }
47
50
  case "notEqual":
48
51
  return value[filter.field] !== filter.value;
52
+ case "children": {
53
+ if (filter[SymbolCache] === undefined) {
54
+ switch (true) {
55
+ case settings?.transformFilterChildren !== undefined:
56
+ filter[SymbolCache] = settings.transformFilterChildren(filter);
57
+ break;
58
+ default: {
59
+ const { pathFieldKey = "id", pathFieldSeparator = "/", } = settings || {};
60
+ filter[SymbolCache] = filterChildren(filter.value, pathFieldKey, filter.deep, pathFieldSeparator);
61
+ }
62
+ }
63
+ }
64
+ return filterItem(filter[SymbolCache], value);
65
+ }
49
66
  case "startWith":
50
67
  return (value[filter.field]?.startsWith(filter.value) ??
51
68
  false);
@@ -78,11 +95,11 @@ export function filterItem(filter, value) {
78
95
  if (item === undefined) {
79
96
  return false;
80
97
  }
81
- if (filter.regularExpression === undefined) {
98
+ if (filter[SymbolCache] === undefined) {
82
99
  const { options = {} } = filter;
83
- filter.regularExpression = new RegExp(filter.value, `${options.ignoreCase ? "i" : ""}${options.dotAll ? "s" : ""}`);
100
+ filter[SymbolCache] = new RegExp(filter.value, `${options.ignoreCase ? "i" : ""}${options.dotAll ? "s" : ""}`);
84
101
  }
85
- return filter.regularExpression.test(item);
102
+ return filter[SymbolCache].test(item);
86
103
  }
87
104
  case "intersect": {
88
105
  const item = value[filter.field];
@@ -1 +1 @@
1
- {"version":3,"file":"filterItem.js","sourceRoot":"","sources":["../../lib/tools/filterItem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filterItem.js","sourceRoot":"","sources":["../../lib/tools/filterItem.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"normalizeOrder.js","sourceRoot":"","sources":["../../lib/tools/normalizeOrder.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,cAAc,CAC5B,KAAe;IAEf,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,OAAO,KAAK,CAAC;KACd;IACD,OAAO;QACL,UAAU,EAAE,KAAK;QACjB,KAAK,EAAE,KAAK;KACb,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"normalizeOrder.js","sourceRoot":"","sources":["../../lib/tools/normalizeOrder.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,cAAc,CAC5B,KAAe;IAEf,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO;QACL,UAAU,EAAE,KAAK;QACjB,KAAK,EAAE,KAAK;KACb,CAAC;AACJ,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import type { CustomFieldMap, Query, Result } from "../types.js";
2
- declare function queryItemList<T extends object, const Q extends Query<T, {}>>(query: Q & {
2
+ declare function queryItemList<T extends object, const Q extends Query<T, undefined>>(query: Q & {
3
3
  type: T[];
4
4
  customFields?: never;
5
- }): Result<T, Q, {}>;
5
+ }): Result<T, Q, undefined>;
6
6
  declare function queryItemList<T extends object, const Q extends Query<T, C>, const C extends CustomFieldMap<T>>(query: Q & {
7
7
  type: T[];
8
8
  customFields: C;
@@ -32,7 +32,7 @@ function queryItemList(query) {
32
32
  let result = data;
33
33
  if (context !== undefined || filter !== undefined) {
34
34
  const normalizedFilter = mergeContextAndFilter(context, filter);
35
- result = data.filter((item) => filterItem(normalizedFilter, item));
35
+ result = data.filter((item) => filterItem(normalizedFilter, item, query.settings));
36
36
  }
37
37
  // Sort
38
38
  result = sortItemList(order, result === data ? [...data] : result);
@@ -43,7 +43,7 @@ function queryItemList(query) {
43
43
  return result;
44
44
  }
45
45
  const normalizedFilter = mergeContextAndFilter(context, filter);
46
- const result = data.find((item) => filterItem(normalizedFilter, item));
46
+ const result = data.find((item) => filterItem(normalizedFilter, item, query.settings));
47
47
  if (result === undefined) {
48
48
  throw new RequestError("Not found", 404, query);
49
49
  }
@@ -58,7 +58,7 @@ function queryItemList(query) {
58
58
  }
59
59
  const normalizedFilter = mergeContextAndFilter(context, filter);
60
60
  return data.reduce((result, item) => {
61
- if (filterItem(normalizedFilter, item)) {
61
+ if (filterItem(normalizedFilter, item, query.settings)) {
62
62
  return result + 1;
63
63
  }
64
64
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"queryItemList.js","sourceRoot":"","sources":["../../lib/tools/queryItemList.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queryItemList.js","sourceRoot":"","sources":["../../lib/tools/queryItemList.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sortItemList.js","sourceRoot":"","sources":["../../lib/tools/sortItemList.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,SAAiC,EACjC,KAAU;IAEV,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;QACrD,OAAO,KAAK,CAAC;KACd;IACD,MAAM,eAAe,GAAG,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACtD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACzB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAC3D,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YACrD,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE;gBACzB,SAAS;aACV;YACD,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE;gBACvB,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC5B;YACD,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC5B;QACD,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"sortItemList.js","sourceRoot":"","sources":["../../lib/tools/sortItemList.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,SAAiC,EACjC,KAAU;IAEV,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,eAAe,GAAG,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACtD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACzB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YAC5D,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YACrD,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,SAAS;YACX,CAAC;YACD,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7B,CAAC;YACD,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;AACL,CAAC"}
package/dist/tools.d.ts CHANGED
@@ -2,6 +2,8 @@ export { cork } from "./tools/cork.js";
2
2
  export { defineCheckQuery } from "./tools/defineCheckQuery.js";
3
3
  export { defineCustomFetch } from "./tools/defineCustomFetch.js";
4
4
  export { defineGenericFetch } from "./tools/defineGenericFetch.js";
5
+ export { escapeRegex } from "./tools/escapeRegex.js";
6
+ export { filterChildren } from "./tools/filterChildren.js";
5
7
  export { filterFromContext } from "./tools/filterFromContext.js";
6
8
  export { filterItem } from "./tools/filterItem.js";
7
9
  export { normalizeOrder } from "./tools/normalizeOrder.js";
package/dist/tools.js CHANGED
@@ -3,6 +3,8 @@ export { cork } from "./tools/cork.js";
3
3
  export { defineCheckQuery } from "./tools/defineCheckQuery.js";
4
4
  export { defineCustomFetch } from "./tools/defineCustomFetch.js";
5
5
  export { defineGenericFetch } from "./tools/defineGenericFetch.js";
6
+ export { escapeRegex } from "./tools/escapeRegex.js";
7
+ export { filterChildren } from "./tools/filterChildren.js";
6
8
  export { filterFromContext } from "./tools/filterFromContext.js";
7
9
  export { filterItem } from "./tools/filterItem.js";
8
10
  export { normalizeOrder } from "./tools/normalizeOrder.js";
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../lib/tools.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../lib/tools.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import type { FilterArray } from "./FilterArray";
2
2
  import type { FilterBoolean } from "./FilterBoolean";
3
+ import type { FilterChildren } from "./FilterChildren";
3
4
  import type { FilterField } from "./FilterField";
4
5
  import type { FilterNumber } from "./FilterNumber";
5
6
  import type { FilterSequence } from "./FilterSequence";
@@ -9,4 +10,4 @@ import type { FilterStringMatch } from "./FilterStringMatch";
9
10
  /**
10
11
  * Describes a predicate for filtering items.
11
12
  */
12
- export type Filter<T extends object> = FilterSequence<T> | FilterField<T> | FilterBoolean<T> | FilterString<T> | FilterStringMatch<T> | FilterStringIntersect<T> | FilterNumber<T> | FilterArray<T>;
13
+ export type Filter<T extends object> = FilterArray<T> | FilterBoolean<T> | FilterChildren<T> | FilterField<T> | FilterNumber<T> | FilterSequence<T> | FilterString<T> | FilterStringIntersect<T> | FilterStringMatch<T>;
@@ -0,0 +1,13 @@
1
+ import type { SymbolCache } from "../constants";
2
+ import type { Context } from "./Context";
3
+ import type { Filter } from "./Filter";
4
+ /**
5
+ * Matches the direct children of a specified `value` item.
6
+ * If `deep` is `true`, also captures all the descendants.
7
+ */
8
+ export type FilterChildren<T extends object> = {
9
+ operator: "children";
10
+ value: Context<T> | string;
11
+ deep?: boolean;
12
+ [SymbolCache]?: Filter<T>;
13
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=FilterChildren.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterChildren.js","sourceRoot":"","sources":["../../lib/types/FilterChildren.ts"],"names":[],"mappings":""}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Returns object type with field extending the provided `P` type.
3
3
  */
4
- export type FilterKeys<T extends object, P> = {
5
- [K in keyof T]-?: T[K] extends P ? K : never;
6
- }[keyof T];
4
+ export type FilterKeys<T extends object, P> = keyof T & keyof {
5
+ [K in keyof T as T[K] extends P ? K : never]-?: T[K];
6
+ };
@@ -1,3 +1,4 @@
1
+ import type { SymbolCache } from "../constants/SymbolCache";
1
2
  import type { FilterKeys } from "./FilterKeys";
2
3
  /**
3
4
  * Checks if a given string field matches a given regular expression.
@@ -25,5 +26,5 @@ export type FilterStringMatch<T extends object> = {
25
26
  /**
26
27
  * Compiled regular expression generated by the `testFilter` function.
27
28
  */
28
- regularExpression?: RegExp;
29
+ [SymbolCache]?: RegExp;
29
30
  };
@@ -8,6 +8,7 @@ import type { QueryDelete } from "./QueryDelete";
8
8
  import type { QueryDeleteMultiple } from "./QueryDeleteMultiple";
9
9
  import type { QueryRead } from "./QueryRead";
10
10
  import type { QueryReadMultiple } from "./QueryReadMultiple";
11
+ import type { QuerySettings } from "./QuerySettings";
11
12
  import type { QueryUpdate } from "./QueryUpdate";
12
13
  import type { QueryUpdateMultiple } from "./QueryUpdateMultiple";
13
14
  type QueryBase<T extends object> = QueryRead<T> | QueryReadMultiple<T> | QueryCreate<T> | QueryCreateMultiple<T> | QueryUpdate<T> | QueryUpdateMultiple<T> | QueryDelete<T> | QueryDeleteMultiple<T> | QueryAggregate<T>;
@@ -38,5 +39,13 @@ L extends boolean | undefined = boolean> = Extract<QueryBase<InjectCustomFields<
38
39
  * Common item properties to use for identifying the item.
39
40
  */
40
41
  context?: Context<T>;
42
+ /**
43
+ * Query parameters.
44
+ */
45
+ parameters?: Record<string, string | string[] | number | number[]>;
46
+ /**
47
+ * Query settings.
48
+ */
49
+ settings?: QuerySettings<T>;
41
50
  };
42
51
  export {};
@@ -0,0 +1,8 @@
1
+ import type { Filter } from "./Filter";
2
+ import type { FilterChildren } from "./FilterChildren";
3
+ import type { FilterKeys } from "./FilterKeys";
4
+ export type QuerySettings<T extends object> = {
5
+ pathFieldSeparator?: string;
6
+ pathFieldKey?: FilterKeys<T, string>;
7
+ transformFilterChildren?: (filter: FilterChildren<T>) => Filter<T>;
8
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=QuerySettings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuerySettings.js","sourceRoot":"","sources":["../../lib/types/QuerySettings.ts"],"names":[],"mappings":""}
@@ -2,19 +2,17 @@ import type { CustomFieldMap } from "./CustomFieldMap";
2
2
  import type { InjectCustomFields } from "./InjectCustomFields";
3
3
  import type { Item } from "./Item";
4
4
  import type { Query } from "./Query";
5
- export type PickFields<T extends object, F extends string | number | symbol> = [
6
- F
7
- ] extends [keyof T] ? {
5
+ export type PickFields<T extends object | undefined, F extends string | number | symbol> = [F] extends [keyof T] ? {
8
6
  readonly [K in F]: T[K];
9
7
  } : {
10
8
  readonly [K in keyof T]: T[K];
11
9
  };
12
- export type ResultRead<T extends object, Q extends Query<T, C>, C extends CustomFieldMap<T>, U extends InjectCustomFields<T, C> = InjectCustomFields<T, C>> = [C] extends [CustomFieldMap<T>] ? [Q] extends [{
10
+ export type ResultRead<T extends object, Q extends Query<T, C>, C extends CustomFieldMap<T> | undefined, U extends InjectCustomFields<T, C> | undefined = InjectCustomFields<T, C>> = [C] extends [CustomFieldMap<T>] ? [Q] extends [{
13
11
  fields: (keyof U)[];
14
12
  }] ? PickFields<U, Item<Q["fields"]>> : U : [Q] extends [{
15
13
  fields: (keyof T)[];
16
14
  }] ? PickFields<T, Item<Q["fields"]>> : T;
17
- export type Result<T extends object, Q extends Query<T, C>, C extends CustomFieldMap<T>, U extends InjectCustomFields<T, C> = InjectCustomFields<T, C>> = [Q] extends [{
15
+ export type Result<T extends object, Q extends Query<T, C>, C extends CustomFieldMap<T> | undefined, U extends InjectCustomFields<T, C> | undefined = InjectCustomFields<T, C>> = [Q] extends [{
18
16
  method: "read";
19
17
  }] ? [Q] extends [{
20
18
  multiple: true;
package/dist/types.d.ts CHANGED
@@ -13,6 +13,7 @@ export type { FieldFunctionReturn } from "./types/FieldFunctionReturn";
13
13
  export type { Filter } from "./types/Filter";
14
14
  export type { FilterArray } from "./types/FilterArray";
15
15
  export type { FilterBoolean } from "./types/FilterBoolean";
16
+ export type { FilterChildren } from "./types/FilterChildren";
16
17
  export type { FilterField } from "./types/FilterField";
17
18
  export type { FilterKeys } from "./types/FilterKeys";
18
19
  export type { FilterNumber } from "./types/FilterNumber";
@@ -41,6 +42,7 @@ export type { QueryDeleteMultiple } from "./types/QueryDeleteMultiple";
41
42
  export type { QueryMethod } from "./types/QueryMethod";
42
43
  export type { QueryRead } from "./types/QueryRead";
43
44
  export type { QueryReadMultiple } from "./types/QueryReadMultiple";
45
+ export type { QuerySettings } from "./types/QuerySettings";
44
46
  export type { QueryUpdate } from "./types/QueryUpdate";
45
47
  export type { QueryUpdateMultiple } from "./types/QueryUpdateMultiple";
46
48
  export type { Result } from "./types/Result";
@@ -0,0 +1 @@
1
+ export const SymbolCache = Symbol("cache");
@@ -0,0 +1,2 @@
1
+ // File automatically generated by `vite-plugin-module-list`
2
+ export { SymbolCache } from "./constants/SymbolCache.js";
@@ -7,7 +7,7 @@ import type { CustomFieldMap, Handler, Query } from "../types";
7
7
  * @returns Promise that resolves to the response.
8
8
  */
9
9
  export function fetchLocal<T extends object>(): Handler<
10
- Query<T, {}> & { type: T[]; customFields: never },
10
+ Query<T, undefined> & { type: T[]; customFields: never },
11
11
  any,
12
12
  never,
13
13
  never
@@ -19,18 +19,23 @@ export function defineCustomFetch<M extends Record<string, object>>(
19
19
  async function customFetch<
20
20
  K extends keyof M,
21
21
  T extends M[K],
22
- const Q extends Query<T, {}>,
23
- >(query: Q & { type: K; customFields?: never }): Promise<Result<T, Q, {}>>;
22
+ const Q extends Query<T, undefined>,
23
+ >(
24
+ query: Q & { type: K; customFields?: never },
25
+ ): Promise<Result<T, Q, undefined>>;
24
26
  async function customFetch<
25
27
  K extends keyof M,
26
28
  T extends M[K],
27
29
  const Q extends Query<T, C>,
28
30
  const C extends CustomFieldMap<T>,
29
31
  >(query: Q & { type: K; customFields: C }): Promise<Result<T, Q, C>>;
30
- async function customFetch<T extends object, const Q extends Query<T, {}>>(
32
+ async function customFetch<
33
+ T extends object,
34
+ const Q extends Query<T, undefined>,
35
+ >(
31
36
  type: T[],
32
37
  query: Q & { customFields?: never },
33
- ): Promise<Result<T, Q, {}>>;
38
+ ): Promise<Result<T, Q, undefined>>;
34
39
  async function customFetch<
35
40
  T extends object,
36
41
  const Q extends Query<T, C>,
@@ -42,7 +47,7 @@ export function defineCustomFetch<M extends Record<string, object>>(
42
47
  const Q extends Query<T, C>,
43
48
  const C extends CustomFieldMap<T>,
44
49
  >(query: Q & { type: T[] | K; customFields?: C }): Promise<Result<T, Q, C>> {
45
- return await handler(query, cork);
50
+ return await handler(query as any, cork);
46
51
  }
47
52
  return customFetch;
48
53
  }
@@ -12,9 +12,9 @@ export function defineGenericFetch<K extends string>(
12
12
  ) {
13
13
  // FIXME: Until https://github.com/microsoft/TypeScript/issues/26242 gets resolved, the fetcher needs to be curried
14
14
  function genericFetch<T extends object>() {
15
- async function customFetch<const Q extends Query<T, {}>>(
15
+ async function customFetch<const Q extends Query<T, undefined>>(
16
16
  query: Q & { type: K | T[]; customFields?: never },
17
- ): Promise<Result<T, Q, {}>>;
17
+ ): Promise<Result<T, Q, undefined>>;
18
18
  async function customFetch<
19
19
  const Q extends Query<T, C>,
20
20
  const C extends CustomFieldMap<T>,
@@ -25,7 +25,7 @@ export function defineGenericFetch<K extends string>(
25
25
  >(
26
26
  query: Q & { type: K | T[]; customFields?: C },
27
27
  ): Promise<Result<T, Q, C>> {
28
- return await handler(query, cork);
28
+ return await handler(query as any, cork);
29
29
  }
30
30
  return customFetch;
31
31
  }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Escapes special characters of a given regular expresion `pattern`.
3
+ *
4
+ * @param pattern Regular expression string to escape.
5
+ * @returns Escaped regular expression
6
+ */
7
+ export function escapeRegex(pattern: string) {
8
+ return pattern.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
9
+ }
@@ -0,0 +1,27 @@
1
+ import type { Filter, FilterKeys } from "../types.ts";
2
+
3
+ import { escapeRegex } from "./escapeRegex.js";
4
+
5
+ export function filterChildren<T extends object>(
6
+ parentPath: string,
7
+ pathFieldKey: FilterKeys<T, string>,
8
+ deep = false,
9
+ pathSeparator = "/",
10
+ ): Filter<T> {
11
+ return {
12
+ field: pathFieldKey,
13
+ operator: "match",
14
+ value: childrenRegex(parentPath, deep, pathSeparator),
15
+ };
16
+ }
17
+
18
+ function childrenRegex(
19
+ parentPath: string,
20
+ deep = false,
21
+ pathSeparator = "/",
22
+ ): string {
23
+ const escapedSeparator = escapeRegex(pathSeparator);
24
+ return `^${escapeRegex(parentPath)}${
25
+ parentPath === "" ? "" : escapedSeparator
26
+ }${deep ? "" : `[^${escapedSeparator}]{1,}$`}`;
27
+ }
@@ -1,5 +1,8 @@
1
1
  import { expect, test } from "vitest";
2
2
 
3
+ import { SymbolCache } from "../constants.js";
4
+ import type { FilterChildren } from "../types.js";
5
+
3
6
  import { filterItem } from "./filterItem.js";
4
7
 
5
8
  test("tests filter lists", () => {
@@ -201,3 +204,52 @@ test("tests filter on array values", () => {
201
204
  ),
202
205
  ).toBeFalsy();
203
206
  });
207
+
208
+ test("tests filter with children predicates", () => {
209
+ expect(
210
+ filterItem({ operator: "children", value: "a" }, { id: "a/b" }),
211
+ ).toBeTruthy();
212
+ expect(
213
+ filterItem(
214
+ { operator: "children", value: ".a" },
215
+ { path: ".a.b" },
216
+ {
217
+ pathFieldKey: "path",
218
+ pathFieldSeparator: ".",
219
+ },
220
+ ),
221
+ ).toBeTruthy();
222
+ const filterChildren: FilterChildren<any> = {
223
+ operator: "children",
224
+ value: "a",
225
+ };
226
+ expect(
227
+ filterItem(
228
+ filterChildren,
229
+ { path: ".a.b" },
230
+ {
231
+ transformFilterChildren(filter) {
232
+ return {
233
+ field: "path",
234
+ operator: "startWith",
235
+ value: `.${filter.value}.`,
236
+ };
237
+ },
238
+ },
239
+ ),
240
+ ).toBeTruthy();
241
+ expect(filterChildren[SymbolCache]).toBeDefined();
242
+ expect(
243
+ filterItem({ operator: "children", value: "b" }, { id: "a/b" }),
244
+ ).toBeFalsy();
245
+ expect(
246
+ filterItem(
247
+ { operator: "children", value: "ba" },
248
+ { path: ".a.b" },
249
+ {
250
+ pathFieldKey: "path",
251
+ pathFieldSeparator: ".",
252
+ },
253
+ ),
254
+ ).toBeFalsy();
255
+ });
@@ -1,4 +1,8 @@
1
- import type { Any, Filter } from "../types";
1
+ import { SymbolCache } from "../constants/SymbolCache.js";
2
+ import type { Any, Filter, FilterKeys } from "../types";
3
+ import type { QuerySettings } from "../types/QuerySettings";
4
+
5
+ import { filterChildren } from "./filterChildren.js";
2
6
 
3
7
  const { isArray } = Array;
4
8
 
@@ -7,11 +11,13 @@ const { isArray } = Array;
7
11
  *
8
12
  * @param filter The filter to apply.
9
13
  * @param value The value to check.
14
+ * @param settings Optional query settings.
10
15
  * @returns `true` if the `value` matches the `filter` and `false` otherwise.
11
16
  */
12
17
  export function filterItem<T extends object>(
13
18
  filter: Filter<T> | undefined,
14
19
  value: T | undefined,
20
+ settings?: QuerySettings<T>,
15
21
  ): boolean {
16
22
  if (value === undefined) {
17
23
  return false;
@@ -52,6 +58,28 @@ export function filterItem<T extends object>(
52
58
  }
53
59
  case "notEqual":
54
60
  return value[filter.field] !== filter.value;
61
+ case "children": {
62
+ if (filter[SymbolCache] === undefined) {
63
+ switch (true) {
64
+ case settings?.transformFilterChildren !== undefined:
65
+ filter[SymbolCache] = settings.transformFilterChildren(filter);
66
+ break;
67
+ default: {
68
+ const {
69
+ pathFieldKey = "id" as FilterKeys<T, string>,
70
+ pathFieldSeparator = "/",
71
+ } = settings || {};
72
+ filter[SymbolCache] = filterChildren(
73
+ filter.value as string,
74
+ pathFieldKey,
75
+ filter.deep,
76
+ pathFieldSeparator,
77
+ );
78
+ }
79
+ }
80
+ }
81
+ return filterItem(filter[SymbolCache], value);
82
+ }
55
83
  case "startWith":
56
84
  return (
57
85
  (value[filter.field] as string | undefined)?.startsWith(filter.value) ??
@@ -88,14 +116,14 @@ export function filterItem<T extends object>(
88
116
  if (item === undefined) {
89
117
  return false;
90
118
  }
91
- if (filter.regularExpression === undefined) {
119
+ if (filter[SymbolCache] === undefined) {
92
120
  const { options = {} } = filter;
93
- filter.regularExpression = new RegExp(
121
+ filter[SymbolCache] = new RegExp(
94
122
  filter.value,
95
123
  `${options.ignoreCase ? "i" : ""}${options.dotAll ? "s" : ""}`,
96
124
  );
97
125
  }
98
- return filter.regularExpression.test(item);
126
+ return filter[SymbolCache].test(item);
99
127
  }
100
128
  case "intersect": {
101
129
  const item = value[filter.field];
@@ -5,7 +5,7 @@ import { queryItemList } from "./queryItemList.js";
5
5
  test("queries a single item", () => {
6
6
  expect(
7
7
  queryItemList({
8
- type: [{ a: 1 }, { a: 2 }, { a: 3 }],
8
+ type: [{ a: 1 }, { a: 2 }, { a: 3 }] as { a: number }[],
9
9
  }),
10
10
  ).toEqual({ a: 1 });
11
11
  expect(() =>
@@ -13,7 +13,7 @@ test("queries a single item", () => {
13
13
  context: {
14
14
  a: 4,
15
15
  },
16
- type: [{ a: 1 }, { a: 2 }, { a: 3 }],
16
+ type: [{ a: 1 }, { a: 2 }, { a: 3 }] as { a: number }[],
17
17
  }),
18
18
  ).toThrow("Not found");
19
19
  expect(
@@ -7,6 +7,7 @@ import type {
7
7
  Filter,
8
8
  Order,
9
9
  Query,
10
+ QueryAny,
10
11
  Result,
11
12
  } from "../types.js";
12
13
 
@@ -39,9 +40,9 @@ function normalizeAggregator<T extends object>(
39
40
  return aggregator.operator;
40
41
  }
41
42
 
42
- function queryItemList<T extends object, const Q extends Query<T, {}>>(
43
+ function queryItemList<T extends object, const Q extends Query<T, undefined>>(
43
44
  query: Q & { type: T[]; customFields?: never },
44
- ): Result<T, Q, {}>;
45
+ ): Result<T, Q, undefined>;
45
46
  function queryItemList<
46
47
  T extends object,
47
48
  const Q extends Query<T, C>,
@@ -66,7 +67,9 @@ function queryItemList<
66
67
  context,
67
68
  filter as Filter<T>,
68
69
  );
69
- result = data.filter((item) => filterItem(normalizedFilter, item));
70
+ result = data.filter((item) =>
71
+ filterItem(normalizedFilter, item, query.settings),
72
+ );
70
73
  }
71
74
  // Sort
72
75
  result = sortItemList(
@@ -83,9 +86,11 @@ function queryItemList<
83
86
  context,
84
87
  filter as Filter<T>,
85
88
  );
86
- const result = data.find((item) => filterItem(normalizedFilter, item));
89
+ const result = data.find((item) =>
90
+ filterItem(normalizedFilter, item, query.settings),
91
+ );
87
92
  if (result === undefined) {
88
- throw new RequestError("Not found", 404, query);
93
+ throw new RequestError("Not found", 404, query as QueryAny);
89
94
  }
90
95
  return result as Result<T, Q, C>;
91
96
  }
@@ -101,7 +106,7 @@ function queryItemList<
101
106
  filter as Filter<T>,
102
107
  );
103
108
  return data.reduce((result, item) => {
104
- if (filterItem(normalizedFilter, item)) {
109
+ if (filterItem(normalizedFilter, item, query.settings)) {
105
110
  return result + 1;
106
111
  }
107
112
  return result;
package/lib/tools.ts CHANGED
@@ -3,6 +3,8 @@ export { cork } from "./tools/cork.js";
3
3
  export { defineCheckQuery } from "./tools/defineCheckQuery.js";
4
4
  export { defineCustomFetch } from "./tools/defineCustomFetch.js";
5
5
  export { defineGenericFetch } from "./tools/defineGenericFetch.js";
6
+ export { escapeRegex } from "./tools/escapeRegex.js";
7
+ export { filterChildren } from "./tools/filterChildren.js";
6
8
  export { filterFromContext } from "./tools/filterFromContext.js";
7
9
  export { filterItem } from "./tools/filterItem.js";
8
10
  export { normalizeOrder } from "./tools/normalizeOrder.js";
@@ -1,20 +1,23 @@
1
1
  import type { FilterArray } from "./FilterArray";
2
2
  import type { FilterBoolean } from "./FilterBoolean";
3
+ import type { FilterChildren } from "./FilterChildren";
3
4
  import type { FilterField } from "./FilterField";
4
5
  import type { FilterNumber } from "./FilterNumber";
5
6
  import type { FilterSequence } from "./FilterSequence";
6
7
  import type { FilterString } from "./FilterString";
7
8
  import type { FilterStringIntersect } from "./FilterStringIntersect";
8
9
  import type { FilterStringMatch } from "./FilterStringMatch";
10
+
9
11
  /**
10
12
  * Describes a predicate for filtering items.
11
13
  */
12
14
  export type Filter<T extends object> =
13
- | FilterSequence<T>
14
- | FilterField<T>
15
+ | FilterArray<T>
15
16
  | FilterBoolean<T>
17
+ | FilterChildren<T>
18
+ | FilterField<T>
19
+ | FilterNumber<T>
20
+ | FilterSequence<T>
16
21
  | FilterString<T>
17
- | FilterStringMatch<T>
18
22
  | FilterStringIntersect<T>
19
- | FilterNumber<T>
20
- | FilterArray<T>;
23
+ | FilterStringMatch<T>;
@@ -0,0 +1,15 @@
1
+ import type { SymbolCache } from "../constants";
2
+
3
+ import type { Context } from "./Context";
4
+ import type { Filter } from "./Filter";
5
+
6
+ /**
7
+ * Matches the direct children of a specified `value` item.
8
+ * If `deep` is `true`, also captures all the descendants.
9
+ */
10
+ export type FilterChildren<T extends object> = {
11
+ operator: "children";
12
+ value: Context<T> | string;
13
+ deep?: boolean;
14
+ [SymbolCache]?: Filter<T>;
15
+ };
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * Returns object type with field extending the provided `P` type.
3
3
  */
4
- export type FilterKeys<T extends object, P> = {
5
- [K in keyof T]-?: T[K] extends P ? K : never;
6
- }[keyof T];
4
+ export type FilterKeys<T extends object, P> = keyof T &
5
+ keyof {
6
+ [K in keyof T as T[K] extends P ? K : never]-?: T[K];
7
+ };
@@ -1,3 +1,5 @@
1
+ import type { SymbolCache } from "../constants/SymbolCache";
2
+
1
3
  import type { FilterKeys } from "./FilterKeys";
2
4
 
3
5
  /**
@@ -26,5 +28,5 @@ export type FilterStringMatch<T extends object> = {
26
28
  /**
27
29
  * Compiled regular expression generated by the `testFilter` function.
28
30
  */
29
- regularExpression?: RegExp;
31
+ [SymbolCache]?: RegExp;
30
32
  };
@@ -8,6 +8,7 @@ import type { QueryDelete } from "./QueryDelete";
8
8
  import type { QueryDeleteMultiple } from "./QueryDeleteMultiple";
9
9
  import type { QueryRead } from "./QueryRead";
10
10
  import type { QueryReadMultiple } from "./QueryReadMultiple";
11
+ import type { QuerySettings } from "./QuerySettings";
11
12
  import type { QueryUpdate } from "./QueryUpdate";
12
13
  import type { QueryUpdateMultiple } from "./QueryUpdateMultiple";
13
14
 
@@ -50,4 +51,12 @@ export type Query<
50
51
  * Common item properties to use for identifying the item.
51
52
  */
52
53
  context?: Context<T>;
54
+ /**
55
+ * Query parameters.
56
+ */
57
+ parameters?: Record<string, string | string[] | number | number[]>;
58
+ /**
59
+ * Query settings.
60
+ */
61
+ settings?: QuerySettings<T>;
53
62
  };
@@ -16,7 +16,6 @@ export type QueryReadMultiple<T extends object> = {
16
16
  * Upper bound of the number of items to return.
17
17
  */
18
18
  limit?: number;
19
-
20
19
  /**
21
20
  * Item fields to pick. If omitted, all fields are picked.
22
21
  */
@@ -0,0 +1,9 @@
1
+ import type { Filter } from "./Filter";
2
+ import type { FilterChildren } from "./FilterChildren";
3
+ import type { FilterKeys } from "./FilterKeys";
4
+
5
+ export type QuerySettings<T extends object> = {
6
+ pathFieldSeparator?: string;
7
+ pathFieldKey?: FilterKeys<T, string>;
8
+ transformFilterChildren?: (filter: FilterChildren<T>) => Filter<T>;
9
+ };
@@ -3,17 +3,18 @@ import type { InjectCustomFields } from "./InjectCustomFields";
3
3
  import type { Item } from "./Item";
4
4
  import type { Query } from "./Query";
5
5
 
6
- export type PickFields<T extends object, F extends string | number | symbol> = [
7
- F,
8
- ] extends [keyof T]
6
+ export type PickFields<
7
+ T extends object | undefined,
8
+ F extends string | number | symbol,
9
+ > = [F] extends [keyof T]
9
10
  ? { readonly [K in F]: T[K] }
10
11
  : { readonly [K in keyof T]: T[K] };
11
12
 
12
13
  export type ResultRead<
13
14
  T extends object,
14
15
  Q extends Query<T, C>,
15
- C extends CustomFieldMap<T>,
16
- U extends InjectCustomFields<T, C> = InjectCustomFields<T, C>,
16
+ C extends CustomFieldMap<T> | undefined,
17
+ U extends InjectCustomFields<T, C> | undefined = InjectCustomFields<T, C>,
17
18
  > = [C] extends [CustomFieldMap<T>]
18
19
  ? [Q] extends [{ fields: (keyof U)[] }]
19
20
  ? PickFields<U, Item<Q["fields"]>>
@@ -25,8 +26,8 @@ export type ResultRead<
25
26
  export type Result<
26
27
  T extends object,
27
28
  Q extends Query<T, C>,
28
- C extends CustomFieldMap<T>,
29
- U extends InjectCustomFields<T, C> = InjectCustomFields<T, C>,
29
+ C extends CustomFieldMap<T> | undefined,
30
+ U extends InjectCustomFields<T, C> | undefined = InjectCustomFields<T, C>,
30
31
  > = [Q] extends [{ method: "read" }]
31
32
  ? [Q] extends [{ multiple: true }]
32
33
  ? ResultRead<T, Q, C, U>[]
package/lib/types.ts CHANGED
@@ -14,6 +14,7 @@ export type { FieldFunctionReturn } from "./types/FieldFunctionReturn";
14
14
  export type { Filter } from "./types/Filter";
15
15
  export type { FilterArray } from "./types/FilterArray";
16
16
  export type { FilterBoolean } from "./types/FilterBoolean";
17
+ export type { FilterChildren } from "./types/FilterChildren";
17
18
  export type { FilterField } from "./types/FilterField";
18
19
  export type { FilterKeys } from "./types/FilterKeys";
19
20
  export type { FilterNumber } from "./types/FilterNumber";
@@ -42,6 +43,7 @@ export type { QueryDeleteMultiple } from "./types/QueryDeleteMultiple";
42
43
  export type { QueryMethod } from "./types/QueryMethod";
43
44
  export type { QueryRead } from "./types/QueryRead";
44
45
  export type { QueryReadMultiple } from "./types/QueryReadMultiple";
46
+ export type { QuerySettings } from "./types/QuerySettings";
45
47
  export type { QueryUpdate } from "./types/QueryUpdate";
46
48
  export type { QueryUpdateMultiple } from "./types/QueryUpdateMultiple";
47
49
  export type { Result } from "./types/Result";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quetch",
3
- "version": "0.6.5",
3
+ "version": "0.7.0",
4
4
  "type": "module",
5
5
  "main": "./dist/main.js",
6
6
  "exports": {
@@ -69,7 +69,7 @@
69
69
  "tailwindcss": "^3.3.3",
70
70
  "typedoc": "^0.25.2",
71
71
  "typedoc-plugin-markdown": "^3.16.0",
72
- "typescript": "^5.2.2",
72
+ "typescript": "^5.3.2",
73
73
  "vite": "^4.4.11",
74
74
  "vite-plugin-module-list": "^2.1.0",
75
75
  "vitest": "^0.34.6"