@loopback/repository 3.3.0 → 3.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/dist/common-types.js +1 -1
  3. package/dist/common-types.js.map +1 -1
  4. package/dist/connectors/connector.d.ts +35 -1
  5. package/dist/decorators/model.decorator.js +2 -1
  6. package/dist/decorators/model.decorator.js.map +1 -1
  7. package/dist/index.d.ts +5 -0
  8. package/dist/index.js +7 -0
  9. package/dist/index.js.map +1 -1
  10. package/dist/mixins/repository.mixin.d.ts +11 -11
  11. package/dist/mixins/repository.mixin.js.map +1 -1
  12. package/dist/model.d.ts +2 -2
  13. package/dist/model.js.map +1 -1
  14. package/dist/relations/belongs-to/{belongs-to-accessor.d.ts → belongs-to.accessor.d.ts} +0 -0
  15. package/dist/relations/belongs-to/{belongs-to-accessor.js → belongs-to.accessor.js} +2 -2
  16. package/dist/relations/belongs-to/{belongs-to-accessor.js.map → belongs-to.accessor.js.map} +1 -1
  17. package/dist/relations/belongs-to/belongs-to.decorator.js +5 -2
  18. package/dist/relations/belongs-to/belongs-to.decorator.js.map +1 -1
  19. package/dist/relations/belongs-to/belongs-to.helpers.js +1 -1
  20. package/dist/relations/belongs-to/belongs-to.helpers.js.map +1 -1
  21. package/dist/relations/belongs-to/belongs-to.inclusion-resolver.d.ts +1 -1
  22. package/dist/relations/belongs-to/belongs-to.repository.d.ts +1 -1
  23. package/dist/relations/belongs-to/belongs-to.repository.js +2 -2
  24. package/dist/relations/belongs-to/belongs-to.repository.js.map +1 -1
  25. package/dist/relations/belongs-to/index.d.ts +1 -1
  26. package/dist/relations/belongs-to/index.js +1 -1
  27. package/dist/relations/has-many/has-many-through.helpers.js +1 -1
  28. package/dist/relations/has-many/has-many-through.helpers.js.map +1 -1
  29. package/dist/relations/has-many/{has-many-through.inclusion.resolver.d.ts → has-many-through.inclusion-resolver.d.ts} +1 -1
  30. package/dist/relations/has-many/{has-many-through.inclusion.resolver.js → has-many-through.inclusion-resolver.js} +2 -2
  31. package/dist/relations/has-many/{has-many-through.inclusion.resolver.js.map → has-many-through.inclusion-resolver.js.map} +1 -1
  32. package/dist/relations/has-many/{has-many-through-repository.factory.d.ts → has-many-through.repository-factory.d.ts} +0 -0
  33. package/dist/relations/has-many/{has-many-through-repository.factory.js → has-many-through.repository-factory.js} +2 -2
  34. package/dist/relations/has-many/{has-many-through-repository.factory.js.map → has-many-through.repository-factory.js.map} +1 -1
  35. package/dist/relations/has-many/has-many-through.repository.js.map +1 -1
  36. package/dist/relations/has-many/has-many.helpers.js +1 -1
  37. package/dist/relations/has-many/has-many.helpers.js.map +1 -1
  38. package/dist/relations/has-many/has-many.inclusion-resolver.d.ts +1 -1
  39. package/dist/relations/has-many/has-many.inclusion-resolver.js +1 -1
  40. package/dist/relations/has-many/has-many.inclusion-resolver.js.map +1 -1
  41. package/dist/relations/has-many/{has-many-repository.factory.d.ts → has-many.repository-factory.d.ts} +1 -1
  42. package/dist/relations/has-many/{has-many-repository.factory.js → has-many.repository-factory.js} +2 -2
  43. package/dist/relations/has-many/has-many.repository-factory.js.map +1 -0
  44. package/dist/relations/has-many/has-many.repository.d.ts +1 -1
  45. package/dist/relations/has-many/has-many.repository.js +5 -5
  46. package/dist/relations/has-many/has-many.repository.js.map +1 -1
  47. package/dist/relations/has-many/index.d.ts +2 -2
  48. package/dist/relations/has-many/index.js +2 -2
  49. package/dist/relations/has-one/has-one.helpers.js +1 -1
  50. package/dist/relations/has-one/has-one.helpers.js.map +1 -1
  51. package/dist/relations/has-one/has-one.inclusion-resolver.d.ts +1 -1
  52. package/dist/relations/has-one/{has-one-repository.factory.d.ts → has-one.repository-factory.d.ts} +1 -1
  53. package/dist/relations/has-one/{has-one-repository.factory.js → has-one.repository-factory.js} +2 -2
  54. package/dist/relations/has-one/has-one.repository-factory.js.map +1 -0
  55. package/dist/relations/has-one/index.d.ts +1 -1
  56. package/dist/relations/has-one/index.js +1 -1
  57. package/dist/relations/relation.helpers.js +5 -9
  58. package/dist/relations/relation.helpers.js.map +1 -1
  59. package/package.json +15 -15
  60. package/src/connectors/connector.ts +41 -1
  61. package/src/index.ts +5 -0
  62. package/src/model.ts +2 -2
  63. package/src/relations/belongs-to/{belongs-to-accessor.ts → belongs-to.accessor.ts} +1 -1
  64. package/src/relations/belongs-to/belongs-to.decorator.ts +2 -2
  65. package/src/relations/belongs-to/belongs-to.helpers.ts +1 -1
  66. package/src/relations/belongs-to/belongs-to.inclusion-resolver.ts +1 -1
  67. package/src/relations/belongs-to/belongs-to.repository.ts +1 -2
  68. package/src/relations/belongs-to/index.ts +1 -1
  69. package/src/relations/has-many/has-many-through.helpers.ts +3 -1
  70. package/src/relations/has-many/{has-many-through.inclusion.resolver.ts → has-many-through.inclusion-resolver.ts} +2 -2
  71. package/src/relations/has-many/{has-many-through-repository.factory.ts → has-many-through.repository-factory.ts} +1 -1
  72. package/src/relations/has-many/has-many.helpers.ts +1 -1
  73. package/src/relations/has-many/has-many.inclusion-resolver.ts +4 -2
  74. package/src/relations/has-many/{has-many-repository.factory.ts → has-many.repository-factory.ts} +4 -2
  75. package/src/relations/has-many/has-many.repository.ts +2 -2
  76. package/src/relations/has-many/index.ts +2 -2
  77. package/src/relations/has-one/has-one.helpers.ts +1 -1
  78. package/src/relations/has-one/has-one.inclusion-resolver.ts +1 -1
  79. package/src/relations/has-one/{has-one-repository.factory.ts → has-one.repository-factory.ts} +4 -2
  80. package/src/relations/has-one/index.ts +1 -1
  81. package/src/relations/relation.helpers.ts +5 -9
  82. package/dist/relations/has-many/has-many-repository.factory.js.map +0 -1
  83. package/dist/relations/has-one/has-one-repository.factory.js.map +0 -1
@@ -6,7 +6,7 @@
6
6
  import debugFactory from 'debug';
7
7
  import {DataObject} from '../../common-types';
8
8
  import {Entity} from '../../model';
9
- import {EntityCrudRepository} from '../../repositories/repository';
9
+ import {EntityCrudRepository} from '../../repositories';
10
10
  import {Getter, HasManyDefinition, InclusionResolver} from '../relation.types';
11
11
  import {resolveHasManyMetadata} from './has-many.helpers';
12
12
  import {createHasManyInclusionResolver} from './has-many.inclusion-resolver';
@@ -15,7 +15,9 @@ import {
15
15
  HasManyRepository,
16
16
  } from './has-many.repository';
17
17
 
18
- const debug = debugFactory('loopback:repository:has-many-repository-factory');
18
+ const debug = debugFactory(
19
+ 'loopback:repository:relations:has-many:repository-factory',
20
+ );
19
21
 
20
22
  export interface HasManyRepositoryFactory<
21
23
  Target extends Entity,
@@ -11,8 +11,8 @@ import {
11
11
  constrainDataObject,
12
12
  constrainFilter,
13
13
  constrainWhere,
14
- } from '../../repositories/constraint-utils';
15
- import {EntityCrudRepository} from '../../repositories/repository';
14
+ EntityCrudRepository,
15
+ } from '../../repositories';
16
16
 
17
17
  /**
18
18
  * CRUD operations for a target repository of a HasMany relation
@@ -3,8 +3,8 @@
3
3
  // This file is licensed under the MIT License.
4
4
  // License text available at https://opensource.org/licenses/MIT
5
5
 
6
- export * from './has-many-repository.factory';
7
- export * from './has-many-through-repository.factory';
6
+ export * from './has-many.repository-factory';
7
+ export * from './has-many-through.repository-factory';
8
8
  export * from './has-many-through.repository';
9
9
  export * from './has-many.decorator';
10
10
  export * from './has-many.inclusion-resolver';
@@ -9,7 +9,7 @@ import {InvalidRelationError} from '../../errors';
9
9
  import {isTypeResolver} from '../../type-resolver';
10
10
  import {HasOneDefinition, RelationType} from '../relation.types';
11
11
 
12
- const debug = debugFactory('loopback:repository:has-one-helpers');
12
+ const debug = debugFactory('loopback:repository:relations:has-one:helpers');
13
13
 
14
14
  /**
15
15
  * Relation definition with optional metadata (e.g. `keyTo`) filled in.
@@ -6,7 +6,7 @@
6
6
  import {Filter, InclusionFilter} from '@loopback/filter';
7
7
  import {AnyObject, Options} from '../../common-types';
8
8
  import {Entity} from '../../model';
9
- import {EntityCrudRepository} from '../../repositories/repository';
9
+ import {EntityCrudRepository} from '../../repositories';
10
10
  import {
11
11
  findByForeignKeys,
12
12
  flattenTargetsOfOneToOneRelation,
@@ -6,13 +6,15 @@
6
6
  import debugFactory from 'debug';
7
7
  import {DataObject} from '../../common-types';
8
8
  import {Entity} from '../../model';
9
- import {EntityCrudRepository} from '../../repositories/repository';
9
+ import {EntityCrudRepository} from '../../repositories';
10
10
  import {Getter, HasOneDefinition, InclusionResolver} from '../relation.types';
11
11
  import {resolveHasOneMetadata} from './has-one.helpers';
12
12
  import {createHasOneInclusionResolver} from './has-one.inclusion-resolver';
13
13
  import {DefaultHasOneRepository, HasOneRepository} from './has-one.repository';
14
14
 
15
- const debug = debugFactory('loopback:repository:has-one-repository-factory');
15
+ const debug = debugFactory(
16
+ 'loopback:repository:relations:has-one:repository-factory',
17
+ );
16
18
 
17
19
  export interface HasOneRepositoryFactory<
18
20
  Target extends Entity,
@@ -5,4 +5,4 @@
5
5
 
6
6
  export * from './has-one.decorator';
7
7
  export * from './has-one.repository';
8
- export * from './has-one-repository.factory';
8
+ export * from './has-one.repository-factory';
@@ -5,7 +5,7 @@
5
5
 
6
6
  import assert from 'assert';
7
7
  import debugFactory from 'debug';
8
- import _ from 'lodash';
8
+ import _, {cloneDeep} from 'lodash';
9
9
  import {
10
10
  AnyObject,
11
11
  Entity,
@@ -39,17 +39,11 @@ export async function findByForeignKeys<
39
39
  options?: Options,
40
40
  ): Promise<(Target & TargetRelations)[]> {
41
41
  let value;
42
+ scope = cloneDeep(scope);
42
43
 
43
44
  if (Array.isArray(fkValues)) {
44
45
  if (fkValues.length === 0) return [];
45
- value =
46
- fkValues.length === 1
47
- ? fkValues[0]
48
- : {
49
- // Create a copy to prevent query coercion algorithm
50
- // inside connectors from modifying the original values
51
- inq: [...fkValues],
52
- };
46
+ value = fkValues.length === 1 ? fkValues[0] : {inq: fkValues};
53
47
  } else {
54
48
  value = fkValues;
55
49
  }
@@ -87,6 +81,8 @@ export async function includeRelatedModels<
87
81
  include?: InclusionFilter[],
88
82
  options?: Options,
89
83
  ): Promise<(T & Relations)[]> {
84
+ entities = cloneDeep(entities);
85
+ include = cloneDeep(include);
90
86
  const result = entities as (T & Relations)[];
91
87
  if (!include) return result;
92
88
 
@@ -1 +0,0 @@
1
- {"version":3,"file":"has-many-repository.factory.js","sourceRoot":"","sources":["../../../src/relations/has-many/has-many-repository.factory.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,0DAAiC;AAKjC,yDAA0D;AAC1D,+EAA6E;AAC7E,+DAG+B;AAE/B,MAAM,KAAK,GAAG,eAAY,CAAC,iDAAiD,CAAC,CAAC;AAiB9E;;;;;;;;;;;;GAYG;AACH,SAAgB,8BAA8B,CAK5C,gBAAmC,EACnC,sBAAsE;IAEtE,MAAM,IAAI,GAAG,yCAAsB,CAAC,gBAAgB,CAAC,CAAC;IACtD,KAAK,CAAC,wCAAwC,EAAE,IAAI,CAAC,CAAC;IACtD,MAAM,MAAM,GAAqD,UAC/D,OAAuB;QAEvB,8DAA8D;QAC9D,MAAM,UAAU,GAAQ,EAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,EAAC,CAAC;QAChD,OAAO,IAAI,8CAAwB,CAIjC,sBAAsB,EAAE,UAAgC,CAAC,CAAC;IAC9D,CAAC,CAAC;IACF,MAAM,CAAC,iBAAiB,GAAG,4DAA8B,CACvD,IAAI,EACJ,sBAAsB,CACvB,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AA1BD,wEA0BC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"has-one-repository.factory.js","sourceRoot":"","sources":["../../../src/relations/has-one/has-one-repository.factory.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,0DAAiC;AAKjC,uDAAwD;AACxD,6EAA2E;AAC3E,6DAA+E;AAE/E,MAAM,KAAK,GAAG,eAAY,CAAC,gDAAgD,CAAC,CAAC;AAgB7E;;;;;;;;;;;;GAYG;AACH,SAAgB,6BAA6B,CAK3C,gBAAkC,EAClC,sBAAsE;IAEtE,MAAM,IAAI,GAAG,uCAAqB,CAAC,gBAAgB,CAAC,CAAC;IACrD,KAAK,CAAC,uCAAuC,EAAE,IAAI,CAAC,CAAC;IACrD,MAAM,MAAM,GAAoD,UAC9D,OAAuB;QAEvB,8DAA8D;QAC9D,MAAM,UAAU,GAAQ,EAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,EAAC,CAAC;QAChD,OAAO,IAAI,4CAAuB,CAIhC,sBAAsB,EAAE,UAAgC,CAAC,CAAC;IAC9D,CAAC,CAAC;IACF,MAAM,CAAC,iBAAiB,GAAG,0DAA6B,CACtD,IAAI,EACJ,sBAAsB,CACvB,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AA1BD,sEA0BC"}