@strapi/database 5.55.1 → 5.57.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/dist/dialects/dialect.d.ts +28 -0
  2. package/dist/dialects/dialect.d.ts.map +1 -1
  3. package/dist/dialects/dialect.js +29 -0
  4. package/dist/dialects/dialect.js.map +1 -1
  5. package/dist/dialects/dialect.mjs +29 -0
  6. package/dist/dialects/dialect.mjs.map +1 -1
  7. package/dist/dialects/mysql/index.d.ts +9 -0
  8. package/dist/dialects/mysql/index.d.ts.map +1 -1
  9. package/dist/dialects/mysql/index.js +37 -0
  10. package/dist/dialects/mysql/index.js.map +1 -1
  11. package/dist/dialects/mysql/index.mjs +37 -0
  12. package/dist/dialects/mysql/index.mjs.map +1 -1
  13. package/dist/dialects/postgresql/index.d.ts +7 -0
  14. package/dist/dialects/postgresql/index.d.ts.map +1 -1
  15. package/dist/dialects/postgresql/index.js +50 -0
  16. package/dist/dialects/postgresql/index.js.map +1 -1
  17. package/dist/dialects/postgresql/index.mjs +50 -0
  18. package/dist/dialects/postgresql/index.mjs.map +1 -1
  19. package/dist/dialects/sqlite/index.d.ts +9 -0
  20. package/dist/dialects/sqlite/index.d.ts.map +1 -1
  21. package/dist/dialects/sqlite/index.js +16 -0
  22. package/dist/dialects/sqlite/index.js.map +1 -1
  23. package/dist/dialects/sqlite/index.mjs +16 -0
  24. package/dist/dialects/sqlite/index.mjs.map +1 -1
  25. package/dist/entity-manager/entity-repository.js +1 -1
  26. package/dist/entity-manager/entity-repository.js.map +1 -1
  27. package/dist/entity-manager/entity-repository.mjs +1 -1
  28. package/dist/entity-manager/entity-repository.mjs.map +1 -1
  29. package/dist/entity-manager/index.d.ts.map +1 -1
  30. package/dist/entity-manager/index.js +38 -36
  31. package/dist/entity-manager/index.js.map +1 -1
  32. package/dist/entity-manager/index.mjs +38 -36
  33. package/dist/entity-manager/index.mjs.map +1 -1
  34. package/dist/entity-manager/morph-relations.d.ts.map +1 -1
  35. package/dist/entity-manager/morph-relations.js +3 -5
  36. package/dist/entity-manager/morph-relations.js.map +1 -1
  37. package/dist/entity-manager/morph-relations.mjs +3 -5
  38. package/dist/entity-manager/morph-relations.mjs.map +1 -1
  39. package/dist/entity-manager/regular-relations.js +3 -3
  40. package/dist/entity-manager/regular-relations.js.map +1 -1
  41. package/dist/entity-manager/regular-relations.mjs +3 -3
  42. package/dist/entity-manager/regular-relations.mjs.map +1 -1
  43. package/dist/entity-manager/relations-orderer.d.ts.map +1 -1
  44. package/dist/entity-manager/relations-orderer.js +4 -5
  45. package/dist/entity-manager/relations-orderer.js.map +1 -1
  46. package/dist/entity-manager/relations-orderer.mjs +2 -3
  47. package/dist/entity-manager/relations-orderer.mjs.map +1 -1
  48. package/dist/fields/biginteger.js +1 -1
  49. package/dist/fields/biginteger.js.map +1 -1
  50. package/dist/fields/biginteger.mjs +1 -1
  51. package/dist/fields/biginteger.mjs.map +1 -1
  52. package/dist/fields/boolean.js +1 -1
  53. package/dist/fields/boolean.js.map +1 -1
  54. package/dist/fields/boolean.mjs +1 -1
  55. package/dist/fields/boolean.mjs.map +1 -1
  56. package/dist/fields/number.js +1 -1
  57. package/dist/fields/number.js.map +1 -1
  58. package/dist/fields/number.mjs +1 -1
  59. package/dist/fields/number.mjs.map +1 -1
  60. package/dist/fields/shared/parsers.js +2 -2
  61. package/dist/fields/shared/parsers.js.map +1 -1
  62. package/dist/fields/shared/parsers.mjs +2 -2
  63. package/dist/fields/shared/parsers.mjs.map +1 -1
  64. package/dist/fields/string.js +1 -1
  65. package/dist/fields/string.js.map +1 -1
  66. package/dist/fields/string.mjs +1 -1
  67. package/dist/fields/string.mjs.map +1 -1
  68. package/dist/index.d.ts +9 -5
  69. package/dist/index.d.ts.map +1 -1
  70. package/dist/index.js +2 -0
  71. package/dist/index.js.map +1 -1
  72. package/dist/index.mjs +1 -0
  73. package/dist/index.mjs.map +1 -1
  74. package/dist/metadata/attribute-naming.d.ts +31 -0
  75. package/dist/metadata/attribute-naming.d.ts.map +1 -0
  76. package/dist/metadata/attribute-naming.js +39 -0
  77. package/dist/metadata/attribute-naming.js.map +1 -0
  78. package/dist/metadata/attribute-naming.mjs +37 -0
  79. package/dist/metadata/attribute-naming.mjs.map +1 -0
  80. package/dist/metadata/index.d.ts +5 -2
  81. package/dist/metadata/index.d.ts.map +1 -1
  82. package/dist/metadata/index.js +3 -0
  83. package/dist/metadata/index.js.map +1 -1
  84. package/dist/metadata/index.mjs +3 -1
  85. package/dist/metadata/index.mjs.map +1 -1
  86. package/dist/metadata/metadata.d.ts +10 -0
  87. package/dist/metadata/metadata.d.ts.map +1 -1
  88. package/dist/metadata/metadata.js +10 -2
  89. package/dist/metadata/metadata.js.map +1 -1
  90. package/dist/metadata/metadata.mjs +10 -2
  91. package/dist/metadata/metadata.mjs.map +1 -1
  92. package/dist/metadata/relations.d.ts.map +1 -1
  93. package/dist/metadata/relations.js +6 -5
  94. package/dist/metadata/relations.js.map +1 -1
  95. package/dist/metadata/relations.mjs +6 -5
  96. package/dist/metadata/relations.mjs.map +1 -1
  97. package/dist/migrations/common.d.ts +2 -0
  98. package/dist/migrations/common.d.ts.map +1 -1
  99. package/dist/migrations/common.js.map +1 -1
  100. package/dist/migrations/common.mjs.map +1 -1
  101. package/dist/migrations/file-builder.d.ts +97 -0
  102. package/dist/migrations/file-builder.d.ts.map +1 -0
  103. package/dist/migrations/file-builder.js +251 -0
  104. package/dist/migrations/file-builder.js.map +1 -0
  105. package/dist/migrations/file-builder.mjs +240 -0
  106. package/dist/migrations/file-builder.mjs.map +1 -0
  107. package/dist/migrations/index.d.ts +3 -2
  108. package/dist/migrations/index.d.ts.map +1 -1
  109. package/dist/migrations/index.js +6 -0
  110. package/dist/migrations/index.js.map +1 -1
  111. package/dist/migrations/index.mjs +6 -0
  112. package/dist/migrations/index.mjs.map +1 -1
  113. package/dist/migrations/internal-migrations/5.0.0-02-document-id.js +1 -1
  114. package/dist/migrations/internal-migrations/5.0.0-02-document-id.js.map +1 -1
  115. package/dist/migrations/internal-migrations/5.0.0-02-document-id.mjs +1 -1
  116. package/dist/migrations/internal-migrations/5.0.0-02-document-id.mjs.map +1 -1
  117. package/dist/migrations/resolver.d.ts.map +1 -1
  118. package/dist/migrations/resolver.js +4 -1
  119. package/dist/migrations/resolver.js.map +1 -1
  120. package/dist/migrations/resolver.mjs +4 -1
  121. package/dist/migrations/resolver.mjs.map +1 -1
  122. package/dist/query/helpers/order-by.d.ts.map +1 -1
  123. package/dist/query/helpers/order-by.js +3 -4
  124. package/dist/query/helpers/order-by.js.map +1 -1
  125. package/dist/query/helpers/order-by.mjs +3 -4
  126. package/dist/query/helpers/order-by.mjs.map +1 -1
  127. package/dist/query/helpers/populate/apply.d.ts.map +1 -1
  128. package/dist/query/helpers/populate/apply.js +46 -30
  129. package/dist/query/helpers/populate/apply.js.map +1 -1
  130. package/dist/query/helpers/populate/apply.mjs +46 -30
  131. package/dist/query/helpers/populate/apply.mjs.map +1 -1
  132. package/dist/query/helpers/populate/process.js +3 -3
  133. package/dist/query/helpers/populate/process.js.map +1 -1
  134. package/dist/query/helpers/populate/process.mjs +3 -3
  135. package/dist/query/helpers/populate/process.mjs.map +1 -1
  136. package/dist/query/helpers/search.js +2 -2
  137. package/dist/query/helpers/search.js.map +1 -1
  138. package/dist/query/helpers/search.mjs +2 -2
  139. package/dist/query/helpers/search.mjs.map +1 -1
  140. package/dist/query/helpers/streams/readable.js +3 -3
  141. package/dist/query/helpers/streams/readable.js.map +1 -1
  142. package/dist/query/helpers/streams/readable.mjs +3 -3
  143. package/dist/query/helpers/streams/readable.mjs.map +1 -1
  144. package/dist/query/helpers/transform.d.ts.map +1 -1
  145. package/dist/query/helpers/transform.js +6 -13
  146. package/dist/query/helpers/transform.js.map +1 -1
  147. package/dist/query/helpers/transform.mjs +6 -9
  148. package/dist/query/helpers/transform.mjs.map +1 -1
  149. package/dist/query/helpers/where.js +13 -9
  150. package/dist/query/helpers/where.js.map +1 -1
  151. package/dist/query/helpers/where.mjs +13 -9
  152. package/dist/query/helpers/where.mjs.map +1 -1
  153. package/dist/query/query-builder.d.ts.map +1 -1
  154. package/dist/query/query-builder.js +35 -29
  155. package/dist/query/query-builder.js.map +1 -1
  156. package/dist/query/query-builder.mjs +35 -29
  157. package/dist/query/query-builder.mjs.map +1 -1
  158. package/dist/schema/builder.js +5 -5
  159. package/dist/schema/builder.js.map +1 -1
  160. package/dist/schema/builder.mjs +5 -5
  161. package/dist/schema/builder.mjs.map +1 -1
  162. package/dist/schema/diff.js +12 -12
  163. package/dist/schema/diff.js.map +1 -1
  164. package/dist/schema/diff.mjs +12 -12
  165. package/dist/schema/diff.mjs.map +1 -1
  166. package/dist/schema/index.d.ts +3 -1
  167. package/dist/schema/index.d.ts.map +1 -1
  168. package/dist/schema/index.js +6 -0
  169. package/dist/schema/index.js.map +1 -1
  170. package/dist/schema/index.mjs +6 -0
  171. package/dist/schema/index.mjs.map +1 -1
  172. package/dist/schema/rename-helpers.d.ts +78 -0
  173. package/dist/schema/rename-helpers.d.ts.map +1 -0
  174. package/dist/schema/rename-helpers.js +235 -0
  175. package/dist/schema/rename-helpers.js.map +1 -0
  176. package/dist/schema/rename-helpers.mjs +233 -0
  177. package/dist/schema/rename-helpers.mjs.map +1 -0
  178. package/dist/utils/async-curry.d.ts.map +1 -1
  179. package/dist/utils/async-curry.js +1 -2
  180. package/dist/utils/async-curry.js.map +1 -1
  181. package/dist/utils/async-curry.mjs +1 -2
  182. package/dist/utils/async-curry.mjs.map +1 -1
  183. package/dist/utils/identifiers/hash.d.ts.map +1 -1
  184. package/dist/utils/identifiers/hash.js +1 -2
  185. package/dist/utils/identifiers/hash.js.map +1 -1
  186. package/dist/utils/identifiers/hash.mjs +1 -2
  187. package/dist/utils/identifiers/hash.mjs.map +1 -1
  188. package/dist/utils/identifiers/index.js +8 -10
  189. package/dist/utils/identifiers/index.js.map +1 -1
  190. package/dist/utils/identifiers/index.mjs +8 -6
  191. package/dist/utils/identifiers/index.mjs.map +1 -1
  192. package/dist/validations/relations/bidirectional.js +1 -1
  193. package/dist/validations/relations/bidirectional.js.map +1 -1
  194. package/dist/validations/relations/bidirectional.mjs +1 -1
  195. package/dist/validations/relations/bidirectional.mjs.map +1 -1
  196. package/package.json +6 -5
@@ -1,4 +1,4 @@
1
- import { castArray, pick, has, isNull, isEmpty, compact, differenceWith, uniqBy, difference, map, isNil, isPlainObject, isArray, isString, isNumber, isUndefined, isObject, uniqWith, isEqual, isInteger } from 'lodash/fp';
1
+ import { pick, has, isEmpty, compact, differenceWith, uniqBy, difference, map, isPlainObject, isString, isNumber, castArray, isObject, uniqWith, isEqual } from 'lodash';
2
2
  import { isScalarAttribute, isRelationalAttribute } from '../utils/types.mjs';
3
3
  import { createField } from '../fields/index.mjs';
4
4
  import createQueryBuilder from '../query/query-builder.mjs';
@@ -30,7 +30,7 @@ import { relationsOrderer } from './relations-orderer.mjs';
30
30
  await qb.execute();
31
31
  }
32
32
  }
33
- const isRecord = (value)=>isObject(value) && !isNil(value);
33
+ const isRecord = (value)=>isObject(value) && value != null;
34
34
  const toId = (value)=>{
35
35
  if (isRecord(value) && 'id' in value && isValidId(value.id)) {
36
36
  return value.id;
@@ -41,10 +41,10 @@ const toId = (value)=>{
41
41
  throw new Error(`Invalid id, expected a string or integer, got ${JSON.stringify(value)}`);
42
42
  };
43
43
  const toIds = (value)=>castArray(value || []).map(toId);
44
- const isValidId = (value)=>isString(value) || isInteger(value);
44
+ const isValidId = (value)=>isString(value) || Number.isInteger(value);
45
45
  const isValidObjectId = (value)=>isRecord(value) && 'id' in value && isValidId(value.id);
46
46
  const toIdArray = (data)=>{
47
- const array = castArray(data).filter((datum)=>!isNil(datum)).map((datum)=>{
47
+ const array = castArray(data).filter((datum)=>datum != null).map((datum)=>{
48
48
  // if it is a string or an integer return an obj with id = to datum
49
49
  if (isValidId(datum)) {
50
50
  return {
@@ -58,17 +58,17 @@ const toIdArray = (data)=>{
58
58
  }
59
59
  return datum;
60
60
  });
61
- return uniqWith(isEqual, array);
61
+ return uniqWith(array, isEqual);
62
62
  };
63
63
  const toAssocs = (data)=>{
64
- if (isArray(data) || isString(data) || isNumber(data) || isNull(data) || isRecord(data) && 'id' in data) {
64
+ if (Array.isArray(data) || isString(data) || isNumber(data) || data === null || isRecord(data) && 'id' in data) {
65
65
  return {
66
- set: isNull(data) ? data : toIdArray(data)
66
+ set: data === null ? data : toIdArray(data)
67
67
  };
68
68
  }
69
69
  if (data?.set) {
70
70
  return {
71
- set: isNull(data.set) ? data.set : toIdArray(data.set)
71
+ set: data.set === null ? data.set : toIdArray(data.set)
72
72
  };
73
73
  }
74
74
  return {
@@ -93,8 +93,8 @@ const processData = (metadata, data = {}, { withDefaults = false } = {})=>{
93
93
  const attribute = attributes[attributeName];
94
94
  if (isScalarAttribute(attribute)) {
95
95
  const field = createField(attribute);
96
- if (isUndefined(data[attributeName])) {
97
- if (!isUndefined(attribute.default) && withDefaults) {
96
+ if (data[attributeName] === undefined) {
97
+ if (attribute.default !== undefined && withDefaults) {
98
98
  if (typeof attribute.default === 'function') {
99
99
  obj[attributeName] = attribute.default();
100
100
  } else {
@@ -114,7 +114,7 @@ const processData = (metadata, data = {}, { withDefaults = false } = {})=>{
114
114
  if ('joinColumn' in attribute && attribute.joinColumn && attribute.owner) {
115
115
  const joinColumnName = attribute.joinColumn.name;
116
116
  // allow setting to null
117
- let attrValue = !isUndefined(data[attributeName]) ? data[attributeName] : data[joinColumnName];
117
+ let attrValue = data[attributeName] !== undefined ? data[attributeName] : data[joinColumnName];
118
118
  // Legacy single-column storage: only one id fits. Take the last
119
119
  // and warn — modern schemas use a join table that can hold both
120
120
  // the draft and published rows of the related entry.
@@ -125,9 +125,9 @@ const processData = (metadata, data = {}, { withDefaults = false } = {})=>{
125
125
  }
126
126
  attrValue = setIds.length > 0 ? setIds[setIds.length - 1] : null;
127
127
  }
128
- if (isNull(attrValue)) {
128
+ if (attrValue === null) {
129
129
  obj[joinColumnName] = attrValue;
130
- } else if (!isUndefined(attrValue)) {
130
+ } else if (attrValue !== undefined) {
131
131
  obj[joinColumnName] = toId(attrValue);
132
132
  }
133
133
  continue;
@@ -142,8 +142,8 @@ const processData = (metadata, data = {}, { withDefaults = false } = {})=>{
142
142
  });
143
143
  continue;
144
144
  }
145
- if (!isUndefined(value)) {
146
- if (!has('id', value) || !has(typeField, value)) {
145
+ if (value !== undefined) {
146
+ if (!has(value, 'id') || !has(value, typeField)) {
147
147
  throw new Error(`Expects properties ${typeField} an id to make a morph association`);
148
148
  }
149
149
  Object.assign(obj, {
@@ -186,11 +186,11 @@ const createEntityManager = (db)=>{
186
186
  const states = await db.lifecycles.run('beforeCount', uid, {
187
187
  params
188
188
  });
189
- const res = await this.createQueryBuilder(uid).init(pick([
189
+ const res = await this.createQueryBuilder(uid).init(pick(params, [
190
190
  '_q',
191
191
  'where',
192
192
  'filters'
193
- ], params)).count().first().execute();
193
+ ])).count().first().execute();
194
194
  const result = Number(res.count);
195
195
  await db.lifecycles.run('afterCount', uid, {
196
196
  params,
@@ -248,7 +248,7 @@ const createEntityManager = (db)=>{
248
248
  });
249
249
  const metadata = db.metadata.get(uid);
250
250
  const { data } = params;
251
- if (!isArray(data)) {
251
+ if (!Array.isArray(data)) {
252
252
  throw new Error('CreateMany expects data to be an array');
253
253
  }
254
254
  const dataToInsert = data.map((datum)=>processData(metadata, datum, {
@@ -348,11 +348,11 @@ const createEntityManager = (db)=>{
348
348
  throw new Error('Update requires data');
349
349
  }
350
350
  // Same pick set as count and deleteMany. See deleteMany for why.
351
- const updatedRows = await this.createQueryBuilder(uid).init(pick([
351
+ const updatedRows = await this.createQueryBuilder(uid).init(pick(params, [
352
352
  '_q',
353
353
  'where',
354
354
  'filters'
355
- ], params)).update(dataToUpdate).execute({
355
+ ])).update(dataToUpdate).execute({
356
356
  mapResults: false
357
357
  });
358
358
  const result = {
@@ -411,11 +411,11 @@ const createEntityManager = (db)=>{
411
411
  // Only apply filter criteria (_q / where / filters), same as count — not full findMany params.
412
412
  // limit, offset, orderBy, populate, etc. must be ignored: populate throws on delete results,
413
413
  // and pagination keys can make deleteMany diverge from findMany or delete an unexpected slice.
414
- const deletedRows = await this.createQueryBuilder(uid).init(pick([
414
+ const deletedRows = await this.createQueryBuilder(uid).init(pick(params, [
415
415
  '_q',
416
416
  'where',
417
417
  'filters'
418
- ], params)).delete().execute({
418
+ ])).delete().execute({
419
419
  mapResults: false
420
420
  });
421
421
  const result = {
@@ -434,7 +434,7 @@ const createEntityManager = (db)=>{
434
434
  const { transaction: trx } = options ?? {};
435
435
  for (const attributeName of Object.keys(attributes)){
436
436
  const attribute = attributes[attributeName];
437
- const isValidLink = has(attributeName, data) && !isNil(data[attributeName]);
437
+ const isValidLink = has(data, attributeName) && data[attributeName] != null;
438
438
  if (attribute.type !== 'relation' || !isValidLink) {
439
439
  continue;
440
440
  }
@@ -574,7 +574,7 @@ const createEntityManager = (db)=>{
574
574
  });
575
575
  }
576
576
  // prepare new relations to insert
577
- const insert = uniqBy('id', relsToAdd).map((data)=>{
577
+ const insert = uniqBy(relsToAdd, 'id').map((data)=>{
578
578
  return {
579
579
  [joinColumn.name]: id,
580
580
  [inverseJoinColumn.name]: data.id,
@@ -627,7 +627,7 @@ const createEntityManager = (db)=>{
627
627
  const { transaction: trx } = options ?? {};
628
628
  for (const attributeName of Object.keys(attributes)){
629
629
  const attribute = attributes[attributeName];
630
- if (attribute.type !== 'relation' || !has(attributeName, data)) {
630
+ if (attribute.type !== 'relation' || !has(data, attributeName)) {
631
631
  continue;
632
632
  }
633
633
  const cleanRelationData = toAssocs(data[attributeName]);
@@ -646,7 +646,7 @@ const createEntityManager = (db)=>{
646
646
  [idColumn.name]: id,
647
647
  [typeColumn.name]: uid
648
648
  }).transacting(trx).execute();
649
- if (!isNull(cleanRelationData.set)) {
649
+ if (cleanRelationData.set !== null) {
650
650
  const relId = toIds(cleanRelationData.set?.[0]);
651
651
  await this.createQueryBuilder(target).update({
652
652
  [idColumn.name]: id,
@@ -876,7 +876,7 @@ const createEntityManager = (db)=>{
876
876
  }).update({
877
877
  [attribute.joinColumn.referencedColumn]: null
878
878
  }).transacting(trx).execute();
879
- if (!isNull(cleanRelationData.set)) {
879
+ if (cleanRelationData.set !== null) {
880
880
  const relIdsToAdd = toIds(cleanRelationData.set);
881
881
  await this.createQueryBuilder(target).where({
882
882
  id: relIdsToAdd
@@ -899,7 +899,7 @@ const createEntityManager = (db)=>{
899
899
  select.push(inverseOrderColumnName);
900
900
  }
901
901
  // only delete relations
902
- if (isNull(cleanRelationData.set)) {
902
+ if (cleanRelationData.set === null) {
903
903
  await deleteRelations({
904
904
  id,
905
905
  attribute,
@@ -908,7 +908,7 @@ const createEntityManager = (db)=>{
908
908
  transaction: trx
909
909
  });
910
910
  } else {
911
- const isPartialUpdate = !has('set', cleanRelationData);
911
+ const isPartialUpdate = !has(cleanRelationData, 'set');
912
912
  let relIdsToaddOrMove;
913
913
  if (isPartialUpdate) {
914
914
  if (isAnyToOne(attribute)) ;
@@ -916,7 +916,7 @@ const createEntityManager = (db)=>{
916
916
  // Use id-only comparison so a disconnect item whose id also appears in
917
917
  // the connect array is correctly excluded from deletion (deep-equality
918
918
  // fails because connect items carry extra fields like `position`).
919
- const relIdsToDelete = toIds(differenceWith((a, b)=>a.id === b.id, cleanRelationData.disconnect, cleanRelationData.connect ?? []));
919
+ const relIdsToDelete = toIds(differenceWith(cleanRelationData.disconnect, cleanRelationData.connect ?? [], (a, b)=>a.id === b.id));
920
920
  // When a connect item's position.before/after references an id that is
921
921
  // about to be deleted (relIdsToDelete), the referenced row won't exist by
922
922
  // the time the adjacentRelations query runs below, causing sortConnectArray
@@ -1056,7 +1056,7 @@ const createEntityManager = (db)=>{
1056
1056
  }).where(joinTable.on || {}).transacting(trx).execute();
1057
1057
  }
1058
1058
  // prepare relations to insert
1059
- const insert = uniqBy('id', cleanRelationData.connect).map((relToAdd)=>({
1059
+ const insert = uniqBy(cleanRelationData.connect, 'id').map((relToAdd)=>({
1060
1060
  [joinColumn.name]: id,
1061
1061
  [inverseJoinColumn.name]: relToAdd.id,
1062
1062
  ...joinTable.on,
@@ -1093,7 +1093,7 @@ const createEntityManager = (db)=>{
1093
1093
  }
1094
1094
  // add inv order value
1095
1095
  if (hasInverseOrderColumn(attribute)) {
1096
- const nonExistingRelsIds = difference(relIdsToaddOrMove, map(inverseJoinColumn.name, currentMovingRels));
1096
+ const nonExistingRelsIds = difference(relIdsToaddOrMove, map(currentMovingRels, inverseJoinColumn.name));
1097
1097
  const maxResults = await db.getConnection().select(inverseJoinColumn.name).max(inverseOrderColumnName, {
1098
1098
  as: 'max'
1099
1099
  }).whereIn(inverseJoinColumn.name, nonExistingRelsIds).where(joinTable.on || {}).groupBy(inverseJoinColumn.name).from(joinTable.name).transacting(trx);
@@ -1138,7 +1138,7 @@ const createEntityManager = (db)=>{
1138
1138
  if (isEmpty(cleanRelationData.set)) {
1139
1139
  continue;
1140
1140
  }
1141
- const insert = uniqBy('id', cleanRelationData.set).map((relToAdd)=>({
1141
+ const insert = uniqBy(cleanRelationData.set, 'id').map((relToAdd)=>({
1142
1142
  [joinColumn.name]: id,
1143
1143
  [inverseJoinColumn.name]: relToAdd.id,
1144
1144
  ...joinTable.on,
@@ -1158,7 +1158,7 @@ const createEntityManager = (db)=>{
1158
1158
  $in: relIdsToaddOrMove
1159
1159
  }
1160
1160
  }).where(joinTable.on || {}).transacting(trx).execute();
1161
- const inverseRelsIds = map(inverseJoinColumn.name, existingRels);
1161
+ const inverseRelsIds = map(existingRels, inverseJoinColumn.name);
1162
1162
  const nonExistingRelsIds = difference(relIdsToaddOrMove, inverseRelsIds);
1163
1163
  const maxResults = await db.getConnection().select(inverseJoinColumn.name).max(inverseOrderColumnName, {
1164
1164
  as: 'max'
@@ -1315,7 +1315,9 @@ const createEntityManager = (db)=>{
1315
1315
  // TODO: add lifecycle events
1316
1316
  async load (uid, entity, fields, populate) {
1317
1317
  const { attributes } = db.metadata.get(uid);
1318
- const fieldsArr = castArray(fields);
1318
+ const fieldsArr = Array.isArray(fields) ? fields : [
1319
+ fields
1320
+ ];
1319
1321
  fieldsArr.forEach((field)=>{
1320
1322
  const attribute = attributes[field];
1321
1323
  if (!attribute || attribute.type !== 'relation') {
@@ -1338,7 +1340,7 @@ const createEntityManager = (db)=>{
1338
1340
  return null;
1339
1341
  }
1340
1342
  if (Array.isArray(fields)) {
1341
- return pick(fields, entry);
1343
+ return pick(entry, fields);
1342
1344
  }
1343
1345
  return entry[fields];
1344
1346
  },