@feathersjs/schema 5.0.0-pre.35 → 5.0.0-pre.37

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,23 @@
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.37](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.36...v5.0.0-pre.37) (2023-02-09)
7
+
8
+ ### Bug Fixes
9
+
10
+ - **schema:** Do not change the hook context in resolvers ([#3048](https://github.com/feathersjs/feathers/issues/3048)) ([bfd8c04](https://github.com/feathersjs/feathers/commit/bfd8c04c15279063a0d4b70771715c656dda5f7c))
11
+ - **schema:** Ensure that resolveResult and resolveExternal are run as around hooks ([#3032](https://github.com/feathersjs/feathers/issues/3032)) ([71942f4](https://github.com/feathersjs/feathers/commit/71942f418e3afe167aef4f98b1a97356dae7625c))
12
+
13
+ # [5.0.0-pre.36](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.35...v5.0.0-pre.36) (2023-01-29)
14
+
15
+ ### Bug Fixes
16
+
17
+ - **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))
18
+ - **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))
19
+ - **schema:** Allow any type in resolver hooks ([#3006](https://github.com/feathersjs/feathers/issues/3006)) ([f01281f](https://github.com/feathersjs/feathers/commit/f01281f7d83262738459585fc3f53f56c0a0deb8))
20
+ - **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))
21
+ - Update all dependencies ([#3024](https://github.com/feathersjs/feathers/issues/3024)) ([283dc47](https://github.com/feathersjs/feathers/commit/283dc4798d85584bc031e6e54b83b4ea77d1edd0))
22
+
6
23
  # [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
24
 
8
25
  ### 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 resolveExternal: <H extends HookContext<import("@feathersjs/feathers").Application<any, any>, any>>(...resolvers: Resolver<any, H>[]) => (context: H, next: NextFunction) => Promise<void>;
12
+ export declare const resolveDispatch: <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,17 +1,8 @@
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.resolveDispatch = exports.resolveExternal = 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
- const getContext = (context) => {
6
- return Object.freeze({
7
- ...context,
8
- params: Object.freeze({
9
- ...context.params,
10
- query: Object.freeze({})
11
- })
12
- });
13
- };
14
- const getData = (context) => {
5
+ const getResult = (context) => {
15
6
  const isPaginated = context.method === 'find' && context.result.data;
16
7
  const data = isPaginated ? context.result.data : context.result;
17
8
  return { isPaginated, data };
@@ -27,9 +18,8 @@ const runResolvers = async (resolvers, data, ctx, status) => {
27
18
  };
28
19
  const resolveQuery = (...resolvers) => async (context, next) => {
29
20
  var _a;
30
- const ctx = getContext(context);
31
21
  const data = ((_a = context === null || context === void 0 ? void 0 : context.params) === null || _a === void 0 ? void 0 : _a.query) || {};
32
- const query = await runResolvers(resolvers, data, ctx);
22
+ const query = await runResolvers(resolvers, data, context);
33
23
  context.params = {
34
24
  ...context.params,
35
25
  query
@@ -41,16 +31,15 @@ const resolveQuery = (...resolvers) => async (context, next) => {
41
31
  exports.resolveQuery = resolveQuery;
42
32
  const resolveData = (...resolvers) => async (context, next) => {
43
33
  if (context.data !== undefined) {
44
- const ctx = getContext(context);
45
34
  const data = context.data;
46
35
  const status = {
47
36
  originalContext: context
48
37
  };
49
38
  if (Array.isArray(data)) {
50
- context.data = await Promise.all(data.map((current) => runResolvers(resolvers, current, ctx, status)));
39
+ context.data = await Promise.all(data.map((current) => runResolvers(resolvers, current, context, status)));
51
40
  }
52
41
  else {
53
- context.data = await runResolvers(resolvers, data, ctx, status);
42
+ context.data = await runResolvers(resolvers, data, context, status);
54
43
  }
55
44
  }
56
45
  if (typeof next === 'function') {
@@ -62,30 +51,30 @@ const resolveResult = (...resolvers) => {
62
51
  const virtualProperties = new Set(resolvers.reduce((acc, current) => acc.concat(current.virtualNames), []));
63
52
  return async (context, next) => {
64
53
  var _a;
65
- if (typeof next === 'function') {
66
- const { $resolve, $select: select, ...query } = ((_a = context.params) === null || _a === void 0 ? void 0 : _a.query) || {};
67
- const $select = Array.isArray(select) ? select.filter((name) => !virtualProperties.has(name)) : select;
68
- const resolve = {
69
- originalContext: context,
70
- ...context.params.resolve,
71
- properties: $resolve || select
72
- };
73
- context.params = {
74
- ...context.params,
75
- resolve,
76
- query: {
77
- ...query,
78
- $select
79
- }
80
- };
81
- await next();
54
+ if (typeof next !== 'function') {
55
+ throw new Error('The resolveResult hook must be used as an around hook');
82
56
  }
83
- const ctx = getContext(context);
57
+ const { $resolve, $select: select, ...query } = ((_a = context.params) === null || _a === void 0 ? void 0 : _a.query) || {};
58
+ const $select = Array.isArray(select) ? select.filter((name) => !virtualProperties.has(name)) : select;
59
+ const resolve = {
60
+ originalContext: context,
61
+ ...context.params.resolve,
62
+ properties: $resolve || select
63
+ };
64
+ context.params = {
65
+ ...context.params,
66
+ resolve,
67
+ query: {
68
+ ...query,
69
+ ...($select ? { $select } : {})
70
+ }
71
+ };
72
+ await next();
84
73
  const status = context.params.resolve;
85
- const { isPaginated, data } = getData(context);
74
+ const { isPaginated, data } = getResult(context);
86
75
  const result = Array.isArray(data)
87
- ? await Promise.all(data.map(async (current) => runResolvers(resolvers, current, ctx, status)))
88
- : await runResolvers(resolvers, data, ctx, status);
76
+ ? await Promise.all(data.map(async (current) => runResolvers(resolvers, current, context, status)))
77
+ : await runResolvers(resolvers, data, context, status);
89
78
  if (isPaginated) {
90
79
  context.result.data = result;
91
80
  }
@@ -96,26 +85,48 @@ const resolveResult = (...resolvers) => {
96
85
  };
97
86
  exports.resolveResult = resolveResult;
98
87
  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;
88
+ const getDispatchValue = (value) => {
89
+ if (typeof value === 'object' && value !== null) {
90
+ if (value[exports.DISPATCH] !== undefined) {
91
+ return value[exports.DISPATCH];
92
+ }
93
+ if (Array.isArray(value)) {
94
+ return value.map((item) => (0, exports.getDispatchValue)(item));
95
+ }
96
+ }
97
+ return value;
98
+ };
99
+ exports.getDispatchValue = getDispatchValue;
100
+ const getDispatch = (value) => typeof value === 'object' && value !== null && value[exports.DISPATCH] ? value[exports.DISPATCH] : null;
100
101
  exports.getDispatch = getDispatch;
101
- const resolveDispatch = (...resolvers) => async (context, next) => {
102
- if (typeof next === 'function') {
103
- await next();
102
+ const setDispatch = (current, dispatch) => {
103
+ Object.defineProperty(current, exports.DISPATCH, {
104
+ value: dispatch,
105
+ enumerable: false,
106
+ configurable: false
107
+ });
108
+ return dispatch;
109
+ };
110
+ exports.setDispatch = setDispatch;
111
+ const resolveExternal = (...resolvers) => async (context, next) => {
112
+ if (typeof next !== 'function') {
113
+ throw new Error('The resolveExternal hook must be used as an around hook');
104
114
  }
105
- const ctx = getContext(context);
106
- const existingDispatch = (0, exports.getDispatch)(context.result, null);
115
+ await next();
116
+ const existingDispatch = (0, exports.getDispatch)(context.result);
107
117
  if (existingDispatch !== null) {
108
118
  context.dispatch = existingDispatch;
109
119
  }
110
120
  else {
111
121
  const status = context.params.resolve;
112
- const { isPaginated, data } = getData(context);
122
+ const { isPaginated, data } = getResult(context);
113
123
  const resolveAndGetDispatch = async (current) => {
114
- const resolved = await runResolvers(resolvers, current, ctx, status);
115
- return Object.keys(resolved).reduce((res, key) => {
116
- res[key] = (0, exports.getDispatch)(resolved[key]);
124
+ const resolved = await runResolvers(resolvers, current, context, status);
125
+ const currentDispatch = Object.keys(resolved).reduce((res, key) => {
126
+ res[key] = (0, exports.getDispatchValue)(resolved[key]);
117
127
  return res;
118
128
  }, {});
129
+ return (0, exports.setDispatch)(current, currentDispatch);
119
130
  };
120
131
  const result = await (Array.isArray(data)
121
132
  ? Promise.all(data.map(resolveAndGetDispatch))
@@ -126,17 +137,20 @@ const resolveDispatch = (...resolvers) => async (context, next) => {
126
137
  data: result
127
138
  }
128
139
  : result;
129
- context.dispatch = dispatch;
130
- Object.defineProperty(context.result, exports.DISPATCH, {
131
- value: dispatch,
132
- enumerable: false,
133
- configurable: false
134
- });
140
+ context.dispatch = (0, exports.setDispatch)(context.result, dispatch);
135
141
  }
136
142
  };
137
- exports.resolveDispatch = resolveDispatch;
138
- exports.resolveExternal = exports.resolveDispatch;
143
+ exports.resolveExternal = resolveExternal;
144
+ exports.resolveDispatch = exports.resolveExternal;
139
145
  const dataMethods = ['create', 'update', 'patch'];
146
+ /**
147
+ * Resolve all resolvers at once.
148
+ *
149
+ * @param map The individual resolvers
150
+ * @returns A combined resolver middleware
151
+ * @deprecated Use individual data, query and external resolvers and hooks instead.
152
+ * @see https://dove.feathersjs.com/guides/cli/service.schemas.html
153
+ */
140
154
  const resolveAll = (map) => {
141
155
  const middleware = [];
142
156
  middleware.push((0, exports.resolveDispatch)(map.dispatch));
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/hooks/resolve.ts"],"names":[],"mappings":"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"}
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.37",
5
5
  "homepage": "https://feathersjs.com",
6
6
  "main": "lib/",
7
7
  "types": "lib/",
@@ -54,24 +54,24 @@
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.37",
58
+ "@feathersjs/commons": "^5.0.0-pre.37",
59
+ "@feathersjs/errors": "^5.0.0-pre.37",
60
+ "@feathersjs/feathers": "^5.0.0-pre.37",
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.37",
69
69
  "@types/mocha": "^10.0.1",
70
70
  "@types/node": "^18.11.18",
71
71
  "ajv-formats": "^2.1.1",
72
72
  "mocha": "^10.2.0",
73
73
  "shx": "^0.3.4",
74
- "typescript": "^4.9.4"
74
+ "typescript": "^4.9.5"
75
75
  },
76
- "gitHead": "c641598d9a4de3ceda10f56cf2af288a4236b15e"
76
+ "gitHead": "17a8b3b2614876772472d3cab3d96d45c01db6ed"
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
 
@@ -2,17 +2,7 @@ import { HookContext, NextFunction } from '@feathersjs/feathers'
2
2
  import { compose } from '@feathersjs/hooks'
3
3
  import { Resolver, ResolverStatus } from '../resolver'
4
4
 
5
- const getContext = <H extends HookContext>(context: H) => {
6
- return Object.freeze({
7
- ...context,
8
- params: Object.freeze({
9
- ...context.params,
10
- query: Object.freeze({})
11
- })
12
- })
13
- }
14
-
15
- const getData = <H extends HookContext>(context: H) => {
5
+ const getResult = <H extends HookContext>(context: H) => {
16
6
  const isPaginated = context.method === 'find' && context.result.data
17
7
  const data = isPaginated ? context.result.data : context.result
18
8
 
@@ -39,11 +29,10 @@ const runResolvers = async <T, H extends HookContext>(
39
29
  export type ResolverSetting<H extends HookContext> = Resolver<any, H> | Resolver<any, H>[]
40
30
 
41
31
  export const resolveQuery =
42
- <T, H extends HookContext>(...resolvers: Resolver<T, H>[]) =>
32
+ <H extends HookContext>(...resolvers: Resolver<any, H>[]) =>
43
33
  async (context: H, next?: NextFunction) => {
44
- const ctx = getContext(context)
45
34
  const data = context?.params?.query || {}
46
- const query = await runResolvers(resolvers, data, ctx)
35
+ const query = await runResolvers(resolvers, data, context)
47
36
 
48
37
  context.params = {
49
38
  ...context.params,
@@ -56,10 +45,9 @@ export const resolveQuery =
56
45
  }
57
46
 
58
47
  export const resolveData =
59
- <T, H extends HookContext>(...resolvers: Resolver<T, H>[]) =>
48
+ <H extends HookContext>(...resolvers: Resolver<any, H>[]) =>
60
49
  async (context: H, next?: NextFunction) => {
61
50
  if (context.data !== undefined) {
62
- const ctx = getContext(context)
63
51
  const data = context.data
64
52
 
65
53
  const status = {
@@ -67,9 +55,11 @@ export const resolveData =
67
55
  }
68
56
 
69
57
  if (Array.isArray(data)) {
70
- context.data = await Promise.all(data.map((current) => runResolvers(resolvers, current, ctx, status)))
58
+ context.data = await Promise.all(
59
+ data.map((current) => runResolvers(resolvers, current, context, status))
60
+ )
71
61
  } else {
72
- context.data = await runResolvers(resolvers, data, ctx, status)
62
+ context.data = await runResolvers(resolvers, data, context, status)
73
63
  }
74
64
  }
75
65
 
@@ -78,40 +68,39 @@ export const resolveData =
78
68
  }
79
69
  }
80
70
 
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
- )
71
+ export const resolveResult = <H extends HookContext>(...resolvers: Resolver<any, H>[]) => {
72
+ const virtualProperties = new Set(resolvers.reduce((acc, current) => acc.concat(current.virtualNames), []))
85
73
 
86
- return async (context: H, next?: NextFunction) => {
87
- if (typeof next === 'function') {
88
- const { $resolve, $select: select, ...query } = context.params?.query || {}
89
- const $select = Array.isArray(select) ? select.filter((name) => !virtualProperties.has(name)) : select
90
- const resolve = {
91
- originalContext: context,
92
- ...context.params.resolve,
93
- properties: $resolve || select
94
- }
74
+ return async (context: H, next: NextFunction) => {
75
+ if (typeof next !== 'function') {
76
+ throw new Error('The resolveResult hook must be used as an around hook')
77
+ }
95
78
 
96
- context.params = {
97
- ...context.params,
98
- resolve,
99
- query: {
100
- ...query,
101
- $select
102
- }
103
- }
79
+ const { $resolve, $select: select, ...query } = context.params?.query || {}
80
+ const $select = Array.isArray(select) ? select.filter((name) => !virtualProperties.has(name)) : select
81
+ const resolve = {
82
+ originalContext: context,
83
+ ...context.params.resolve,
84
+ properties: $resolve || select
85
+ }
104
86
 
105
- await next()
87
+ context.params = {
88
+ ...context.params,
89
+ resolve,
90
+ query: {
91
+ ...query,
92
+ ...($select ? { $select } : {})
93
+ }
106
94
  }
107
95
 
108
- const ctx = getContext(context)
96
+ await next()
97
+
109
98
  const status = context.params.resolve
110
- const { isPaginated, data } = getData(context)
99
+ const { isPaginated, data } = getResult(context)
111
100
 
112
101
  const result = Array.isArray(data)
113
- ? await Promise.all(data.map(async (current) => runResolvers(resolvers, current, ctx, status)))
114
- : await runResolvers(resolvers, data, ctx, status)
102
+ ? await Promise.all(data.map(async (current) => runResolvers(resolvers, current, context, status)))
103
+ : await runResolvers(resolvers, data, context, status)
115
104
 
116
105
  if (isPaginated) {
117
106
  context.result.data = result
@@ -123,32 +112,58 @@ export const resolveResult = <T, H extends HookContext>(...resolvers: Resolver<T
123
112
 
124
113
  export const DISPATCH = Symbol('@feathersjs/schema/dispatch')
125
114
 
126
- export const getDispatch = (value: any, fallback = value) =>
127
- typeof value === 'object' && value !== null && value[DISPATCH] !== undefined ? value[DISPATCH] : fallback
115
+ export const getDispatchValue = (value: any): any => {
116
+ if (typeof value === 'object' && value !== null) {
117
+ if (value[DISPATCH] !== undefined) {
118
+ return value[DISPATCH]
119
+ }
128
120
 
129
- export const resolveDispatch =
130
- <T, H extends HookContext>(...resolvers: Resolver<T, H>[]) =>
131
- async (context: H, next?: NextFunction) => {
132
- if (typeof next === 'function') {
133
- await next()
121
+ if (Array.isArray(value)) {
122
+ return value.map((item) => getDispatchValue(item))
134
123
  }
124
+ }
125
+
126
+ return value
127
+ }
128
+
129
+ export const getDispatch = (value: any): any =>
130
+ typeof value === 'object' && value !== null && value[DISPATCH] ? value[DISPATCH] : null
135
131
 
136
- const ctx = getContext(context)
137
- const existingDispatch = getDispatch(context.result, null)
132
+ export const setDispatch = (current: any, dispatch: any) => {
133
+ Object.defineProperty(current, DISPATCH, {
134
+ value: dispatch,
135
+ enumerable: false,
136
+ configurable: false
137
+ })
138
+
139
+ return dispatch
140
+ }
141
+
142
+ export const resolveExternal =
143
+ <H extends HookContext>(...resolvers: Resolver<any, H>[]) =>
144
+ async (context: H, next: NextFunction) => {
145
+ if (typeof next !== 'function') {
146
+ throw new Error('The resolveExternal hook must be used as an around hook')
147
+ }
148
+
149
+ await next()
150
+
151
+ const existingDispatch = getDispatch(context.result)
138
152
 
139
153
  if (existingDispatch !== null) {
140
154
  context.dispatch = existingDispatch
141
155
  } else {
142
156
  const status = context.params.resolve
143
- const { isPaginated, data } = getData(context)
157
+ const { isPaginated, data } = getResult(context)
144
158
  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])
159
+ const resolved = await runResolvers(resolvers, current, context, status)
160
+ const currentDispatch = Object.keys(resolved).reduce((res, key) => {
161
+ res[key] = getDispatchValue(resolved[key])
149
162
 
150
163
  return res
151
- }, {} as any)
164
+ }, {} as Record<string, any>)
165
+
166
+ return setDispatch(current, currentDispatch)
152
167
  }
153
168
 
154
169
  const result = await (Array.isArray(data)
@@ -161,18 +176,13 @@ export const resolveDispatch =
161
176
  }
162
177
  : result
163
178
 
164
- context.dispatch = dispatch
165
- Object.defineProperty(context.result, DISPATCH, {
166
- value: dispatch,
167
- enumerable: false,
168
- configurable: false
169
- })
179
+ context.dispatch = setDispatch(context.result, dispatch)
170
180
  }
171
181
  }
172
182
 
173
- export const resolveExternal = resolveDispatch
183
+ export const resolveDispatch = resolveExternal
174
184
 
175
- export type ResolveAllSettings<H extends HookContext> = {
185
+ type ResolveAllSettings<H extends HookContext> = {
176
186
  data?: {
177
187
  create: Resolver<any, H>
178
188
  patch: Resolver<any, H>
@@ -185,6 +195,14 @@ export type ResolveAllSettings<H extends HookContext> = {
185
195
 
186
196
  const dataMethods = ['create', 'update', 'patch'] as const
187
197
 
198
+ /**
199
+ * Resolve all resolvers at once.
200
+ *
201
+ * @param map The individual resolvers
202
+ * @returns A combined resolver middleware
203
+ * @deprecated Use individual data, query and external resolvers and hooks instead.
204
+ * @see https://dove.feathersjs.com/guides/cli/service.schemas.html
205
+ */
188
206
  export const resolveAll = <H extends HookContext>(map: ResolveAllSettings<H>) => {
189
207
  const middleware = []
190
208
 
@@ -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
  }