@feathersjs/schema 5.0.0-pre.35 → 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,16 @@
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
+ - **configuration:** Add pool and connection object to SQL database default configuration ([#3023](https://github.com/feathersjs/feathers/issues/3023)) ([092c749](https://github.com/feathersjs/feathers/commit/092c749d43f7da4d019576d1210fe7d3719a44a2))
11
+ - **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))
12
+ - **schema:** Allow any type in resolver hooks ([#3006](https://github.com/feathersjs/feathers/issues/3006)) ([f01281f](https://github.com/feathersjs/feathers/commit/f01281f7d83262738459585fc3f53f56c0a0deb8))
13
+ - **schema:** Ensure all types of nested data are securely dispatched ([#3005](https://github.com/feathersjs/feathers/issues/3005)) ([e4a9da5](https://github.com/feathersjs/feathers/commit/e4a9da5f3288e8e9f02087754473c7a9dfda6cb1))
14
+ - Update all dependencies ([#3024](https://github.com/feathersjs/feathers/issues/3024)) ([283dc47](https://github.com/feathersjs/feathers/commit/283dc4798d85584bc031e6e54b83b4ea77d1edd0))
15
+
6
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)
7
17
 
8
18
  ### Features
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
@@ -18,6 +18,6 @@ Refer to the [Feathers documentation](https://docs.feathersjs.com) for more deta
18
18
 
19
19
  ## License
20
20
 
21
- Copyright (c) 2022 [Feathers contributors](https://github.com/feathersjs/feathers/graphs/contributors)
21
+ Copyright (c) 2023 [Feathers contributors](https://github.com/feathersjs/feathers/graphs/contributors)
22
22
 
23
23
  Licensed under the [MIT license](LICENSE).
@@ -122,8 +122,40 @@ export declare const sqlSettingsSchema: {
122
122
  readonly client: {
123
123
  readonly type: "string";
124
124
  };
125
+ readonly pool: {
126
+ readonly type: "object";
127
+ readonly properties: {
128
+ readonly min: {
129
+ readonly type: "number";
130
+ };
131
+ readonly max: {
132
+ readonly type: "number";
133
+ };
134
+ };
135
+ };
125
136
  readonly connection: {
126
- readonly type: "string";
137
+ readonly oneOf: readonly [{
138
+ readonly type: "string";
139
+ }, {
140
+ readonly type: "object";
141
+ readonly properties: {
142
+ readonly host: {
143
+ readonly type: "string";
144
+ };
145
+ readonly port: {
146
+ readonly type: "number";
147
+ };
148
+ readonly user: {
149
+ readonly type: "string";
150
+ };
151
+ readonly password: {
152
+ readonly type: "string";
153
+ };
154
+ readonly database: {
155
+ readonly type: "string";
156
+ };
157
+ };
158
+ }];
127
159
  };
128
160
  };
129
161
  };
@@ -275,8 +307,40 @@ export declare const defaultAppSettings: {
275
307
  readonly client: {
276
308
  readonly type: "string";
277
309
  };
310
+ readonly pool: {
311
+ readonly type: "object";
312
+ readonly properties: {
313
+ readonly min: {
314
+ readonly type: "number";
315
+ };
316
+ readonly max: {
317
+ readonly type: "number";
318
+ };
319
+ };
320
+ };
278
321
  readonly connection: {
279
- readonly type: "string";
322
+ readonly oneOf: readonly [{
323
+ readonly type: "string";
324
+ }, {
325
+ readonly type: "object";
326
+ readonly properties: {
327
+ readonly host: {
328
+ readonly type: "string";
329
+ };
330
+ readonly port: {
331
+ readonly type: "number";
332
+ };
333
+ readonly user: {
334
+ readonly type: "string";
335
+ };
336
+ readonly password: {
337
+ readonly type: "string";
338
+ };
339
+ readonly database: {
340
+ readonly type: "string";
341
+ };
342
+ };
343
+ }];
280
344
  };
281
345
  };
282
346
  };
@@ -286,8 +350,40 @@ export declare const defaultAppSettings: {
286
350
  readonly client: {
287
351
  readonly type: "string";
288
352
  };
353
+ readonly pool: {
354
+ readonly type: "object";
355
+ readonly properties: {
356
+ readonly min: {
357
+ readonly type: "number";
358
+ };
359
+ readonly max: {
360
+ readonly type: "number";
361
+ };
362
+ };
363
+ };
289
364
  readonly connection: {
290
- readonly type: "string";
365
+ readonly oneOf: readonly [{
366
+ readonly type: "string";
367
+ }, {
368
+ readonly type: "object";
369
+ readonly properties: {
370
+ readonly host: {
371
+ readonly type: "string";
372
+ };
373
+ readonly port: {
374
+ readonly type: "number";
375
+ };
376
+ readonly user: {
377
+ readonly type: "string";
378
+ };
379
+ readonly password: {
380
+ readonly type: "string";
381
+ };
382
+ readonly database: {
383
+ readonly type: "string";
384
+ };
385
+ };
386
+ }];
291
387
  };
292
388
  };
293
389
  };
@@ -297,8 +393,40 @@ export declare const defaultAppSettings: {
297
393
  readonly client: {
298
394
  readonly type: "string";
299
395
  };
396
+ readonly pool: {
397
+ readonly type: "object";
398
+ readonly properties: {
399
+ readonly min: {
400
+ readonly type: "number";
401
+ };
402
+ readonly max: {
403
+ readonly type: "number";
404
+ };
405
+ };
406
+ };
300
407
  readonly connection: {
301
- readonly type: "string";
408
+ readonly oneOf: readonly [{
409
+ readonly type: "string";
410
+ }, {
411
+ readonly type: "object";
412
+ readonly properties: {
413
+ readonly host: {
414
+ readonly type: "string";
415
+ };
416
+ readonly port: {
417
+ readonly type: "number";
418
+ };
419
+ readonly user: {
420
+ readonly type: "string";
421
+ };
422
+ readonly password: {
423
+ readonly type: "string";
424
+ };
425
+ readonly database: {
426
+ readonly type: "string";
427
+ };
428
+ };
429
+ }];
302
430
  };
303
431
  };
304
432
  };
@@ -308,8 +436,40 @@ export declare const defaultAppSettings: {
308
436
  readonly client: {
309
437
  readonly type: "string";
310
438
  };
439
+ readonly pool: {
440
+ readonly type: "object";
441
+ readonly properties: {
442
+ readonly min: {
443
+ readonly type: "number";
444
+ };
445
+ readonly max: {
446
+ readonly type: "number";
447
+ };
448
+ };
449
+ };
311
450
  readonly connection: {
312
- readonly type: "string";
451
+ readonly oneOf: readonly [{
452
+ readonly type: "string";
453
+ }, {
454
+ readonly type: "object";
455
+ readonly properties: {
456
+ readonly host: {
457
+ readonly type: "string";
458
+ };
459
+ readonly port: {
460
+ readonly type: "number";
461
+ };
462
+ readonly user: {
463
+ readonly type: "string";
464
+ };
465
+ readonly password: {
466
+ readonly type: "string";
467
+ };
468
+ readonly database: {
469
+ readonly type: "string";
470
+ };
471
+ };
472
+ }];
313
473
  };
314
474
  };
315
475
  };
@@ -462,8 +622,40 @@ export declare const defaultAppConfiguration: {
462
622
  readonly client: {
463
623
  readonly type: "string";
464
624
  };
625
+ readonly pool: {
626
+ readonly type: "object";
627
+ readonly properties: {
628
+ readonly min: {
629
+ readonly type: "number";
630
+ };
631
+ readonly max: {
632
+ readonly type: "number";
633
+ };
634
+ };
635
+ };
465
636
  readonly connection: {
466
- readonly type: "string";
637
+ readonly oneOf: readonly [{
638
+ readonly type: "string";
639
+ }, {
640
+ readonly type: "object";
641
+ readonly properties: {
642
+ readonly host: {
643
+ readonly type: "string";
644
+ };
645
+ readonly port: {
646
+ readonly type: "number";
647
+ };
648
+ readonly user: {
649
+ readonly type: "string";
650
+ };
651
+ readonly password: {
652
+ readonly type: "string";
653
+ };
654
+ readonly database: {
655
+ readonly type: "string";
656
+ };
657
+ };
658
+ }];
467
659
  };
468
660
  };
469
661
  };
@@ -473,8 +665,40 @@ export declare const defaultAppConfiguration: {
473
665
  readonly client: {
474
666
  readonly type: "string";
475
667
  };
668
+ readonly pool: {
669
+ readonly type: "object";
670
+ readonly properties: {
671
+ readonly min: {
672
+ readonly type: "number";
673
+ };
674
+ readonly max: {
675
+ readonly type: "number";
676
+ };
677
+ };
678
+ };
476
679
  readonly connection: {
477
- readonly type: "string";
680
+ readonly oneOf: readonly [{
681
+ readonly type: "string";
682
+ }, {
683
+ readonly type: "object";
684
+ readonly properties: {
685
+ readonly host: {
686
+ readonly type: "string";
687
+ };
688
+ readonly port: {
689
+ readonly type: "number";
690
+ };
691
+ readonly user: {
692
+ readonly type: "string";
693
+ };
694
+ readonly password: {
695
+ readonly type: "string";
696
+ };
697
+ readonly database: {
698
+ readonly type: "string";
699
+ };
700
+ };
701
+ }];
478
702
  };
479
703
  };
480
704
  };
@@ -484,8 +708,40 @@ export declare const defaultAppConfiguration: {
484
708
  readonly client: {
485
709
  readonly type: "string";
486
710
  };
711
+ readonly pool: {
712
+ readonly type: "object";
713
+ readonly properties: {
714
+ readonly min: {
715
+ readonly type: "number";
716
+ };
717
+ readonly max: {
718
+ readonly type: "number";
719
+ };
720
+ };
721
+ };
487
722
  readonly connection: {
488
- readonly type: "string";
723
+ readonly oneOf: readonly [{
724
+ readonly type: "string";
725
+ }, {
726
+ readonly type: "object";
727
+ readonly properties: {
728
+ readonly host: {
729
+ readonly type: "string";
730
+ };
731
+ readonly port: {
732
+ readonly type: "number";
733
+ };
734
+ readonly user: {
735
+ readonly type: "string";
736
+ };
737
+ readonly password: {
738
+ readonly type: "string";
739
+ };
740
+ readonly database: {
741
+ readonly type: "string";
742
+ };
743
+ };
744
+ }];
489
745
  };
490
746
  };
491
747
  };
@@ -495,8 +751,40 @@ export declare const defaultAppConfiguration: {
495
751
  readonly client: {
496
752
  readonly type: "string";
497
753
  };
754
+ readonly pool: {
755
+ readonly type: "object";
756
+ readonly properties: {
757
+ readonly min: {
758
+ readonly type: "number";
759
+ };
760
+ readonly max: {
761
+ readonly type: "number";
762
+ };
763
+ };
764
+ };
498
765
  readonly connection: {
499
- readonly type: "string";
766
+ readonly oneOf: readonly [{
767
+ readonly type: "string";
768
+ }, {
769
+ readonly type: "object";
770
+ readonly properties: {
771
+ readonly host: {
772
+ readonly type: "string";
773
+ };
774
+ readonly port: {
775
+ readonly type: "number";
776
+ };
777
+ readonly user: {
778
+ readonly type: "string";
779
+ };
780
+ readonly password: {
781
+ readonly type: "string";
782
+ };
783
+ readonly database: {
784
+ readonly type: "string";
785
+ };
786
+ };
787
+ }];
500
788
  };
501
789
  };
502
790
  };
@@ -112,7 +112,28 @@ exports.sqlSettingsSchema = {
112
112
  type: 'object',
113
113
  properties: {
114
114
  client: { type: 'string' },
115
- connection: { type: 'string' }
115
+ pool: {
116
+ type: 'object',
117
+ properties: {
118
+ min: { type: 'number' },
119
+ max: { type: 'number' }
120
+ }
121
+ },
122
+ connection: {
123
+ oneOf: [
124
+ { type: 'string' },
125
+ {
126
+ type: 'object',
127
+ properties: {
128
+ host: { type: 'string' },
129
+ port: { type: 'number' },
130
+ user: { type: 'string' },
131
+ password: { type: 'string' },
132
+ database: { type: 'string' }
133
+ }
134
+ }
135
+ ]
136
+ }
116
137
  }
117
138
  };
118
139
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"default-schemas.js","sourceRoot":"","sources":["../src/default-schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"default-schemas.js","sourceRoot":"","sources":["../src/default-schemas.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,16 @@
1
1
  import { HookContext, NextFunction } from '@feathersjs/feathers';
2
2
  import { Resolver } from '../resolver';
3
3
  export type ResolverSetting<H extends HookContext> = Resolver<any, H> | Resolver<any, H>[];
4
- export declare const resolveQuery: <T, H extends HookContext<import("@feathersjs/feathers").Application<any, any>, any>>(...resolvers: Resolver<T, H>[]) => (context: H, next?: NextFunction) => Promise<any>;
5
- export declare const resolveData: <T, H extends HookContext<import("@feathersjs/feathers").Application<any, any>, any>>(...resolvers: Resolver<T, H>[]) => (context: H, next?: NextFunction) => Promise<any>;
6
- export declare const resolveResult: <T, H extends HookContext<import("@feathersjs/feathers").Application<any, any>, any>>(...resolvers: Resolver<T, H>[]) => (context: H, next?: NextFunction) => Promise<void>;
4
+ export declare const resolveQuery: <H extends HookContext<import("@feathersjs/feathers").Application<any, any>, any>>(...resolvers: Resolver<any, H>[]) => (context: H, next?: NextFunction) => Promise<any>;
5
+ export declare const resolveData: <H extends HookContext<import("@feathersjs/feathers").Application<any, any>, any>>(...resolvers: Resolver<any, H>[]) => (context: H, next?: NextFunction) => Promise<any>;
6
+ export declare const resolveResult: <H extends HookContext<import("@feathersjs/feathers").Application<any, any>, any>>(...resolvers: Resolver<any, H>[]) => (context: H, next?: NextFunction) => Promise<void>;
7
7
  export declare const DISPATCH: unique symbol;
8
- export declare const getDispatch: (value: any, fallback?: any) => any;
9
- export declare const resolveDispatch: <T, H extends HookContext<import("@feathersjs/feathers").Application<any, any>, any>>(...resolvers: Resolver<T, H>[]) => (context: H, next?: NextFunction) => Promise<void>;
10
- export declare const resolveExternal: <T, H extends HookContext<import("@feathersjs/feathers").Application<any, any>, any>>(...resolvers: Resolver<T, H>[]) => (context: H, next?: NextFunction) => Promise<void>;
11
- export type ResolveAllSettings<H extends HookContext> = {
8
+ export declare const getDispatchValue: (value: any) => any;
9
+ export declare const getDispatch: (value: any) => any;
10
+ export declare const setDispatch: (current: any, dispatch: any) => any;
11
+ export declare const resolveDispatch: <H extends HookContext<import("@feathersjs/feathers").Application<any, any>, any>>(...resolvers: Resolver<any, H>[]) => (context: H, next?: NextFunction) => Promise<void>;
12
+ export declare const resolveExternal: <H extends HookContext<import("@feathersjs/feathers").Application<any, any>, any>>(...resolvers: Resolver<any, H>[]) => (context: H, next?: NextFunction) => Promise<void>;
13
+ type ResolveAllSettings<H extends HookContext> = {
12
14
  data?: {
13
15
  create: Resolver<any, H>;
14
16
  patch: Resolver<any, H>;
@@ -18,4 +20,13 @@ export type ResolveAllSettings<H extends HookContext> = {
18
20
  result?: Resolver<any, H>;
19
21
  dispatch?: Resolver<any, H>;
20
22
  };
23
+ /**
24
+ * Resolve all resolvers at once.
25
+ *
26
+ * @param map The individual resolvers
27
+ * @returns A combined resolver middleware
28
+ * @deprecated Use individual data, query and external resolvers and hooks instead.
29
+ * @see https://dove.feathersjs.com/guides/cli/service.schemas.html
30
+ */
21
31
  export declare const resolveAll: <H extends HookContext<import("@feathersjs/feathers").Application<any, any>, any>>(map: ResolveAllSettings<H>) => (this: any, context: H, next?: import("@feathersjs/hooks").AsyncMiddleware<H>) => Promise<any>;
32
+ export {};
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resolveAll = exports.resolveExternal = exports.resolveDispatch = exports.getDispatch = exports.DISPATCH = exports.resolveResult = exports.resolveData = exports.resolveQuery = void 0;
3
+ exports.resolveAll = exports.resolveExternal = exports.resolveDispatch = exports.setDispatch = exports.getDispatch = exports.getDispatchValue = exports.DISPATCH = exports.resolveResult = exports.resolveData = exports.resolveQuery = void 0;
4
4
  const hooks_1 = require("@feathersjs/hooks");
5
5
  const getContext = (context) => {
6
6
  return Object.freeze({
@@ -11,7 +11,7 @@ const getContext = (context) => {
11
11
  })
12
12
  });
13
13
  };
14
- const getData = (context) => {
14
+ const getResult = (context) => {
15
15
  const isPaginated = context.method === 'find' && context.result.data;
16
16
  const data = isPaginated ? context.result.data : context.result;
17
17
  return { isPaginated, data };
@@ -75,14 +75,14 @@ const resolveResult = (...resolvers) => {
75
75
  resolve,
76
76
  query: {
77
77
  ...query,
78
- $select
78
+ ...($select ? { $select } : {})
79
79
  }
80
80
  };
81
81
  await next();
82
82
  }
83
83
  const ctx = getContext(context);
84
84
  const status = context.params.resolve;
85
- const { isPaginated, data } = getData(context);
85
+ const { isPaginated, data } = getResult(context);
86
86
  const result = Array.isArray(data)
87
87
  ? await Promise.all(data.map(async (current) => runResolvers(resolvers, current, ctx, status)))
88
88
  : await runResolvers(resolvers, data, ctx, status);
@@ -96,26 +96,48 @@ const resolveResult = (...resolvers) => {
96
96
  };
97
97
  exports.resolveResult = resolveResult;
98
98
  exports.DISPATCH = Symbol('@feathersjs/schema/dispatch');
99
- const getDispatch = (value, fallback = value) => typeof value === 'object' && value !== null && value[exports.DISPATCH] !== undefined ? value[exports.DISPATCH] : fallback;
99
+ const getDispatchValue = (value) => {
100
+ if (typeof value === 'object' && value !== null) {
101
+ if (value[exports.DISPATCH] !== undefined) {
102
+ return value[exports.DISPATCH];
103
+ }
104
+ if (Array.isArray(value)) {
105
+ return value.map((item) => (0, exports.getDispatchValue)(item));
106
+ }
107
+ }
108
+ return value;
109
+ };
110
+ exports.getDispatchValue = getDispatchValue;
111
+ const getDispatch = (value) => typeof value === 'object' && value !== null && value[exports.DISPATCH] ? value[exports.DISPATCH] : null;
100
112
  exports.getDispatch = getDispatch;
113
+ const setDispatch = (current, dispatch) => {
114
+ Object.defineProperty(current, exports.DISPATCH, {
115
+ value: dispatch,
116
+ enumerable: false,
117
+ configurable: false
118
+ });
119
+ return dispatch;
120
+ };
121
+ exports.setDispatch = setDispatch;
101
122
  const resolveDispatch = (...resolvers) => async (context, next) => {
102
123
  if (typeof next === 'function') {
103
124
  await next();
104
125
  }
105
126
  const ctx = getContext(context);
106
- const existingDispatch = (0, exports.getDispatch)(context.result, null);
127
+ const existingDispatch = (0, exports.getDispatch)(context.result);
107
128
  if (existingDispatch !== null) {
108
129
  context.dispatch = existingDispatch;
109
130
  }
110
131
  else {
111
132
  const status = context.params.resolve;
112
- const { isPaginated, data } = getData(context);
133
+ const { isPaginated, data } = getResult(context);
113
134
  const resolveAndGetDispatch = async (current) => {
114
135
  const resolved = await runResolvers(resolvers, current, ctx, status);
115
- return Object.keys(resolved).reduce((res, key) => {
116
- res[key] = (0, exports.getDispatch)(resolved[key]);
136
+ const currentDispatch = Object.keys(resolved).reduce((res, key) => {
137
+ res[key] = (0, exports.getDispatchValue)(resolved[key]);
117
138
  return res;
118
139
  }, {});
140
+ return (0, exports.setDispatch)(current, currentDispatch);
119
141
  };
120
142
  const result = await (Array.isArray(data)
121
143
  ? Promise.all(data.map(resolveAndGetDispatch))
@@ -126,17 +148,20 @@ const resolveDispatch = (...resolvers) => async (context, next) => {
126
148
  data: result
127
149
  }
128
150
  : result;
129
- context.dispatch = dispatch;
130
- Object.defineProperty(context.result, exports.DISPATCH, {
131
- value: dispatch,
132
- enumerable: false,
133
- configurable: false
134
- });
151
+ context.dispatch = (0, exports.setDispatch)(context.result, dispatch);
135
152
  }
136
153
  };
137
154
  exports.resolveDispatch = resolveDispatch;
138
155
  exports.resolveExternal = exports.resolveDispatch;
139
156
  const dataMethods = ['create', 'update', 'patch'];
157
+ /**
158
+ * Resolve all resolvers at once.
159
+ *
160
+ * @param map The individual resolvers
161
+ * @returns A combined resolver middleware
162
+ * @deprecated Use individual data, query and external resolvers and hooks instead.
163
+ * @see https://dove.feathersjs.com/guides/cli/service.schemas.html
164
+ */
140
165
  const resolveAll = (map) => {
141
166
  const middleware = [];
142
167
  middleware.push((0, exports.resolveDispatch)(map.dispatch));
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/hooks/resolve.ts"],"names":[],"mappings":";;;AACA,6CAA2C;AAG3C,MAAM,UAAU,GAAG,CAAwB,OAAU,EAAE,EAAE;IACvD,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,GAAG,OAAO;QACV,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;YACpB,GAAG,OAAO,CAAC,MAAM;YACjB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;SACzB,CAAC;KACH,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,OAAO,GAAG,CAAwB,OAAU,EAAE,EAAE;IACpD,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAA;IACpE,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAA;IAE/D,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;AAC9B,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,KAAK,EACxB,SAA2B,EAC3B,IAAS,EACT,GAAM,EACN,MAAsC,EACtC,EAAE;IACF,IAAI,OAAO,GAAQ,IAAI,CAAA;IAEvB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;QAChC,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,UAAU,EAAE;YACtD,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;SACvD;KACF;IAED,OAAO,OAAY,CAAA;AACrB,CAAC,CAAA;AAIM,MAAM,YAAY,GACvB,CAA2B,GAAG,SAA2B,EAAE,EAAE,CAC7D,KAAK,EAAE,OAAU,EAAE,IAAmB,EAAE,EAAE;;IACxC,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;IAC/B,MAAM,IAAI,GAAG,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,0CAAE,KAAK,KAAI,EAAE,CAAA;IACzC,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;IAEtD,OAAO,CAAC,MAAM,GAAG;QACf,GAAG,OAAO,CAAC,MAAM;QACjB,KAAK;KACN,CAAA;IAED,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;QAC9B,OAAO,IAAI,EAAE,CAAA;KACd;AACH,CAAC,CAAA;AAfU,QAAA,YAAY,gBAetB;AAEI,MAAM,WAAW,GACtB,CAA2B,GAAG,SAA2B,EAAE,EAAE,CAC7D,KAAK,EAAE,OAAU,EAAE,IAAmB,EAAE,EAAE;IACxC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;QAC9B,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;QAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QAEzB,MAAM,MAAM,GAAG;YACb,eAAe,EAAE,OAAO;SACzB,CAAA;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACvB,OAAO,CAAC,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;SACvG;aAAM;YACL,OAAO,CAAC,IAAI,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;SAChE;KACF;IAED,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;QAC9B,OAAO,IAAI,EAAE,CAAA;KACd;AACH,CAAC,CAAA;AArBU,QAAA,WAAW,eAqBrB;AAEI,MAAM,aAAa,GAAG,CAA2B,GAAG,SAA2B,EAAE,EAAE;IACxF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAC/B,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAiB,CAAC,CACxF,CAAA;IAED,OAAO,KAAK,EAAE,OAAU,EAAE,IAAmB,EAAE,EAAE;;QAC/C,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;YAC9B,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,GAAG,CAAA,MAAA,OAAO,CAAC,MAAM,0CAAE,KAAK,KAAI,EAAE,CAAA;YAC3E,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;YACtG,MAAM,OAAO,GAAG;gBACd,eAAe,EAAE,OAAO;gBACxB,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO;gBACzB,UAAU,EAAE,QAAQ,IAAI,MAAM;aAC/B,CAAA;YAED,OAAO,CAAC,MAAM,GAAG;gBACf,GAAG,OAAO,CAAC,MAAM;gBACjB,OAAO;gBACP,KAAK,EAAE;oBACL,GAAG,KAAK;oBACR,OAAO;iBACR;aACF,CAAA;YAED,MAAM,IAAI,EAAE,CAAA;SACb;QAED,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;QAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAA;QACrC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;QAE9C,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YAChC,CAAC,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;YAC/F,CAAC,CAAC,MAAM,YAAY,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;QAEpD,IAAI,WAAW,EAAE;YACf,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAA;SAC7B;aAAM;YACL,OAAO,CAAC,MAAM,GAAG,MAAM,CAAA;SACxB;IACH,CAAC,CAAA;AACH,CAAC,CAAA;AAzCY,QAAA,aAAa,iBAyCzB;AAEY,QAAA,QAAQ,GAAG,MAAM,CAAC,6BAA6B,CAAC,CAAA;AAEtD,MAAM,WAAW,GAAG,CAAC,KAAU,EAAE,QAAQ,GAAG,KAAK,EAAE,EAAE,CAC1D,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,gBAAQ,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;AAD9F,QAAA,WAAW,eACmF;AAEpG,MAAM,eAAe,GAC1B,CAA2B,GAAG,SAA2B,EAAE,EAAE,CAC7D,KAAK,EAAE,OAAU,EAAE,IAAmB,EAAE,EAAE;IACxC,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;QAC9B,MAAM,IAAI,EAAE,CAAA;KACb;IAED,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;IAC/B,MAAM,gBAAgB,GAAG,IAAA,mBAAW,EAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAE1D,IAAI,gBAAgB,KAAK,IAAI,EAAE;QAC7B,OAAO,CAAC,QAAQ,GAAG,gBAAgB,CAAA;KACpC;SAAM;QACL,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAA;QACrC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;QAC9C,MAAM,qBAAqB,GAAG,KAAK,EAAE,OAAY,EAAE,EAAE;YACnD,MAAM,QAAQ,GAAQ,MAAM,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;YAEzE,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBAC/C,GAAG,CAAC,GAAG,CAAC,GAAG,IAAA,mBAAW,EAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;gBAErC,OAAO,GAAG,CAAA;YACZ,CAAC,EAAE,EAAS,CAAC,CAAA;QACf,CAAC,CAAA;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YACvC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YAC9C,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAA;QAChC,MAAM,QAAQ,GAAG,WAAW;YAC1B,CAAC,CAAC;gBACE,GAAG,OAAO,CAAC,MAAM;gBACjB,IAAI,EAAE,MAAM;aACb;YACH,CAAC,CAAC,MAAM,CAAA;QAEV,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAA;QAC3B,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,gBAAQ,EAAE;YAC9C,KAAK,EAAE,QAAQ;YACf,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,KAAK;SACpB,CAAC,CAAA;KACH;AACH,CAAC,CAAA;AA1CU,QAAA,eAAe,mBA0CzB;AAEU,QAAA,eAAe,GAAG,uBAAe,CAAA;AAa9C,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAU,CAAA;AAEnD,MAAM,UAAU,GAAG,CAAwB,GAA0B,EAAE,EAAE;IAC9E,MAAM,UAAU,GAAG,EAAE,CAAA;IAErB,UAAU,CAAC,IAAI,CAAC,IAAA,uBAAe,EAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;IAE9C,IAAI,GAAG,CAAC,MAAM,EAAE;QACd,UAAU,CAAC,IAAI,CAAC,IAAA,qBAAa,EAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;KAC3C;IAED,IAAI,GAAG,CAAC,KAAK,EAAE;QACb,UAAU,CAAC,IAAI,CAAC,IAAA,oBAAY,EAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;KACzC;IAED,IAAI,GAAG,CAAC,IAAI,EAAE;QACZ,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC3B,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAClB,MAAM,QAAQ,GAAG,IAAA,mBAAW,EAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;gBAE5C,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,OAAU,EAAE,IAAkB,EAAE,EAAE,CACvD,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAC3D,CAAA;aACF;QACH,CAAC,CAAC,CAAA;KACH;IAED,OAAO,IAAA,eAAO,EAAC,UAAU,CAAC,CAAA;AAC5B,CAAC,CAAA;AA1BY,QAAA,UAAU,cA0BtB"}
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/hooks/resolve.ts"],"names":[],"mappings":"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"}
@@ -139,4 +139,21 @@ export declare const querySyntax: <T extends {
139
139
  readonly properties: { [K_2 in keyof T]: PropertyQuery<T[K_2], X[K_2]>; };
140
140
  };
141
141
  };
142
+ readonly $and: {
143
+ readonly type: "array";
144
+ readonly items: {
145
+ readonly type: "object";
146
+ readonly additionalProperties: false;
147
+ readonly properties: { [K_2 in keyof T]: PropertyQuery<T[K_2], X[K_2]>; } & {
148
+ readonly $or: {
149
+ readonly type: "array";
150
+ readonly items: {
151
+ readonly type: "object";
152
+ readonly additionalProperties: false;
153
+ readonly properties: { [K_2 in keyof T]: PropertyQuery<T[K_2], X[K_2]>; };
154
+ };
155
+ };
156
+ };
157
+ };
158
+ };
142
159
  } & { [K_2 in keyof T]: PropertyQuery<T[K_2], X[K_2]>; };
@@ -105,6 +105,25 @@ exports.queryProperties = queryProperties;
105
105
  const querySyntax = (definition, extensions = {}) => {
106
106
  const keys = Object.keys(definition);
107
107
  const props = (0, exports.queryProperties)(definition, extensions);
108
+ const $or = {
109
+ type: 'array',
110
+ items: {
111
+ type: 'object',
112
+ additionalProperties: false,
113
+ properties: props
114
+ }
115
+ };
116
+ const $and = {
117
+ type: 'array',
118
+ items: {
119
+ type: 'object',
120
+ additionalProperties: false,
121
+ properties: {
122
+ ...props,
123
+ $or
124
+ }
125
+ }
126
+ };
108
127
  return {
109
128
  $limit: {
110
129
  type: 'number',
@@ -133,14 +152,8 @@ const querySyntax = (definition, extensions = {}) => {
133
152
  ...(keys.length > 0 ? { enum: keys } : {})
134
153
  }
135
154
  },
136
- $or: {
137
- type: 'array',
138
- items: {
139
- type: 'object',
140
- additionalProperties: false,
141
- properties: props
142
- }
143
- },
155
+ $or,
156
+ $and,
144
157
  ...props
145
158
  };
146
159
  };
@@ -1 +1 @@
1
- {"version":3,"file":"json-schema.js","sourceRoot":"","sources":["../src/json-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"json-schema.js","sourceRoot":"","sources":["../src/json-schema.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@feathersjs/schema",
3
3
  "description": "A common data schema definition format",
4
- "version": "5.0.0-pre.35",
4
+ "version": "5.0.0-pre.36",
5
5
  "homepage": "https://feathersjs.com",
6
6
  "main": "lib/",
7
7
  "types": "lib/",
@@ -54,18 +54,18 @@
54
54
  "access": "public"
55
55
  },
56
56
  "dependencies": {
57
- "@feathersjs/adapter-commons": "^5.0.0-pre.35",
58
- "@feathersjs/commons": "^5.0.0-pre.35",
59
- "@feathersjs/errors": "^5.0.0-pre.35",
60
- "@feathersjs/feathers": "^5.0.0-pre.35",
57
+ "@feathersjs/adapter-commons": "^5.0.0-pre.36",
58
+ "@feathersjs/commons": "^5.0.0-pre.36",
59
+ "@feathersjs/errors": "^5.0.0-pre.36",
60
+ "@feathersjs/feathers": "^5.0.0-pre.36",
61
61
  "@feathersjs/hooks": "^0.7.6",
62
62
  "@types/json-schema": "^7.0.11",
63
- "ajv": "^8.11.2",
63
+ "ajv": "^8.12.0",
64
64
  "ajv-formats": "^2.1.1",
65
65
  "json-schema-to-ts": "^2.6.2"
66
66
  },
67
67
  "devDependencies": {
68
- "@feathersjs/memory": "^5.0.0-pre.35",
68
+ "@feathersjs/memory": "^5.0.0-pre.36",
69
69
  "@types/mocha": "^10.0.1",
70
70
  "@types/node": "^18.11.18",
71
71
  "ajv-formats": "^2.1.1",
@@ -73,5 +73,5 @@
73
73
  "shx": "^0.3.4",
74
74
  "typescript": "^4.9.4"
75
75
  },
76
- "gitHead": "c641598d9a4de3ceda10f56cf2af288a4236b15e"
76
+ "gitHead": "9a107b463cc80d7f3c28553c908987e05b0b634a"
77
77
  }
@@ -117,7 +117,28 @@ export const sqlSettingsSchema = {
117
117
  type: 'object',
118
118
  properties: {
119
119
  client: { type: 'string' },
120
- connection: { type: 'string' }
120
+ pool: {
121
+ type: 'object',
122
+ properties: {
123
+ min: { type: 'number' },
124
+ max: { type: 'number' }
125
+ }
126
+ },
127
+ connection: {
128
+ oneOf: [
129
+ { type: 'string' },
130
+ {
131
+ type: 'object',
132
+ properties: {
133
+ host: { type: 'string' },
134
+ port: { type: 'number' },
135
+ user: { type: 'string' },
136
+ password: { type: 'string' },
137
+ database: { type: 'string' }
138
+ }
139
+ }
140
+ ]
141
+ }
121
142
  }
122
143
  } as const
123
144
 
@@ -12,7 +12,7 @@ const getContext = <H extends HookContext>(context: H) => {
12
12
  })
13
13
  }
14
14
 
15
- const getData = <H extends HookContext>(context: H) => {
15
+ const getResult = <H extends HookContext>(context: H) => {
16
16
  const isPaginated = context.method === 'find' && context.result.data
17
17
  const data = isPaginated ? context.result.data : context.result
18
18
 
@@ -39,7 +39,7 @@ const runResolvers = async <T, H extends HookContext>(
39
39
  export type ResolverSetting<H extends HookContext> = Resolver<any, H> | Resolver<any, H>[]
40
40
 
41
41
  export const resolveQuery =
42
- <T, H extends HookContext>(...resolvers: Resolver<T, H>[]) =>
42
+ <H extends HookContext>(...resolvers: Resolver<any, H>[]) =>
43
43
  async (context: H, next?: NextFunction) => {
44
44
  const ctx = getContext(context)
45
45
  const data = context?.params?.query || {}
@@ -56,7 +56,7 @@ export const resolveQuery =
56
56
  }
57
57
 
58
58
  export const resolveData =
59
- <T, H extends HookContext>(...resolvers: Resolver<T, H>[]) =>
59
+ <H extends HookContext>(...resolvers: Resolver<any, H>[]) =>
60
60
  async (context: H, next?: NextFunction) => {
61
61
  if (context.data !== undefined) {
62
62
  const ctx = getContext(context)
@@ -78,10 +78,8 @@ export const resolveData =
78
78
  }
79
79
  }
80
80
 
81
- export const resolveResult = <T, H extends HookContext>(...resolvers: Resolver<T, H>[]) => {
82
- const virtualProperties = new Set(
83
- resolvers.reduce((acc, current) => acc.concat(current.virtualNames), [] as (keyof T)[])
84
- )
81
+ export const resolveResult = <H extends HookContext>(...resolvers: Resolver<any, H>[]) => {
82
+ const virtualProperties = new Set(resolvers.reduce((acc, current) => acc.concat(current.virtualNames), []))
85
83
 
86
84
  return async (context: H, next?: NextFunction) => {
87
85
  if (typeof next === 'function') {
@@ -98,7 +96,7 @@ export const resolveResult = <T, H extends HookContext>(...resolvers: Resolver<T
98
96
  resolve,
99
97
  query: {
100
98
  ...query,
101
- $select
99
+ ...($select ? { $select } : {})
102
100
  }
103
101
  }
104
102
 
@@ -107,7 +105,7 @@ export const resolveResult = <T, H extends HookContext>(...resolvers: Resolver<T
107
105
 
108
106
  const ctx = getContext(context)
109
107
  const status = context.params.resolve
110
- const { isPaginated, data } = getData(context)
108
+ const { isPaginated, data } = getResult(context)
111
109
 
112
110
  const result = Array.isArray(data)
113
111
  ? await Promise.all(data.map(async (current) => runResolvers(resolvers, current, ctx, status)))
@@ -123,32 +121,57 @@ export const resolveResult = <T, H extends HookContext>(...resolvers: Resolver<T
123
121
 
124
122
  export const DISPATCH = Symbol('@feathersjs/schema/dispatch')
125
123
 
126
- export const getDispatch = (value: any, fallback = value) =>
127
- typeof value === 'object' && value !== null && value[DISPATCH] !== undefined ? value[DISPATCH] : fallback
124
+ export const getDispatchValue = (value: any): any => {
125
+ if (typeof value === 'object' && value !== null) {
126
+ if (value[DISPATCH] !== undefined) {
127
+ return value[DISPATCH]
128
+ }
129
+
130
+ if (Array.isArray(value)) {
131
+ return value.map((item) => getDispatchValue(item))
132
+ }
133
+ }
134
+
135
+ return value
136
+ }
137
+
138
+ export const getDispatch = (value: any): any =>
139
+ typeof value === 'object' && value !== null && value[DISPATCH] ? value[DISPATCH] : null
140
+
141
+ export const setDispatch = (current: any, dispatch: any) => {
142
+ Object.defineProperty(current, DISPATCH, {
143
+ value: dispatch,
144
+ enumerable: false,
145
+ configurable: false
146
+ })
147
+
148
+ return dispatch
149
+ }
128
150
 
129
151
  export const resolveDispatch =
130
- <T, H extends HookContext>(...resolvers: Resolver<T, H>[]) =>
152
+ <H extends HookContext>(...resolvers: Resolver<any, H>[]) =>
131
153
  async (context: H, next?: NextFunction) => {
132
154
  if (typeof next === 'function') {
133
155
  await next()
134
156
  }
135
157
 
136
158
  const ctx = getContext(context)
137
- const existingDispatch = getDispatch(context.result, null)
159
+ const existingDispatch = getDispatch(context.result)
138
160
 
139
161
  if (existingDispatch !== null) {
140
162
  context.dispatch = existingDispatch
141
163
  } else {
142
164
  const status = context.params.resolve
143
- const { isPaginated, data } = getData(context)
165
+ const { isPaginated, data } = getResult(context)
144
166
  const resolveAndGetDispatch = async (current: any) => {
145
- const resolved: any = await runResolvers(resolvers, current, ctx, status)
146
-
147
- return Object.keys(resolved).reduce((res, key) => {
148
- res[key] = getDispatch(resolved[key])
167
+ const resolved = await runResolvers(resolvers, current, ctx, status)
168
+ const currentDispatch = Object.keys(resolved).reduce((res, key) => {
169
+ res[key] = getDispatchValue(resolved[key])
149
170
 
150
171
  return res
151
- }, {} as any)
172
+ }, {} as Record<string, any>)
173
+
174
+ return setDispatch(current, currentDispatch)
152
175
  }
153
176
 
154
177
  const result = await (Array.isArray(data)
@@ -161,18 +184,13 @@ export const resolveDispatch =
161
184
  }
162
185
  : result
163
186
 
164
- context.dispatch = dispatch
165
- Object.defineProperty(context.result, DISPATCH, {
166
- value: dispatch,
167
- enumerable: false,
168
- configurable: false
169
- })
187
+ context.dispatch = setDispatch(context.result, dispatch)
170
188
  }
171
189
  }
172
190
 
173
191
  export const resolveExternal = resolveDispatch
174
192
 
175
- export type ResolveAllSettings<H extends HookContext> = {
193
+ type ResolveAllSettings<H extends HookContext> = {
176
194
  data?: {
177
195
  create: Resolver<any, H>
178
196
  patch: Resolver<any, H>
@@ -185,6 +203,14 @@ export type ResolveAllSettings<H extends HookContext> = {
185
203
 
186
204
  const dataMethods = ['create', 'update', 'patch'] as const
187
205
 
206
+ /**
207
+ * Resolve all resolvers at once.
208
+ *
209
+ * @param map The individual resolvers
210
+ * @returns A combined resolver middleware
211
+ * @deprecated Use individual data, query and external resolvers and hooks instead.
212
+ * @see https://dove.feathersjs.com/guides/cli/service.schemas.html
213
+ */
188
214
  export const resolveAll = <H extends HookContext>(map: ResolveAllSettings<H>) => {
189
215
  const middleware = []
190
216
 
@@ -172,6 +172,25 @@ export const querySyntax = <
172
172
  ) => {
173
173
  const keys = Object.keys(definition)
174
174
  const props = queryProperties(definition, extensions)
175
+ const $or = {
176
+ type: 'array',
177
+ items: {
178
+ type: 'object',
179
+ additionalProperties: false,
180
+ properties: props
181
+ }
182
+ } as const
183
+ const $and = {
184
+ type: 'array',
185
+ items: {
186
+ type: 'object',
187
+ additionalProperties: false,
188
+ properties: {
189
+ ...props,
190
+ $or
191
+ }
192
+ }
193
+ } as const
175
194
 
176
195
  return {
177
196
  $limit: {
@@ -203,14 +222,8 @@ export const querySyntax = <
203
222
  ...(keys.length > 0 ? { enum: keys as any as (keyof T)[] } : {})
204
223
  }
205
224
  },
206
- $or: {
207
- type: 'array',
208
- items: {
209
- type: 'object',
210
- additionalProperties: false,
211
- properties: props
212
- }
213
- },
225
+ $or,
226
+ $and,
214
227
  ...props
215
228
  } as const
216
229
  }