@feathersjs/adapter-commons 5.0.0-pre.34 → 5.0.0-pre.36

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/CHANGELOG.md CHANGED
@@ -3,6 +3,22 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [5.0.0-pre.36](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.35...v5.0.0-pre.36) (2023-01-29)
7
+
8
+ ### Bug Fixes
9
+
10
+ - **databases:** Ensure that query sanitization is not necessary when using query schemas ([#3022](https://github.com/feathersjs/feathers/issues/3022)) ([dbf514e](https://github.com/feathersjs/feathers/commit/dbf514e85d1508b95c007462a39b3cadd4ff391d))
11
+
12
+ ### Features
13
+
14
+ - **database:** Add and to the query syntax ([#3021](https://github.com/feathersjs/feathers/issues/3021)) ([00cb0d9](https://github.com/feathersjs/feathers/commit/00cb0d9c302ae951ae007d3d6ceba33e254edd9c))
15
+
16
+ # [5.0.0-pre.35](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.34...v5.0.0-pre.35) (2023-01-12)
17
+
18
+ ### Features
19
+
20
+ - **generators:** Move core code generators to shared generators package ([#2982](https://github.com/feathersjs/feathers/issues/2982)) ([0328d22](https://github.com/feathersjs/feathers/commit/0328d2292153870bc43958f73d2c6f288a8cec17))
21
+
6
22
  # [5.0.0-pre.34](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.33...v5.0.0-pre.34) (2022-12-14)
7
23
 
8
24
  ### Bug Fixes
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2022 Feathers
3
+ Copyright (c) 2023 Feathers Contributors
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -10,13 +10,12 @@
10
10
 
11
11
  This is a repository for handling Feathers common database syntax. See the [API documentation](https://docs.feathersjs.com/api/databases/common.html) for more information.
12
12
 
13
-
14
13
  ## Authors
15
14
 
16
15
  [Feathers contributors](https://github.com/feathersjs/adapter-commons/graphs/contributors)
17
16
 
18
17
  ## License
19
18
 
20
- Copyright (c) 2022 [Feathers contributors](https://github.com/feathersjs/feathers/graphs/contributors)
19
+ Copyright (c) 2023 [Feathers contributors](https://github.com/feathersjs/feathers/graphs/contributors)
21
20
 
22
21
  Licensed under the [MIT license](LICENSE).
package/lib/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Params } from '@feathersjs/feathers';
2
2
  export * from './declarations';
3
3
  export * from './service';
4
- export { filterQuery, FILTERS, OPERATORS } from './query';
4
+ export * from './query';
5
5
  export * from './sort';
6
6
  export declare function select(params: Params, ...otherFields: string[]): (result: any) => any;
package/lib/index.js CHANGED
@@ -14,14 +14,11 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.select = exports.OPERATORS = exports.FILTERS = exports.filterQuery = void 0;
17
+ exports.select = void 0;
18
18
  const commons_1 = require("@feathersjs/commons");
19
19
  __exportStar(require("./declarations"), exports);
20
20
  __exportStar(require("./service"), exports);
21
- var query_1 = require("./query");
22
- Object.defineProperty(exports, "filterQuery", { enumerable: true, get: function () { return query_1.filterQuery; } });
23
- Object.defineProperty(exports, "FILTERS", { enumerable: true, get: function () { return query_1.FILTERS; } });
24
- Object.defineProperty(exports, "OPERATORS", { enumerable: true, get: function () { return query_1.OPERATORS; } });
21
+ __exportStar(require("./query"), exports);
25
22
  __exportStar(require("./sort"), exports);
26
23
  // Return a function that filters a result object or array
27
24
  // and picks only the fields passed as `params.query.$select`
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iDAAuC;AAGvC,iDAA8B;AAC9B,4CAAyB;AACzB,iCAAyD;AAAhD,oGAAA,WAAW,OAAA;AAAE,gGAAA,OAAO,OAAA;AAAE,kGAAA,SAAS,OAAA;AACxC,yCAAsB;AAEtB,0DAA0D;AAC1D,6DAA6D;AAC7D,+BAA+B;AAC/B,SAAgB,MAAM,CAAC,MAAc,EAAE,GAAG,WAAqB;;IAC7D,MAAM,WAAW,GAAyB,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,OAAO,CAAA;IAEhE,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,CAAC,MAAW,EAAE,EAAE,CAAC,MAAM,CAAA;KAC/B;IAED,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IACpD,MAAM,OAAO,GAAG,CAAC,MAAW,EAAE,EAAE,CAAC,WAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC,CAAA;IAEhE,OAAO,CAAC,MAAW,EAAE,EAAE;QACrB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACzB,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;SAC3B;QAED,OAAO,OAAO,CAAC,MAAM,CAAC,CAAA;IACxB,CAAC,CAAA;AACH,CAAC;AAjBD,wBAiBC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iDAAuC;AAGvC,iDAA8B;AAC9B,4CAAyB;AACzB,0CAAuB;AACvB,yCAAsB;AAEtB,0DAA0D;AAC1D,6DAA6D;AAC7D,+BAA+B;AAC/B,SAAgB,MAAM,CAAC,MAAc,EAAE,GAAG,WAAqB;;IAC7D,MAAM,WAAW,GAAyB,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,OAAO,CAAA;IAEhE,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,CAAC,MAAW,EAAE,EAAE,CAAC,MAAM,CAAA;KAC/B;IAED,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IACpD,MAAM,OAAO,GAAG,CAAC,MAAW,EAAE,EAAE,CAAC,WAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC,CAAA;IAEhE,OAAO,CAAC,MAAW,EAAE,EAAE;QACrB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACzB,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;SAC3B;QAED,OAAO,OAAO,CAAC,MAAM,CAAC,CAAA;IACxB,CAAC,CAAA;AACH,CAAC;AAjBD,wBAiBC"}
package/lib/query.d.ts CHANGED
@@ -1,5 +1,12 @@
1
1
  import { Query } from '@feathersjs/feathers';
2
- import { FilterQueryOptions, FilterSettings } from './declarations';
2
+ import { FilterQueryOptions, FilterSettings, PaginationParams } from './declarations';
3
+ /**
4
+ * Returns the converted `$limit` value based on the `paginate` configuration.
5
+ * @param _limit The limit value
6
+ * @param paginate The pagination options
7
+ * @returns The converted $limit value
8
+ */
9
+ export declare const getLimit: (_limit: any, paginate?: PaginationParams) => number;
3
10
  export declare const OPERATORS: string[];
4
11
  export declare const FILTERS: FilterSettings;
5
12
  /**
package/lib/query.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.filterQuery = exports.FILTERS = exports.OPERATORS = void 0;
3
+ exports.filterQuery = exports.FILTERS = exports.OPERATORS = exports.getLimit = void 0;
4
4
  const commons_1 = require("@feathersjs/commons");
5
5
  const errors_1 = require("@feathersjs/errors");
6
6
  const parse = (value) => (typeof value !== 'undefined' ? parseInt(value, 10) : value);
@@ -50,6 +50,23 @@ const getQuery = (query, settings) => {
50
50
  return result;
51
51
  }, {});
52
52
  };
53
+ /**
54
+ * Returns the converted `$limit` value based on the `paginate` configuration.
55
+ * @param _limit The limit value
56
+ * @param paginate The pagination options
57
+ * @returns The converted $limit value
58
+ */
59
+ const getLimit = (_limit, paginate) => {
60
+ const limit = parse(_limit);
61
+ if (paginate && (paginate.default || paginate.max)) {
62
+ const base = paginate.default || 0;
63
+ const lower = typeof limit === 'number' && !isNaN(limit) && limit >= 0 ? limit : base;
64
+ const upper = typeof paginate.max === 'number' ? paginate.max : Number.MAX_VALUE;
65
+ return Math.min(lower, upper);
66
+ }
67
+ return limit;
68
+ };
69
+ exports.getLimit = getLimit;
53
70
  exports.OPERATORS = ['$in', '$nin', '$lt', '$lte', '$gt', '$gte', '$ne', '$or'];
54
71
  exports.FILTERS = {
55
72
  $skip: (value) => parse(value),
@@ -62,16 +79,7 @@ exports.FILTERS = {
62
79
  return result;
63
80
  }, {});
64
81
  },
65
- $limit: (_limit, { paginate }) => {
66
- const limit = parse(_limit);
67
- if (paginate && (paginate.default || paginate.max)) {
68
- const base = paginate.default || 0;
69
- const lower = typeof limit === 'number' && !isNaN(limit) && limit >= 0 ? limit : base;
70
- const upper = typeof paginate.max === 'number' ? paginate.max : Number.MAX_VALUE;
71
- return Math.min(lower, upper);
72
- }
73
- return limit;
74
- },
82
+ $limit: (_limit, { paginate }) => (0, exports.getLimit)(_limit, paginate),
75
83
  $select: (select) => {
76
84
  if (Array.isArray(select)) {
77
85
  return select.map((current) => `${current}`);
@@ -83,6 +91,12 @@ exports.FILTERS = {
83
91
  return or.map((current) => validateQueryProperty(current, operators));
84
92
  }
85
93
  return or;
94
+ },
95
+ $and: (and, { operators }) => {
96
+ if (Array.isArray(and)) {
97
+ return and.map((current) => validateQueryProperty(current, operators));
98
+ }
99
+ return and;
86
100
  }
87
101
  };
88
102
  /**
package/lib/query.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@feathersjs/adapter-commons",
3
- "version": "5.0.0-pre.34",
3
+ "version": "5.0.0-pre.36",
4
4
  "description": "Shared database adapter utility functions",
5
5
  "homepage": "https://feathersjs.com",
6
6
  "keywords": [
@@ -32,7 +32,7 @@
32
32
  "types": "lib/",
33
33
  "scripts": {
34
34
  "prepublish": "npm run compile",
35
- "pack": "npm pack --pack-destination ../cli/test/build",
35
+ "pack": "npm pack --pack-destination ../generators/test/build",
36
36
  "compile": "shx rm -rf lib/ && tsc && npm run pack",
37
37
  "test": "mocha --config ../../.mocharc.json --recursive test/**.test.ts test/**/*.test.ts"
38
38
  },
@@ -50,19 +50,19 @@
50
50
  "access": "public"
51
51
  },
52
52
  "dependencies": {
53
- "@feathersjs/commons": "^5.0.0-pre.34",
54
- "@feathersjs/errors": "^5.0.0-pre.34",
55
- "@feathersjs/feathers": "^5.0.0-pre.34"
53
+ "@feathersjs/commons": "^5.0.0-pre.36",
54
+ "@feathersjs/errors": "^5.0.0-pre.36",
55
+ "@feathersjs/feathers": "^5.0.0-pre.36"
56
56
  },
57
57
  "devDependencies": {
58
58
  "@types/mocha": "^10.0.1",
59
59
  "@types/mongodb": "^4.0.6",
60
- "@types/node": "^18.11.10",
61
- "mocha": "^10.1.0",
62
- "mongodb": "^4.12.1",
60
+ "@types/node": "^18.11.18",
61
+ "mocha": "^10.2.0",
62
+ "mongodb": "^4.13.0",
63
63
  "shx": "^0.3.4",
64
64
  "ts-node": "^10.9.1",
65
- "typescript": "^4.9.3"
65
+ "typescript": "^4.9.4"
66
66
  },
67
- "gitHead": "42cca600d00f0b3b9d89fa79be30fcd46bc50132"
67
+ "gitHead": "9a107b463cc80d7f3c28553c908987e05b0b634a"
68
68
  }
package/src/index.ts CHANGED
@@ -3,7 +3,7 @@ import { Params } from '@feathersjs/feathers'
3
3
 
4
4
  export * from './declarations'
5
5
  export * from './service'
6
- export { filterQuery, FILTERS, OPERATORS } from './query'
6
+ export * from './query'
7
7
  export * from './sort'
8
8
 
9
9
  // Return a function that filters a result object or array
package/src/query.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { _ } from '@feathersjs/commons'
2
2
  import { BadRequest } from '@feathersjs/errors'
3
3
  import { Query } from '@feathersjs/feathers'
4
- import { FilterQueryOptions, FilterSettings } from './declarations'
4
+ import { FilterQueryOptions, FilterSettings, PaginationParams } from './declarations'
5
5
 
6
6
  const parse = (value: any) => (typeof value !== 'undefined' ? parseInt(value, 10) : value)
7
7
 
@@ -64,6 +64,26 @@ const getQuery = (query: Query, settings: FilterQueryOptions) => {
64
64
  }, {} as Query)
65
65
  }
66
66
 
67
+ /**
68
+ * Returns the converted `$limit` value based on the `paginate` configuration.
69
+ * @param _limit The limit value
70
+ * @param paginate The pagination options
71
+ * @returns The converted $limit value
72
+ */
73
+ export const getLimit = (_limit: any, paginate?: PaginationParams) => {
74
+ const limit = parse(_limit)
75
+
76
+ if (paginate && (paginate.default || paginate.max)) {
77
+ const base = paginate.default || 0
78
+ const lower = typeof limit === 'number' && !isNaN(limit) && limit >= 0 ? limit : base
79
+ const upper = typeof paginate.max === 'number' ? paginate.max : Number.MAX_VALUE
80
+
81
+ return Math.min(lower, upper)
82
+ }
83
+
84
+ return limit
85
+ }
86
+
67
87
  export const OPERATORS = ['$in', '$nin', '$lt', '$lte', '$gt', '$gte', '$ne', '$or']
68
88
 
69
89
  export const FILTERS: FilterSettings = {
@@ -79,19 +99,7 @@ export const FILTERS: FilterSettings = {
79
99
  return result
80
100
  }, {} as { [key: string]: number })
81
101
  },
82
- $limit: (_limit: any, { paginate }: FilterQueryOptions) => {
83
- const limit = parse(_limit)
84
-
85
- if (paginate && (paginate.default || paginate.max)) {
86
- const base = paginate.default || 0
87
- const lower = typeof limit === 'number' && !isNaN(limit) && limit >= 0 ? limit : base
88
- const upper = typeof paginate.max === 'number' ? paginate.max : Number.MAX_VALUE
89
-
90
- return Math.min(lower, upper)
91
- }
92
-
93
- return limit
94
- },
102
+ $limit: (_limit: any, { paginate }: FilterQueryOptions) => getLimit(_limit, paginate),
95
103
  $select: (select: any) => {
96
104
  if (Array.isArray(select)) {
97
105
  return select.map((current) => `${current}`)
@@ -105,6 +113,13 @@ export const FILTERS: FilterSettings = {
105
113
  }
106
114
 
107
115
  return or
116
+ },
117
+ $and: (and: any, { operators }: FilterQueryOptions) => {
118
+ if (Array.isArray(and)) {
119
+ return and.map((current) => validateQueryProperty(current, operators))
120
+ }
121
+
122
+ return and
108
123
  }
109
124
  }
110
125