@nocobase/database 0.9.1-alpha.1 → 0.9.2-alpha.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 (173) hide show
  1. package/lib/collection-group-manager.d.ts +13 -0
  2. package/lib/collection-group-manager.js +91 -0
  3. package/lib/collection-importer.js +0 -24
  4. package/lib/collection.d.ts +26 -4
  5. package/lib/collection.js +190 -234
  6. package/lib/database-utils/index.js +3 -15
  7. package/lib/database.d.ts +9 -0
  8. package/lib/database.js +171 -299
  9. package/lib/decorators/must-have-filter-decorator.js +0 -7
  10. package/lib/decorators/transaction-decorator.js +5 -18
  11. package/lib/errors/identifier-error.js +0 -3
  12. package/lib/features/ReferencesMap.js +1 -14
  13. package/lib/features/referential-integrity-check.js +7 -21
  14. package/lib/field-repository/array-field-repository.js +5 -45
  15. package/lib/fields/array-field.js +0 -13
  16. package/lib/fields/belongs-to-field.js +24 -50
  17. package/lib/fields/belongs-to-many-field.js +29 -47
  18. package/lib/fields/boolean-field.js +0 -7
  19. package/lib/fields/context-field.js +2 -23
  20. package/lib/fields/date-field.d.ts +4 -0
  21. package/lib/fields/date-field.js +15 -7
  22. package/lib/fields/field.js +32 -85
  23. package/lib/fields/has-many-field.js +16 -49
  24. package/lib/fields/has-one-field.js +18 -52
  25. package/lib/fields/index.js +0 -44
  26. package/lib/fields/json-field.js +0 -12
  27. package/lib/fields/number-field.js +0 -23
  28. package/lib/fields/password-field.js +8 -35
  29. package/lib/fields/radio-field.js +0 -18
  30. package/lib/fields/relation-field.js +4 -16
  31. package/lib/fields/set-field.js +0 -8
  32. package/lib/fields/sort-field.js +84 -73
  33. package/lib/fields/string-field.js +0 -7
  34. package/lib/fields/text-field.js +0 -7
  35. package/lib/fields/time-field.js +0 -7
  36. package/lib/fields/uid-field.js +4 -22
  37. package/lib/fields/uuid-field.js +3 -12
  38. package/lib/fields/virtual-field.js +0 -7
  39. package/lib/filter-match.js +7 -22
  40. package/lib/filter-parser.js +38 -102
  41. package/lib/index.d.ts +3 -0
  42. package/lib/index.js +36 -42
  43. package/lib/inherited-collection.js +15 -62
  44. package/lib/inherited-map.js +7 -48
  45. package/lib/listeners/adjacency-list.d.ts +3 -0
  46. package/lib/listeners/adjacency-list.js +91 -0
  47. package/lib/listeners/index.d.ts +2 -0
  48. package/lib/listeners/index.js +12 -0
  49. package/lib/magic-attribute-model.js +58 -114
  50. package/lib/migration.js +7 -28
  51. package/lib/mock-database.d.ts +4 -4
  52. package/lib/mock-database.js +15 -18
  53. package/lib/model-hook.js +4 -35
  54. package/lib/model.js +12 -54
  55. package/lib/operators/array.js +2 -32
  56. package/lib/operators/association.js +0 -6
  57. package/lib/operators/boolean.js +0 -6
  58. package/lib/operators/child-collection.d.ts +2 -0
  59. package/lib/operators/child-collection.js +32 -0
  60. package/lib/operators/date.js +123 -60
  61. package/lib/operators/empty.js +3 -32
  62. package/lib/operators/eq.d.ts +2 -0
  63. package/lib/operators/eq.js +26 -0
  64. package/lib/operators/index.js +4 -7
  65. package/lib/operators/ne.js +5 -5
  66. package/lib/operators/notIn.js +0 -5
  67. package/lib/operators/string.js +0 -11
  68. package/lib/operators/utils.js +0 -6
  69. package/lib/options-parser.d.ts +1 -1
  70. package/lib/options-parser.js +47 -107
  71. package/lib/playground.js +0 -4
  72. package/lib/query-interface/mysql-query-interface.d.ts +18 -0
  73. package/lib/query-interface/mysql-query-interface.js +88 -0
  74. package/lib/query-interface/postgres-query-interface.d.ts +14 -0
  75. package/lib/query-interface/postgres-query-interface.js +99 -0
  76. package/lib/query-interface/query-interface-builder.d.ts +2 -0
  77. package/lib/query-interface/query-interface-builder.js +18 -0
  78. package/lib/query-interface/query-interface.d.ts +21 -0
  79. package/lib/query-interface/query-interface.js +48 -0
  80. package/lib/query-interface/sqlite-query-interface.d.ts +17 -0
  81. package/lib/query-interface/sqlite-query-interface.js +89 -0
  82. package/lib/relation-repository/belongs-to-many-repository.js +21 -78
  83. package/lib/relation-repository/belongs-to-repository.js +0 -3
  84. package/lib/relation-repository/hasmany-repository.js +8 -44
  85. package/lib/relation-repository/hasone-repository.js +0 -3
  86. package/lib/relation-repository/multiple-relation-repository.js +16 -68
  87. package/lib/relation-repository/relation-repository.js +5 -42
  88. package/lib/relation-repository/single-relation-repository.js +6 -43
  89. package/lib/repository.d.ts +1 -0
  90. package/lib/repository.js +36 -182
  91. package/lib/sql-parser/index.js +10527 -0
  92. package/lib/sql-parser/sql.pegjs +1297 -0
  93. package/lib/sync-runner.d.ts +1 -1
  94. package/lib/sync-runner.js +26 -64
  95. package/lib/update-associations.js +58 -157
  96. package/lib/update-guard.js +10 -49
  97. package/lib/utils.js +16 -54
  98. package/lib/value-parsers/array-value-parser.js +3 -21
  99. package/lib/value-parsers/base-value-parser.js +0 -13
  100. package/lib/value-parsers/boolean-value-parser.js +4 -10
  101. package/lib/value-parsers/date-value-parser.js +0 -23
  102. package/lib/value-parsers/index.js +0 -10
  103. package/lib/value-parsers/json-value-parser.js +0 -7
  104. package/lib/value-parsers/number-value-parser.js +0 -9
  105. package/lib/value-parsers/string-value-parser.js +3 -20
  106. package/lib/value-parsers/to-many-value-parser.js +1 -42
  107. package/lib/value-parsers/to-one-value-parser.js +0 -14
  108. package/lib/view/field-type-map.d.ts +47 -0
  109. package/lib/view/field-type-map.js +56 -0
  110. package/lib/view/view-inference.d.ts +31 -0
  111. package/lib/view/view-inference.js +92 -0
  112. package/lib/view-collection.d.ts +6 -0
  113. package/lib/view-collection.js +24 -0
  114. package/package.json +4 -3
  115. package/src/__tests__/collection.test.ts +44 -0
  116. package/src/__tests__/fields/date.test.ts +75 -0
  117. package/src/__tests__/fields/sort-field.test.ts +100 -0
  118. package/src/__tests__/filter.test.ts +60 -0
  119. package/src/__tests__/group.test.ts +50 -0
  120. package/src/__tests__/inhertits/collection-inherits.test.ts +114 -0
  121. package/src/__tests__/operator/date-operator.test.ts +244 -98
  122. package/src/__tests__/operator/eq.test.ts +76 -0
  123. package/src/__tests__/operator/ne.test.ts +19 -1
  124. package/src/__tests__/relation-repository/belongs-to-many-repository.test.ts +82 -0
  125. package/src/__tests__/repository/find.test.ts +33 -0
  126. package/src/__tests__/repository.test.ts +88 -0
  127. package/src/__tests__/sql-parser.test.ts +13 -0
  128. package/src/__tests__/tree.test.ts +217 -0
  129. package/src/__tests__/view/list-view.test.ts +34 -0
  130. package/src/__tests__/view/view-collection.test.ts +199 -0
  131. package/src/__tests__/view/view-inference.test.ts +145 -0
  132. package/src/__tests__/view/view-repository.test.ts +67 -0
  133. package/src/collection-group-manager.ts +94 -0
  134. package/src/collection.ts +126 -16
  135. package/src/database-utils/index.ts +1 -0
  136. package/src/database.ts +98 -17
  137. package/src/features/ReferencesMap.ts +3 -2
  138. package/src/fields/belongs-to-many-field.ts +23 -4
  139. package/src/fields/date-field.ts +18 -0
  140. package/src/fields/field.ts +17 -7
  141. package/src/fields/json-field.ts +1 -0
  142. package/src/fields/sort-field.ts +90 -29
  143. package/src/filter-parser.ts +2 -1
  144. package/src/index.ts +3 -1
  145. package/src/listeners/adjacency-list.ts +60 -0
  146. package/src/listeners/index.ts +7 -0
  147. package/src/mock-database.ts +14 -2
  148. package/src/model.ts +4 -0
  149. package/src/operators/child-collection.ts +24 -0
  150. package/src/operators/date.ts +108 -24
  151. package/src/operators/eq.ts +14 -0
  152. package/src/operators/index.ts +2 -0
  153. package/src/operators/ne.ts +12 -7
  154. package/src/options-parser.ts +25 -11
  155. package/src/query-interface/mysql-query-interface.ts +72 -0
  156. package/src/query-interface/postgres-query-interface.ts +103 -0
  157. package/src/query-interface/query-interface-builder.ts +14 -0
  158. package/src/query-interface/query-interface.ts +43 -0
  159. package/src/query-interface/sqlite-query-interface.ts +79 -0
  160. package/src/relation-repository/belongs-to-many-repository.ts +20 -1
  161. package/src/relation-repository/hasmany-repository.ts +5 -3
  162. package/src/relation-repository/multiple-relation-repository.ts +13 -1
  163. package/src/relation-repository/single-relation-repository.ts +2 -0
  164. package/src/repository.ts +6 -13
  165. package/src/sql-parser/index.js +10698 -0
  166. package/src/sql-parser/readme.md +2 -0
  167. package/src/sql-parser/sql.pegjs +1297 -0
  168. package/src/sync-runner.ts +27 -32
  169. package/src/update-associations.ts +26 -22
  170. package/src/utils.ts +4 -3
  171. package/src/view/field-type-map.ts +56 -0
  172. package/src/view/view-inference.ts +106 -0
  173. package/src/view-collection.ts +21 -0
@@ -4,51 +4,38 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.HasManyField = void 0;
7
-
8
7
  function _lodash() {
9
8
  const data = require("lodash");
10
-
11
9
  _lodash = function _lodash() {
12
10
  return data;
13
11
  };
14
-
15
12
  return data;
16
13
  }
17
-
18
14
  function _sequelize() {
19
15
  const data = require("sequelize");
20
-
21
16
  _sequelize = function _sequelize() {
22
17
  return data;
23
18
  };
24
-
25
19
  return data;
26
20
  }
27
-
28
21
  var _utils = require("../utils");
29
-
30
22
  var _relationField = require("./relation-field");
31
-
32
23
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
33
-
34
24
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
35
-
36
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
37
-
25
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
26
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
27
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
38
28
  class HasManyField extends _relationField.RelationField {
39
29
  get dataType() {
40
30
  return 'HasMany';
41
31
  }
42
-
43
32
  get foreignKey() {
44
33
  if (this.options.foreignKey) {
45
34
  return this.options.foreignKey;
46
35
  }
47
-
48
36
  const model = this.context.collection.model;
49
37
  return _sequelize().Utils.camelize([model.options.name.singular, this.sourceKey || model.primaryKeyAttribute].join('_'));
50
38
  }
51
-
52
39
  reference(association) {
53
40
  const sourceKey = association.sourceKey;
54
41
  return {
@@ -59,102 +46,82 @@ class HasManyField extends _relationField.RelationField {
59
46
  onDelete: this.options.onDelete
60
47
  };
61
48
  }
62
-
63
49
  bind() {
64
50
  const _this$context = this.context,
65
- database = _this$context.database,
66
- collection = _this$context.collection;
51
+ database = _this$context.database,
52
+ collection = _this$context.collection;
67
53
  const Target = this.TargetModel;
68
-
69
54
  if (!Target) {
70
55
  database.addPendingField(this);
71
56
  return false;
72
57
  }
73
-
74
58
  if (collection.model.associations[this.name]) {
75
59
  delete collection.model.associations[this.name];
76
60
  }
77
-
78
61
  const association = collection.model.hasMany(Target, _objectSpread(_objectSpread({
79
62
  constraints: false
80
63
  }, (0, _lodash().omit)(this.options, ['name', 'type', 'target', 'onDelete'])), {}, {
81
64
  as: this.name,
82
65
  foreignKey: this.foreignKey
83
- })); // inverse relation
66
+ }));
67
+ // inverse relation
84
68
  // this.TargetModel.belongsTo(collection.model);
85
69
  // 建立关系之后从 pending 列表中删除
86
-
87
70
  database.removePendingField(this);
88
-
89
71
  if (!this.options.foreignKey) {
90
72
  this.options.foreignKey = association.foreignKey;
91
73
  }
92
-
93
74
  try {
94
75
  (0, _utils.checkIdentifier)(this.options.foreignKey);
95
76
  } catch (error) {
96
77
  this.unbind();
97
78
  throw error;
98
79
  }
99
-
100
80
  if (!this.options.sourceKey) {
101
81
  // @ts-ignore
102
82
  this.options.sourceKey = association.sourceKey;
103
83
  }
104
-
105
84
  let tcoll;
106
-
107
85
  if (this.target === collection.name) {
108
86
  tcoll = collection;
109
87
  } else {
110
88
  tcoll = database.getCollection(this.target);
111
89
  }
112
-
113
90
  if (tcoll) {
114
91
  tcoll.addIndex([this.options.foreignKey]);
115
92
  }
116
-
117
93
  this.database.referenceMap.addReference(this.reference(association));
118
94
  return true;
119
95
  }
120
-
121
96
  unbind() {
122
97
  const _this$context2 = this.context,
123
- database = _this$context2.database,
124
- collection = _this$context2.collection; // 如果关系字段还没建立就删除了,也同步删除待建立关联的关系字段
125
-
126
- database.removePendingField(this); // 如果关系表内没有显式的创建外键字段,删除关系时,外键也删除掉
127
-
98
+ database = _this$context2.database,
99
+ collection = _this$context2.collection;
100
+ // 如果关系字段还没建立就删除了,也同步删除待建立关联的关系字段
101
+ database.removePendingField(this);
102
+ // 如果关系表内没有显式的创建外键字段,删除关系时,外键也删除掉
128
103
  const tcoll = database.getCollection(this.target);
129
-
130
104
  if (tcoll) {
131
105
  const foreignKey = this.options.foreignKey;
132
106
  const field = tcoll.findField(field => {
133
107
  if (field.name === foreignKey) {
134
108
  return true;
135
109
  }
136
-
137
110
  return field.type === 'belongsTo' && field.foreignKey === foreignKey;
138
111
  });
139
-
140
112
  if (!field) {
141
113
  tcoll.model.removeAttribute(foreignKey);
142
114
  }
143
115
  }
144
-
145
116
  const association = collection.model.associations[this.name];
146
-
147
117
  if (association) {
148
118
  this.database.referenceMap.removeReference(this.reference(association));
149
119
  }
150
-
151
- this.clearAccessors(); // 删掉 model 的关联字段
152
-
153
- delete collection.model.associations[this.name]; // @ts-ignore
154
-
120
+ this.clearAccessors();
121
+ // 删掉 model 的关联字段
122
+ delete collection.model.associations[this.name];
123
+ // @ts-ignore
155
124
  collection.model.refreshAttributes();
156
125
  }
157
-
158
126
  }
159
-
160
127
  exports.HasManyField = HasManyField;
@@ -4,62 +4,47 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.HasOneField = void 0;
7
-
8
7
  function _lodash() {
9
8
  const data = require("lodash");
10
-
11
9
  _lodash = function _lodash() {
12
10
  return data;
13
11
  };
14
-
15
12
  return data;
16
13
  }
17
-
18
14
  function _sequelize() {
19
15
  const data = require("sequelize");
20
-
21
16
  _sequelize = function _sequelize() {
22
17
  return data;
23
18
  };
24
-
25
19
  return data;
26
20
  }
27
-
28
21
  var _utils = require("../utils");
29
-
30
22
  var _relationField = require("./relation-field");
31
-
32
23
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
33
-
34
24
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
35
-
36
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
37
-
25
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
26
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
27
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
38
28
  class HasOneField extends _relationField.RelationField {
39
29
  get dataType() {
40
30
  return 'HasOne';
41
31
  }
42
-
43
32
  get target() {
44
33
  const _this$options = this.options,
45
- target = _this$options.target,
46
- name = _this$options.name;
34
+ target = _this$options.target,
35
+ name = _this$options.name;
47
36
  return target || _sequelize().Utils.pluralize(name);
48
37
  }
49
-
50
38
  get foreignKey() {
51
39
  const foreignKey = (() => {
52
40
  if (this.options.foreignKey) {
53
41
  return this.options.foreignKey;
54
42
  }
55
-
56
43
  const model = this.context.collection.model;
57
44
  return _sequelize().Utils.camelize([model.options.name.singular, model.primaryKeyAttribute].join('_'));
58
45
  })();
59
-
60
46
  return foreignKey;
61
47
  }
62
-
63
48
  reference(association) {
64
49
  const sourceKey = association.sourceKey;
65
50
  return {
@@ -70,96 +55,77 @@ class HasOneField extends _relationField.RelationField {
70
55
  onDelete: this.options.onDelete
71
56
  };
72
57
  }
73
-
74
58
  bind() {
75
59
  const _this$context = this.context,
76
- database = _this$context.database,
77
- collection = _this$context.collection;
60
+ database = _this$context.database,
61
+ collection = _this$context.collection;
78
62
  const Target = this.TargetModel;
79
-
80
63
  if (!Target) {
81
64
  database.addPendingField(this);
82
65
  return false;
83
66
  }
84
-
85
67
  const association = collection.model.hasOne(Target, _objectSpread(_objectSpread({
86
68
  constraints: false
87
69
  }, (0, _lodash().omit)(this.options, ['name', 'type', 'target', 'onDelete'])), {}, {
88
70
  as: this.name,
89
71
  foreignKey: this.foreignKey
90
- })); // 建立关系之后从 pending 列表中删除
91
-
72
+ }));
73
+ // 建立关系之后从 pending 列表中删除
92
74
  database.removePendingField(this);
93
-
94
75
  if (!this.options.foreignKey) {
95
76
  this.options.foreignKey = association.foreignKey;
96
77
  }
97
-
98
78
  try {
99
79
  (0, _utils.checkIdentifier)(this.options.foreignKey);
100
80
  } catch (error) {
101
81
  this.unbind();
102
82
  throw error;
103
83
  }
104
-
105
84
  if (!this.options.sourceKey) {
106
85
  // @ts-ignore
107
86
  this.options.sourceKey = association.sourceKey;
108
87
  }
109
-
110
88
  let tcoll;
111
-
112
89
  if (this.target === collection.name) {
113
90
  tcoll = collection;
114
91
  } else {
115
92
  tcoll = database.getCollection(this.target);
116
93
  }
117
-
118
94
  if (tcoll) {
119
95
  tcoll.addIndex([this.options.foreignKey]);
120
96
  }
121
-
122
97
  this.database.referenceMap.addReference(this.reference(association));
123
98
  return true;
124
99
  }
125
-
126
100
  unbind() {
127
101
  const _this$context2 = this.context,
128
- database = _this$context2.database,
129
- collection = _this$context2.collection; // 如果关系字段还没建立就删除了,也同步删除待建立关联的关系字段
130
-
131
- database.removePendingField(this); // 如果关系表内没有显式的创建外键字段,删除关系时,外键也删除掉
132
-
102
+ database = _this$context2.database,
103
+ collection = _this$context2.collection;
104
+ // 如果关系字段还没建立就删除了,也同步删除待建立关联的关系字段
105
+ database.removePendingField(this);
106
+ // 如果关系表内没有显式的创建外键字段,删除关系时,外键也删除掉
133
107
  const tcoll = database.collections.get(this.target);
134
-
135
108
  if (tcoll && !this.options.inherit) {
136
109
  const foreignKey = this.options.foreignKey;
137
110
  const field = tcoll.findField(field => {
138
111
  if (field.name === foreignKey) {
139
112
  return true;
140
113
  }
141
-
142
114
  return field.type === 'belongsTo' && field.foreignKey === foreignKey;
143
115
  });
144
-
145
116
  if (!field) {
146
117
  tcoll.model.removeAttribute(foreignKey);
147
118
  }
148
119
  }
149
-
150
120
  const association = collection.model.associations[this.name];
151
-
152
121
  if (association) {
153
122
  this.database.referenceMap.removeReference(this.reference(association));
154
123
  }
155
-
156
- this.clearAccessors(); // 删掉 model 的关联字段
157
-
158
- delete collection.model.associations[this.name]; // @ts-ignore
159
-
124
+ this.clearAccessors();
125
+ // 删掉 model 的关联字段
126
+ delete collection.model.associations[this.name];
127
+ // @ts-ignore
160
128
  collection.model.refreshAttributes();
161
129
  }
162
-
163
130
  }
164
-
165
131
  exports.HasOneField = HasOneField;
@@ -3,9 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
-
7
6
  var _arrayField = require("./array-field");
8
-
9
7
  Object.keys(_arrayField).forEach(function (key) {
10
8
  if (key === "default" || key === "__esModule") return;
11
9
  if (key in exports && exports[key] === _arrayField[key]) return;
@@ -16,9 +14,7 @@ Object.keys(_arrayField).forEach(function (key) {
16
14
  }
17
15
  });
18
16
  });
19
-
20
17
  var _belongsToField = require("./belongs-to-field");
21
-
22
18
  Object.keys(_belongsToField).forEach(function (key) {
23
19
  if (key === "default" || key === "__esModule") return;
24
20
  if (key in exports && exports[key] === _belongsToField[key]) return;
@@ -29,9 +25,7 @@ Object.keys(_belongsToField).forEach(function (key) {
29
25
  }
30
26
  });
31
27
  });
32
-
33
28
  var _belongsToManyField = require("./belongs-to-many-field");
34
-
35
29
  Object.keys(_belongsToManyField).forEach(function (key) {
36
30
  if (key === "default" || key === "__esModule") return;
37
31
  if (key in exports && exports[key] === _belongsToManyField[key]) return;
@@ -42,9 +36,7 @@ Object.keys(_belongsToManyField).forEach(function (key) {
42
36
  }
43
37
  });
44
38
  });
45
-
46
39
  var _booleanField = require("./boolean-field");
47
-
48
40
  Object.keys(_booleanField).forEach(function (key) {
49
41
  if (key === "default" || key === "__esModule") return;
50
42
  if (key in exports && exports[key] === _booleanField[key]) return;
@@ -55,9 +47,7 @@ Object.keys(_booleanField).forEach(function (key) {
55
47
  }
56
48
  });
57
49
  });
58
-
59
50
  var _contextField = require("./context-field");
60
-
61
51
  Object.keys(_contextField).forEach(function (key) {
62
52
  if (key === "default" || key === "__esModule") return;
63
53
  if (key in exports && exports[key] === _contextField[key]) return;
@@ -68,9 +58,7 @@ Object.keys(_contextField).forEach(function (key) {
68
58
  }
69
59
  });
70
60
  });
71
-
72
61
  var _dateField = require("./date-field");
73
-
74
62
  Object.keys(_dateField).forEach(function (key) {
75
63
  if (key === "default" || key === "__esModule") return;
76
64
  if (key in exports && exports[key] === _dateField[key]) return;
@@ -81,9 +69,7 @@ Object.keys(_dateField).forEach(function (key) {
81
69
  }
82
70
  });
83
71
  });
84
-
85
72
  var _field = require("./field");
86
-
87
73
  Object.keys(_field).forEach(function (key) {
88
74
  if (key === "default" || key === "__esModule") return;
89
75
  if (key in exports && exports[key] === _field[key]) return;
@@ -94,9 +80,7 @@ Object.keys(_field).forEach(function (key) {
94
80
  }
95
81
  });
96
82
  });
97
-
98
83
  var _hasManyField = require("./has-many-field");
99
-
100
84
  Object.keys(_hasManyField).forEach(function (key) {
101
85
  if (key === "default" || key === "__esModule") return;
102
86
  if (key in exports && exports[key] === _hasManyField[key]) return;
@@ -107,9 +91,7 @@ Object.keys(_hasManyField).forEach(function (key) {
107
91
  }
108
92
  });
109
93
  });
110
-
111
94
  var _hasOneField = require("./has-one-field");
112
-
113
95
  Object.keys(_hasOneField).forEach(function (key) {
114
96
  if (key === "default" || key === "__esModule") return;
115
97
  if (key in exports && exports[key] === _hasOneField[key]) return;
@@ -120,9 +102,7 @@ Object.keys(_hasOneField).forEach(function (key) {
120
102
  }
121
103
  });
122
104
  });
123
-
124
105
  var _jsonField = require("./json-field");
125
-
126
106
  Object.keys(_jsonField).forEach(function (key) {
127
107
  if (key === "default" || key === "__esModule") return;
128
108
  if (key in exports && exports[key] === _jsonField[key]) return;
@@ -133,9 +113,7 @@ Object.keys(_jsonField).forEach(function (key) {
133
113
  }
134
114
  });
135
115
  });
136
-
137
116
  var _numberField = require("./number-field");
138
-
139
117
  Object.keys(_numberField).forEach(function (key) {
140
118
  if (key === "default" || key === "__esModule") return;
141
119
  if (key in exports && exports[key] === _numberField[key]) return;
@@ -146,9 +124,7 @@ Object.keys(_numberField).forEach(function (key) {
146
124
  }
147
125
  });
148
126
  });
149
-
150
127
  var _passwordField = require("./password-field");
151
-
152
128
  Object.keys(_passwordField).forEach(function (key) {
153
129
  if (key === "default" || key === "__esModule") return;
154
130
  if (key in exports && exports[key] === _passwordField[key]) return;
@@ -159,9 +135,7 @@ Object.keys(_passwordField).forEach(function (key) {
159
135
  }
160
136
  });
161
137
  });
162
-
163
138
  var _radioField = require("./radio-field");
164
-
165
139
  Object.keys(_radioField).forEach(function (key) {
166
140
  if (key === "default" || key === "__esModule") return;
167
141
  if (key in exports && exports[key] === _radioField[key]) return;
@@ -172,9 +146,7 @@ Object.keys(_radioField).forEach(function (key) {
172
146
  }
173
147
  });
174
148
  });
175
-
176
149
  var _relationField = require("./relation-field");
177
-
178
150
  Object.keys(_relationField).forEach(function (key) {
179
151
  if (key === "default" || key === "__esModule") return;
180
152
  if (key in exports && exports[key] === _relationField[key]) return;
@@ -185,9 +157,7 @@ Object.keys(_relationField).forEach(function (key) {
185
157
  }
186
158
  });
187
159
  });
188
-
189
160
  var _setField = require("./set-field");
190
-
191
161
  Object.keys(_setField).forEach(function (key) {
192
162
  if (key === "default" || key === "__esModule") return;
193
163
  if (key in exports && exports[key] === _setField[key]) return;
@@ -198,9 +168,7 @@ Object.keys(_setField).forEach(function (key) {
198
168
  }
199
169
  });
200
170
  });
201
-
202
171
  var _sortField = require("./sort-field");
203
-
204
172
  Object.keys(_sortField).forEach(function (key) {
205
173
  if (key === "default" || key === "__esModule") return;
206
174
  if (key in exports && exports[key] === _sortField[key]) return;
@@ -211,9 +179,7 @@ Object.keys(_sortField).forEach(function (key) {
211
179
  }
212
180
  });
213
181
  });
214
-
215
182
  var _stringField = require("./string-field");
216
-
217
183
  Object.keys(_stringField).forEach(function (key) {
218
184
  if (key === "default" || key === "__esModule") return;
219
185
  if (key in exports && exports[key] === _stringField[key]) return;
@@ -224,9 +190,7 @@ Object.keys(_stringField).forEach(function (key) {
224
190
  }
225
191
  });
226
192
  });
227
-
228
193
  var _textField = require("./text-field");
229
-
230
194
  Object.keys(_textField).forEach(function (key) {
231
195
  if (key === "default" || key === "__esModule") return;
232
196
  if (key in exports && exports[key] === _textField[key]) return;
@@ -237,9 +201,7 @@ Object.keys(_textField).forEach(function (key) {
237
201
  }
238
202
  });
239
203
  });
240
-
241
204
  var _timeField = require("./time-field");
242
-
243
205
  Object.keys(_timeField).forEach(function (key) {
244
206
  if (key === "default" || key === "__esModule") return;
245
207
  if (key in exports && exports[key] === _timeField[key]) return;
@@ -250,9 +212,7 @@ Object.keys(_timeField).forEach(function (key) {
250
212
  }
251
213
  });
252
214
  });
253
-
254
215
  var _uidField = require("./uid-field");
255
-
256
216
  Object.keys(_uidField).forEach(function (key) {
257
217
  if (key === "default" || key === "__esModule") return;
258
218
  if (key in exports && exports[key] === _uidField[key]) return;
@@ -263,9 +223,7 @@ Object.keys(_uidField).forEach(function (key) {
263
223
  }
264
224
  });
265
225
  });
266
-
267
226
  var _uuidField = require("./uuid-field");
268
-
269
227
  Object.keys(_uuidField).forEach(function (key) {
270
228
  if (key === "default" || key === "__esModule") return;
271
229
  if (key in exports && exports[key] === _uuidField[key]) return;
@@ -276,9 +234,7 @@ Object.keys(_uuidField).forEach(function (key) {
276
234
  }
277
235
  });
278
236
  });
279
-
280
237
  var _virtualField = require("./virtual-field");
281
-
282
238
  Object.keys(_virtualField).forEach(function (key) {
283
239
  if (key === "default" || key === "__esModule") return;
284
240
  if (key in exports && exports[key] === _virtualField[key]) return;
@@ -4,39 +4,27 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.JsonbField = exports.JsonField = void 0;
7
-
8
7
  function _sequelize() {
9
8
  const data = require("sequelize");
10
-
11
9
  _sequelize = function _sequelize() {
12
10
  return data;
13
11
  };
14
-
15
12
  return data;
16
13
  }
17
-
18
14
  var _field = require("./field");
19
-
20
15
  class JsonField extends _field.Field {
21
16
  get dataType() {
22
17
  return _sequelize().DataTypes.JSON;
23
18
  }
24
-
25
19
  }
26
-
27
20
  exports.JsonField = JsonField;
28
-
29
21
  class JsonbField extends _field.Field {
30
22
  get dataType() {
31
23
  const dialect = this.context.database.sequelize.getDialect();
32
-
33
24
  if (dialect === 'postgres') {
34
25
  return _sequelize().DataTypes.JSONB;
35
26
  }
36
-
37
27
  return _sequelize().DataTypes.JSON;
38
28
  }
39
-
40
29
  }
41
-
42
30
  exports.JsonbField = JsonbField;
@@ -4,71 +4,48 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.RealField = exports.IntegerField = exports.FloatField = exports.DoubleField = exports.DecimalField = exports.BigIntField = void 0;
7
-
8
7
  function _sequelize() {
9
8
  const data = require("sequelize");
10
-
11
9
  _sequelize = function _sequelize() {
12
10
  return data;
13
11
  };
14
-
15
12
  return data;
16
13
  }
17
-
18
14
  var _field = require("./field");
19
-
20
15
  class NumberField extends _field.Field {}
21
-
22
16
  class IntegerField extends NumberField {
23
17
  get dataType() {
24
18
  return _sequelize().DataTypes.INTEGER;
25
19
  }
26
-
27
20
  }
28
-
29
21
  exports.IntegerField = IntegerField;
30
-
31
22
  class BigIntField extends NumberField {
32
23
  get dataType() {
33
24
  return _sequelize().DataTypes.BIGINT;
34
25
  }
35
-
36
26
  }
37
-
38
27
  exports.BigIntField = BigIntField;
39
-
40
28
  class FloatField extends NumberField {
41
29
  get dataType() {
42
30
  return _sequelize().DataTypes.FLOAT;
43
31
  }
44
-
45
32
  }
46
-
47
33
  exports.FloatField = FloatField;
48
-
49
34
  class DoubleField extends NumberField {
50
35
  get dataType() {
51
36
  return _sequelize().DataTypes.DOUBLE;
52
37
  }
53
-
54
38
  }
55
-
56
39
  exports.DoubleField = DoubleField;
57
-
58
40
  class RealField extends NumberField {
59
41
  get dataType() {
60
42
  return _sequelize().DataTypes.REAL;
61
43
  }
62
-
63
44
  }
64
-
65
45
  exports.RealField = RealField;
66
-
67
46
  class DecimalField extends NumberField {
68
47
  get dataType() {
69
48
  return _sequelize().DataTypes.DECIMAL;
70
49
  }
71
-
72
50
  }
73
-
74
51
  exports.DecimalField = DecimalField;