@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
package/lib/index.js CHANGED
@@ -32,19 +32,14 @@ Object.defineProperty(exports, "snakeCase", {
32
32
  return _utils.snakeCase;
33
33
  }
34
34
  });
35
-
36
35
  function _sequelize() {
37
36
  const data = require("sequelize");
38
-
39
37
  _sequelize = function _sequelize() {
40
38
  return data;
41
39
  };
42
-
43
40
  return data;
44
41
  }
45
-
46
42
  var _collection = require("./collection");
47
-
48
43
  Object.keys(_collection).forEach(function (key) {
49
44
  if (key === "default" || key === "__esModule") return;
50
45
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
@@ -56,9 +51,7 @@ Object.keys(_collection).forEach(function (key) {
56
51
  }
57
52
  });
58
53
  });
59
-
60
54
  var _collectionImporter = require("./collection-importer");
61
-
62
55
  Object.keys(_collectionImporter).forEach(function (key) {
63
56
  if (key === "default" || key === "__esModule") return;
64
57
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
@@ -70,9 +63,7 @@ Object.keys(_collectionImporter).forEach(function (key) {
70
63
  }
71
64
  });
72
65
  });
73
-
74
66
  var _database = require("./database");
75
-
76
67
  Object.keys(_database).forEach(function (key) {
77
68
  if (key === "default" || key === "__esModule") return;
78
69
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
@@ -84,9 +75,7 @@ Object.keys(_database).forEach(function (key) {
84
75
  }
85
76
  });
86
77
  });
87
-
88
78
  var _arrayFieldRepository = require("./field-repository/array-field-repository");
89
-
90
79
  Object.keys(_arrayFieldRepository).forEach(function (key) {
91
80
  if (key === "default" || key === "__esModule") return;
92
81
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
@@ -98,9 +87,7 @@ Object.keys(_arrayFieldRepository).forEach(function (key) {
98
87
  }
99
88
  });
100
89
  });
101
-
102
90
  var _fields = require("./fields");
103
-
104
91
  Object.keys(_fields).forEach(function (key) {
105
92
  if (key === "default" || key === "__esModule") return;
106
93
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
@@ -112,9 +99,7 @@ Object.keys(_fields).forEach(function (key) {
112
99
  }
113
100
  });
114
101
  });
115
-
116
102
  var _filterMatch = require("./filter-match");
117
-
118
103
  Object.keys(_filterMatch).forEach(function (key) {
119
104
  if (key === "default" || key === "__esModule") return;
120
105
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
@@ -126,9 +111,7 @@ Object.keys(_filterMatch).forEach(function (key) {
126
111
  }
127
112
  });
128
113
  });
129
-
130
114
  var _inheritedCollection = require("./inherited-collection");
131
-
132
115
  Object.keys(_inheritedCollection).forEach(function (key) {
133
116
  if (key === "default" || key === "__esModule") return;
134
117
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
@@ -140,9 +123,7 @@ Object.keys(_inheritedCollection).forEach(function (key) {
140
123
  }
141
124
  });
142
125
  });
143
-
144
126
  var _magicAttributeModel = require("./magic-attribute-model");
145
-
146
127
  Object.keys(_magicAttributeModel).forEach(function (key) {
147
128
  if (key === "default" || key === "__esModule") return;
148
129
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
@@ -154,9 +135,7 @@ Object.keys(_magicAttributeModel).forEach(function (key) {
154
135
  }
155
136
  });
156
137
  });
157
-
158
138
  var _migration = require("./migration");
159
-
160
139
  Object.keys(_migration).forEach(function (key) {
161
140
  if (key === "default" || key === "__esModule") return;
162
141
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
@@ -168,9 +147,7 @@ Object.keys(_migration).forEach(function (key) {
168
147
  }
169
148
  });
170
149
  });
171
-
172
150
  var _mockDatabase = require("./mock-database");
173
-
174
151
  Object.keys(_mockDatabase).forEach(function (key) {
175
152
  if (key === "default" || key === "__esModule") return;
176
153
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
@@ -182,9 +159,7 @@ Object.keys(_mockDatabase).forEach(function (key) {
182
159
  }
183
160
  });
184
161
  });
185
-
186
162
  var _model = require("./model");
187
-
188
163
  Object.keys(_model).forEach(function (key) {
189
164
  if (key === "default" || key === "__esModule") return;
190
165
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
@@ -196,9 +171,7 @@ Object.keys(_model).forEach(function (key) {
196
171
  }
197
172
  });
198
173
  });
199
-
200
174
  var _belongsToManyRepository = require("./relation-repository/belongs-to-many-repository");
201
-
202
175
  Object.keys(_belongsToManyRepository).forEach(function (key) {
203
176
  if (key === "default" || key === "__esModule") return;
204
177
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
@@ -210,9 +183,7 @@ Object.keys(_belongsToManyRepository).forEach(function (key) {
210
183
  }
211
184
  });
212
185
  });
213
-
214
186
  var _belongsToRepository = require("./relation-repository/belongs-to-repository");
215
-
216
187
  Object.keys(_belongsToRepository).forEach(function (key) {
217
188
  if (key === "default" || key === "__esModule") return;
218
189
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
@@ -224,9 +195,7 @@ Object.keys(_belongsToRepository).forEach(function (key) {
224
195
  }
225
196
  });
226
197
  });
227
-
228
198
  var _hasmanyRepository = require("./relation-repository/hasmany-repository");
229
-
230
199
  Object.keys(_hasmanyRepository).forEach(function (key) {
231
200
  if (key === "default" || key === "__esModule") return;
232
201
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
@@ -238,9 +207,7 @@ Object.keys(_hasmanyRepository).forEach(function (key) {
238
207
  }
239
208
  });
240
209
  });
241
-
242
210
  var _multipleRelationRepository = require("./relation-repository/multiple-relation-repository");
243
-
244
211
  Object.keys(_multipleRelationRepository).forEach(function (key) {
245
212
  if (key === "default" || key === "__esModule") return;
246
213
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
@@ -252,9 +219,7 @@ Object.keys(_multipleRelationRepository).forEach(function (key) {
252
219
  }
253
220
  });
254
221
  });
255
-
256
222
  var _singleRelationRepository = require("./relation-repository/single-relation-repository");
257
-
258
223
  Object.keys(_singleRelationRepository).forEach(function (key) {
259
224
  if (key === "default" || key === "__esModule") return;
260
225
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
@@ -266,9 +231,7 @@ Object.keys(_singleRelationRepository).forEach(function (key) {
266
231
  }
267
232
  });
268
233
  });
269
-
270
234
  var _repository = require("./repository");
271
-
272
235
  Object.keys(_repository).forEach(function (key) {
273
236
  if (key === "default" || key === "__esModule") return;
274
237
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
@@ -280,9 +243,7 @@ Object.keys(_repository).forEach(function (key) {
280
243
  }
281
244
  });
282
245
  });
283
-
284
246
  var _updateAssociations = require("./update-associations");
285
-
286
247
  Object.keys(_updateAssociations).forEach(function (key) {
287
248
  if (key === "default" || key === "__esModule") return;
288
249
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
@@ -294,11 +255,8 @@ Object.keys(_updateAssociations).forEach(function (key) {
294
255
  }
295
256
  });
296
257
  });
297
-
298
258
  var _utils = require("./utils");
299
-
300
259
  var _valueParsers = require("./value-parsers");
301
-
302
260
  Object.keys(_valueParsers).forEach(function (key) {
303
261
  if (key === "default" || key === "__esModule") return;
304
262
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
@@ -309,4 +267,40 @@ Object.keys(_valueParsers).forEach(function (key) {
309
267
  return _valueParsers[key];
310
268
  }
311
269
  });
270
+ });
271
+ var _collectionGroupManager = require("./collection-group-manager");
272
+ Object.keys(_collectionGroupManager).forEach(function (key) {
273
+ if (key === "default" || key === "__esModule") return;
274
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
275
+ if (key in exports && exports[key] === _collectionGroupManager[key]) return;
276
+ Object.defineProperty(exports, key, {
277
+ enumerable: true,
278
+ get: function get() {
279
+ return _collectionGroupManager[key];
280
+ }
281
+ });
282
+ });
283
+ var _viewCollection = require("./view-collection");
284
+ Object.keys(_viewCollection).forEach(function (key) {
285
+ if (key === "default" || key === "__esModule") return;
286
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
287
+ if (key in exports && exports[key] === _viewCollection[key]) return;
288
+ Object.defineProperty(exports, key, {
289
+ enumerable: true,
290
+ get: function get() {
291
+ return _viewCollection[key];
292
+ }
293
+ });
294
+ });
295
+ var _viewInference = require("./view/view-inference");
296
+ Object.keys(_viewInference).forEach(function (key) {
297
+ if (key === "default" || key === "__esModule") return;
298
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
299
+ if (key in exports && exports[key] === _viewInference[key]) return;
300
+ Object.defineProperty(exports, key, {
301
+ enumerable: true,
302
+ get: function get() {
303
+ return _viewInference[key];
304
+ }
305
+ });
312
306
  });
@@ -4,51 +4,35 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.InheritedCollection = void 0;
7
-
8
7
  var _collection = require("./collection");
9
-
10
8
  function _lodash() {
11
9
  const data = _interopRequireDefault(require("lodash"));
12
-
13
10
  _lodash = function _lodash() {
14
11
  return data;
15
12
  };
16
-
17
13
  return data;
18
14
  }
19
-
20
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
-
22
16
  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; }
23
-
24
17
  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; }
25
-
26
- 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; }
27
-
18
+ 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; }
19
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
20
+ 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); }
28
21
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
29
-
30
22
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
31
-
32
- function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
33
-
23
+ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
34
24
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
35
-
36
25
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
37
-
38
26
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
39
-
40
27
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
41
-
42
28
  class InheritedCollection extends _collection.Collection {
43
29
  constructor(options, context) {
44
30
  if (!options.inherits) {
45
31
  throw new Error('InheritedCollection must have inherits option');
46
32
  }
47
-
48
33
  options.inherits = _lodash().default.castArray(options.inherits);
49
34
  super(options, context);
50
35
  this.parents = void 0;
51
-
52
36
  try {
53
37
  this.bindParents();
54
38
  } catch (err) {
@@ -59,43 +43,35 @@ class InheritedCollection extends _collection.Collection {
59
43
  this.db.removeListener('afterDefineCollection', listener);
60
44
  }
61
45
  };
62
-
63
46
  this.db.addListener('afterDefineCollection', listener);
64
47
  } else {
65
48
  throw err;
66
49
  }
67
50
  }
68
51
  }
69
-
70
52
  bindParents() {
71
53
  this.setParents(this.options.inherits);
72
54
  this.setParentFields();
73
55
  this.setFields(this.options.fields, false);
74
56
  this.db.inheritanceMap.setInheritance(this.name, this.options.inherits);
75
57
  }
76
-
77
58
  setParents(inherits) {
78
59
  this.parents = _lodash().default.castArray(inherits).map(name => {
79
60
  const existCollection = this.db.collections.get(name);
80
-
81
61
  if (!existCollection) {
82
62
  throw new ParentCollectionNotFound(name);
83
63
  }
84
-
85
64
  return existCollection;
86
65
  });
87
66
  }
88
-
89
67
  setParentFields() {
90
68
  var _iterator = _createForOfIteratorHelper(this.parentFields()),
91
- _step;
92
-
69
+ _step;
93
70
  try {
94
71
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
95
72
  const _step$value = _slicedToArray(_step.value, 2),
96
- name = _step$value[0],
97
- fieldOptions = _step$value[1];
98
-
73
+ name = _step$value[0],
74
+ fieldOptions = _step$value[1];
99
75
  this.setField(name, _objectSpread(_objectSpread({}, fieldOptions), {}, {
100
76
  inherit: true
101
77
  }));
@@ -106,31 +82,24 @@ class InheritedCollection extends _collection.Collection {
106
82
  _iterator.f();
107
83
  }
108
84
  }
109
-
110
85
  getParents() {
111
86
  return this.parents;
112
87
  }
113
-
114
88
  parentFields() {
115
89
  const fields = new Map();
116
-
117
90
  var _iterator2 = _createForOfIteratorHelper(this.parents),
118
- _step2;
119
-
91
+ _step2;
120
92
  try {
121
93
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
122
94
  const parent = _step2.value;
123
-
124
95
  if (parent.isInherited()) {
125
96
  var _iterator3 = _createForOfIteratorHelper(parent.parentFields()),
126
- _step3;
127
-
97
+ _step3;
128
98
  try {
129
99
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
130
100
  const _step3$value = _slicedToArray(_step3.value, 2),
131
- name = _step3$value[0],
132
- field = _step3$value[1];
133
-
101
+ name = _step3$value[0],
102
+ field = _step3$value[1];
134
103
  fields.set(name, field.options);
135
104
  }
136
105
  } catch (err) {
@@ -139,18 +108,14 @@ class InheritedCollection extends _collection.Collection {
139
108
  _iterator3.f();
140
109
  }
141
110
  }
142
-
143
111
  const parentFields = parent.fields;
144
-
145
112
  var _iterator4 = _createForOfIteratorHelper(parentFields),
146
- _step4;
147
-
113
+ _step4;
148
114
  try {
149
115
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
150
116
  const _step4$value = _slicedToArray(_step4.value, 2),
151
- name = _step4$value[0],
152
- field = _step4$value[1];
153
-
117
+ name = _step4$value[0],
118
+ field = _step4$value[1];
154
119
  fields.set(name, field.options);
155
120
  }
156
121
  } catch (err) {
@@ -164,24 +129,18 @@ class InheritedCollection extends _collection.Collection {
164
129
  } finally {
165
130
  _iterator2.f();
166
131
  }
167
-
168
132
  return fields;
169
133
  }
170
-
171
134
  parentAttributes() {
172
135
  const attributes = {};
173
-
174
136
  var _iterator5 = _createForOfIteratorHelper(this.parents),
175
- _step5;
176
-
137
+ _step5;
177
138
  try {
178
139
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
179
140
  const parent = _step5.value;
180
-
181
141
  if (parent.isInherited()) {
182
142
  Object.assign(attributes, parent.parentAttributes());
183
143
  }
184
-
185
144
  const parentAttributes = parent.model.tableAttributes;
186
145
  Object.assign(attributes, parentAttributes);
187
146
  }
@@ -190,21 +149,15 @@ class InheritedCollection extends _collection.Collection {
190
149
  } finally {
191
150
  _iterator5.f();
192
151
  }
193
-
194
152
  return attributes;
195
153
  }
196
-
197
154
  isInherited() {
198
155
  return true;
199
156
  }
200
-
201
157
  }
202
-
203
158
  exports.InheritedCollection = InheritedCollection;
204
-
205
159
  class ParentCollectionNotFound extends Error {
206
160
  constructor(name) {
207
161
  super(`parent collection ${name} not found`);
208
162
  }
209
-
210
163
  }
@@ -4,25 +4,17 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  function _lodash() {
9
8
  const data = _interopRequireDefault(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 _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
-
20
15
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
21
-
22
16
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
23
-
24
17
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
25
-
26
18
  class TableNode {
27
19
  constructor(name) {
28
20
  this.name = void 0;
@@ -32,21 +24,16 @@ class TableNode {
32
24
  this.parents = new Set();
33
25
  this.children = new Set();
34
26
  }
35
-
36
27
  }
37
-
38
28
  class InheritanceMap {
39
29
  constructor() {
40
30
  this.nodes = new Map();
41
31
  }
42
-
43
32
  removeNode(name) {
44
33
  const node = this.nodes.get(name);
45
34
  if (!node) return;
46
-
47
35
  var _iterator = _createForOfIteratorHelper(node.parents),
48
- _step;
49
-
36
+ _step;
50
37
  try {
51
38
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
52
39
  const parent = _step.value;
@@ -57,10 +44,8 @@ class InheritanceMap {
57
44
  } finally {
58
45
  _iterator.f();
59
46
  }
60
-
61
47
  var _iterator2 = _createForOfIteratorHelper(node.children),
62
- _step2;
63
-
48
+ _step2;
64
49
  try {
65
50
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
66
51
  const child = _step2.value;
@@ -71,32 +56,23 @@ class InheritanceMap {
71
56
  } finally {
72
57
  _iterator2.f();
73
58
  }
74
-
75
59
  this.nodes.delete(name);
76
60
  }
77
-
78
61
  getOrCreateNode(name) {
79
62
  if (!this.nodes.has(name)) {
80
63
  this.nodes.set(name, new TableNode(name));
81
64
  }
82
-
83
65
  return this.getNode(name);
84
66
  }
85
-
86
67
  getNode(name) {
87
68
  return this.nodes.get(name);
88
69
  }
89
-
90
70
  setInheritance(name, inherits) {
91
71
  const node = this.getOrCreateNode(name);
92
-
93
72
  const parents = _lodash().default.castArray(inherits).map(name => this.getOrCreateNode(name));
94
-
95
73
  node.parents = new Set(parents);
96
-
97
74
  var _iterator3 = _createForOfIteratorHelper(parents),
98
- _step3;
99
-
75
+ _step3;
100
76
  try {
101
77
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
102
78
  const parent = _step3.value;
@@ -108,34 +84,27 @@ class InheritanceMap {
108
84
  _iterator3.f();
109
85
  }
110
86
  }
111
-
112
87
  isParentNode(name) {
113
88
  const node = this.getNode(name);
114
89
  return node && node.children.size > 0;
115
90
  }
116
-
117
91
  getChildren(name, options = {
118
92
  deep: true
119
93
  }) {
120
94
  const results = new Set();
121
95
  const node = this.getNode(name);
122
96
  if (!node) return results;
123
-
124
97
  var _iterator4 = _createForOfIteratorHelper(node.children),
125
- _step4;
126
-
98
+ _step4;
127
99
  try {
128
100
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
129
101
  const child = _step4.value;
130
102
  results.add(child.name);
131
-
132
103
  if (!options.deep) {
133
104
  continue;
134
105
  }
135
-
136
106
  var _iterator5 = _createForOfIteratorHelper(this.getChildren(child.name)),
137
- _step5;
138
-
107
+ _step5;
139
108
  try {
140
109
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
141
110
  const grandchild = _step5.value;
@@ -152,32 +121,25 @@ class InheritanceMap {
152
121
  } finally {
153
122
  _iterator4.f();
154
123
  }
155
-
156
124
  return results;
157
125
  }
158
-
159
126
  getParents(name, options = {
160
127
  deep: true
161
128
  }) {
162
129
  const results = new Set();
163
130
  const node = this.getNode(name);
164
131
  if (!node) return results;
165
-
166
132
  var _iterator6 = _createForOfIteratorHelper(node.parents),
167
- _step6;
168
-
133
+ _step6;
169
134
  try {
170
135
  for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
171
136
  const parent = _step6.value;
172
137
  results.add(parent.name);
173
-
174
138
  if (!options.deep) {
175
139
  continue;
176
140
  }
177
-
178
141
  var _iterator7 = _createForOfIteratorHelper(this.getParents(parent.name)),
179
- _step7;
180
-
142
+ _step7;
181
143
  try {
182
144
  for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
183
145
  const grandparent = _step7.value;
@@ -194,10 +156,7 @@ class InheritanceMap {
194
156
  } finally {
195
157
  _iterator6.f();
196
158
  }
197
-
198
159
  return results;
199
160
  }
200
-
201
161
  }
202
-
203
162
  exports.default = InheritanceMap;
@@ -0,0 +1,3 @@
1
+ import { Collection, CollectionOptions } from '../collection';
2
+ export declare const beforeDefineAdjacencyListCollection: (options: CollectionOptions) => void;
3
+ export declare const afterDefineAdjacencyListCollection: (collection: Collection) => void;