@nocobase/database 1.2.13-alpha → 1.3.0-alpha.20240710084543

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 (247) hide show
  1. package/package.json +4 -4
  2. package/lib/collection-factory.d.ts +0 -25
  3. package/lib/collection-factory.js +0 -61
  4. package/lib/collection-group-manager.d.ts +0 -34
  5. package/lib/collection-group-manager.js +0 -66
  6. package/lib/collection-importer.d.ts +0 -15
  7. package/lib/collection-importer.js +0 -83
  8. package/lib/collection.d.ts +0 -145
  9. package/lib/collection.js +0 -663
  10. package/lib/database-utils/index.d.ts +0 -16
  11. package/lib/database-utils/index.js +0 -75
  12. package/lib/database.d.ts +0 -228
  13. package/lib/database.js +0 -795
  14. package/lib/decorators/must-have-filter-decorator.d.ts +0 -10
  15. package/lib/decorators/must-have-filter-decorator.js +0 -48
  16. package/lib/decorators/target-collection-decorator.d.ts +0 -10
  17. package/lib/decorators/target-collection-decorator.js +0 -56
  18. package/lib/decorators/transaction-decorator.d.ts +0 -9
  19. package/lib/decorators/transaction-decorator.js +0 -95
  20. package/lib/eager-loading/eager-loading-tree.d.ts +0 -39
  21. package/lib/eager-loading/eager-loading-tree.js +0 -448
  22. package/lib/errors/identifier-error.d.ts +0 -11
  23. package/lib/errors/identifier-error.js +0 -44
  24. package/lib/errors/zero-column-table-error.d.ts +0 -10
  25. package/lib/errors/zero-column-table-error.js +0 -40
  26. package/lib/features/references-map.d.ts +0 -29
  27. package/lib/features/references-map.js +0 -120
  28. package/lib/features/referential-integrity-check.d.ts +0 -16
  29. package/lib/features/referential-integrity-check.js +0 -86
  30. package/lib/field-repository/array-field-repository.d.ts +0 -36
  31. package/lib/field-repository/array-field-repository.js +0 -179
  32. package/lib/fields/array-field.d.ts +0 -19
  33. package/lib/fields/array-field.js +0 -66
  34. package/lib/fields/belongs-to-field.d.ts +0 -25
  35. package/lib/fields/belongs-to-field.js +0 -166
  36. package/lib/fields/belongs-to-many-field.d.ts +0 -28
  37. package/lib/fields/belongs-to-many-field.js +0 -196
  38. package/lib/fields/boolean-field.d.ts +0 -16
  39. package/lib/fields/boolean-field.js +0 -45
  40. package/lib/fields/context-field.d.ts +0 -22
  41. package/lib/fields/context-field.js +0 -79
  42. package/lib/fields/date-field.d.ts +0 -21
  43. package/lib/fields/date-field.js +0 -73
  44. package/lib/fields/field.d.ts +0 -52
  45. package/lib/fields/field.js +0 -168
  46. package/lib/fields/has-inverse-field.d.ts +0 -12
  47. package/lib/fields/has-inverse-field.js +0 -24
  48. package/lib/fields/has-many-field.d.ts +0 -76
  49. package/lib/fields/has-many-field.js +0 -165
  50. package/lib/fields/has-one-field.d.ts +0 -76
  51. package/lib/fields/has-one-field.js +0 -159
  52. package/lib/fields/index.d.ts +0 -54
  53. package/lib/fields/index.js +0 -74
  54. package/lib/fields/json-field.d.ts +0 -22
  55. package/lib/fields/json-field.js +0 -63
  56. package/lib/fields/nanoid-field.d.ts +0 -22
  57. package/lib/fields/nanoid-field.js +0 -65
  58. package/lib/fields/number-field.d.ts +0 -49
  59. package/lib/fields/number-field.js +0 -94
  60. package/lib/fields/password-field.d.ts +0 -29
  61. package/lib/fields/password-field.js +0 -106
  62. package/lib/fields/radio-field.d.ts +0 -24
  63. package/lib/fields/radio-field.js +0 -75
  64. package/lib/fields/relation-field.d.ts +0 -31
  65. package/lib/fields/relation-field.js +0 -94
  66. package/lib/fields/set-field.d.ts +0 -18
  67. package/lib/fields/set-field.js +0 -55
  68. package/lib/fields/sort-field.d.ts +0 -22
  69. package/lib/fields/sort-field.js +0 -197
  70. package/lib/fields/string-field.d.ts +0 -16
  71. package/lib/fields/string-field.js +0 -45
  72. package/lib/fields/text-field.d.ts +0 -18
  73. package/lib/fields/text-field.js +0 -53
  74. package/lib/fields/time-field.d.ts +0 -16
  75. package/lib/fields/time-field.js +0 -45
  76. package/lib/fields/uid-field.d.ts +0 -21
  77. package/lib/fields/uid-field.js +0 -72
  78. package/lib/fields/uuid-field.d.ts +0 -20
  79. package/lib/fields/uuid-field.js +0 -63
  80. package/lib/fields/virtual-field.d.ts +0 -16
  81. package/lib/fields/virtual-field.js +0 -45
  82. package/lib/filter-match.d.ts +0 -9
  83. package/lib/filter-match.js +0 -75
  84. package/lib/filter-parser.d.ts +0 -29
  85. package/lib/filter-parser.js +0 -238
  86. package/lib/helpers.d.ts +0 -11
  87. package/lib/helpers.js +0 -182
  88. package/lib/index.d.ts +0 -37
  89. package/lib/index.js +0 -138
  90. package/lib/inherited-collection.d.ts +0 -22
  91. package/lib/inherited-collection.js +0 -147
  92. package/lib/inherited-map.d.ts +0 -29
  93. package/lib/inherited-map.js +0 -125
  94. package/lib/inherited-sync-runner.d.ts +0 -12
  95. package/lib/inherited-sync-runner.js +0 -184
  96. package/lib/interface-manager.d.ts +0 -17
  97. package/lib/interface-manager.js +0 -50
  98. package/lib/interfaces/base-interface.d.ts +0 -33
  99. package/lib/interfaces/base-interface.js +0 -80
  100. package/lib/interfaces/boolean-interface.d.ts +0 -13
  101. package/lib/interfaces/boolean-interface.js +0 -70
  102. package/lib/interfaces/checkboxes-interface.d.ts +0 -11
  103. package/lib/interfaces/checkboxes-interface.js +0 -41
  104. package/lib/interfaces/datetime-interface.d.ts +0 -13
  105. package/lib/interfaces/datetime-interface.js +0 -108
  106. package/lib/interfaces/index.d.ts +0 -14
  107. package/lib/interfaces/index.js +0 -40
  108. package/lib/interfaces/integer-interface.d.ts +0 -12
  109. package/lib/interfaces/integer-interface.js +0 -44
  110. package/lib/interfaces/json-interface.d.ts +0 -13
  111. package/lib/interfaces/json-interface.js +0 -47
  112. package/lib/interfaces/many-to-many-interface.d.ts +0 -11
  113. package/lib/interfaces/many-to-many-interface.js +0 -41
  114. package/lib/interfaces/many-to-one-interface.d.ts +0 -11
  115. package/lib/interfaces/many-to-one-interface.js +0 -41
  116. package/lib/interfaces/multiple-select-interface.d.ts +0 -13
  117. package/lib/interfaces/multiple-select-interface.js +0 -76
  118. package/lib/interfaces/number-interface.d.ts +0 -15
  119. package/lib/interfaces/number-interface.js +0 -72
  120. package/lib/interfaces/one-belongs-to-one-interface.d.ts +0 -11
  121. package/lib/interfaces/one-belongs-to-one-interface.js +0 -41
  122. package/lib/interfaces/one-has-one-interface.d.ts +0 -11
  123. package/lib/interfaces/one-has-one-interface.js +0 -41
  124. package/lib/interfaces/one-to-many-interface.d.ts +0 -11
  125. package/lib/interfaces/one-to-many-interface.js +0 -41
  126. package/lib/interfaces/percent-interface.d.ts +0 -13
  127. package/lib/interfaces/percent-interface.js +0 -55
  128. package/lib/interfaces/select-interface.d.ts +0 -13
  129. package/lib/interfaces/select-interface.js +0 -63
  130. package/lib/interfaces/to-many-interface.d.ts +0 -12
  131. package/lib/interfaces/to-many-interface.js +0 -61
  132. package/lib/interfaces/to-one-interface.d.ts +0 -13
  133. package/lib/interfaces/to-one-interface.js +0 -61
  134. package/lib/interfaces/utils.d.ts +0 -10
  135. package/lib/interfaces/utils.js +0 -72
  136. package/lib/listeners/adjacency-list.d.ts +0 -10
  137. package/lib/listeners/adjacency-list.js +0 -51
  138. package/lib/listeners/append-child-collection-name-after-repository-find.d.ts +0 -14
  139. package/lib/listeners/append-child-collection-name-after-repository-find.js +0 -75
  140. package/lib/listeners/index.d.ts +0 -10
  141. package/lib/listeners/index.js +0 -42
  142. package/lib/magic-attribute-model.d.ts +0 -16
  143. package/lib/magic-attribute-model.js +0 -213
  144. package/lib/migration.d.ts +0 -43
  145. package/lib/migration.js +0 -112
  146. package/lib/mock-database.d.ts +0 -33
  147. package/lib/mock-database.js +0 -136
  148. package/lib/model-hook.d.ts +0 -20
  149. package/lib/model-hook.js +0 -96
  150. package/lib/model.d.ts +0 -32
  151. package/lib/model.js +0 -179
  152. package/lib/operators/array.d.ts +0 -10
  153. package/lib/operators/array.js +0 -196
  154. package/lib/operators/association.d.ts +0 -10
  155. package/lib/operators/association.js +0 -44
  156. package/lib/operators/boolean.d.ts +0 -10
  157. package/lib/operators/boolean.js +0 -47
  158. package/lib/operators/child-collection.d.ts +0 -10
  159. package/lib/operators/child-collection.js +0 -77
  160. package/lib/operators/date.d.ts +0 -10
  161. package/lib/operators/date.js +0 -149
  162. package/lib/operators/empty.d.ts +0 -13
  163. package/lib/operators/empty.js +0 -102
  164. package/lib/operators/eq.d.ts +0 -10
  165. package/lib/operators/eq.js +0 -44
  166. package/lib/operators/index.d.ts +0 -13
  167. package/lib/operators/index.js +0 -63
  168. package/lib/operators/ne.d.ts +0 -10
  169. package/lib/operators/ne.js +0 -49
  170. package/lib/operators/notIn.d.ts +0 -10
  171. package/lib/operators/notIn.js +0 -42
  172. package/lib/operators/string.d.ts +0 -10
  173. package/lib/operators/string.js +0 -118
  174. package/lib/operators/utils.d.ts +0 -12
  175. package/lib/operators/utils.js +0 -53
  176. package/lib/options-parser.d.ts +0 -45
  177. package/lib/options-parser.js +0 -350
  178. package/lib/query-interface/mysql-query-interface.d.ts +0 -44
  179. package/lib/query-interface/mysql-query-interface.js +0 -134
  180. package/lib/query-interface/postgres-query-interface.d.ts +0 -41
  181. package/lib/query-interface/postgres-query-interface.js +0 -207
  182. package/lib/query-interface/query-interface-builder.d.ts +0 -10
  183. package/lib/query-interface/query-interface-builder.js +0 -55
  184. package/lib/query-interface/query-interface.d.ts +0 -52
  185. package/lib/query-interface/query-interface.js +0 -59
  186. package/lib/query-interface/sqlite-query-interface.d.ts +0 -44
  187. package/lib/query-interface/sqlite-query-interface.js +0 -141
  188. package/lib/relation-repository/belongs-to-many-repository.d.ts +0 -28
  189. package/lib/relation-repository/belongs-to-many-repository.js +0 -248
  190. package/lib/relation-repository/belongs-to-repository.d.ts +0 -17
  191. package/lib/relation-repository/belongs-to-repository.js +0 -51
  192. package/lib/relation-repository/hasmany-repository.d.ts +0 -21
  193. package/lib/relation-repository/hasmany-repository.js +0 -158
  194. package/lib/relation-repository/hasone-repository.d.ts +0 -17
  195. package/lib/relation-repository/hasone-repository.js +0 -51
  196. package/lib/relation-repository/multiple-relation-repository.d.ts +0 -27
  197. package/lib/relation-repository/multiple-relation-repository.js +0 -200
  198. package/lib/relation-repository/relation-repository.d.ts +0 -38
  199. package/lib/relation-repository/relation-repository.js +0 -175
  200. package/lib/relation-repository/single-relation-repository.d.ts +0 -36
  201. package/lib/relation-repository/single-relation-repository.js +0 -151
  202. package/lib/relation-repository/types.d.ts +0 -15
  203. package/lib/relation-repository/types.js +0 -24
  204. package/lib/repositories/tree-repository/adjacency-list-repository.d.ts +0 -26
  205. package/lib/repositories/tree-repository/adjacency-list-repository.js +0 -192
  206. package/lib/repositories/view-repository.d.ts +0 -11
  207. package/lib/repositories/view-repository.js +0 -41
  208. package/lib/repository.d.ts +0 -214
  209. package/lib/repository.js +0 -609
  210. package/lib/sql-parser/index.d.ts +0 -13
  211. package/lib/sql-parser/index.js +0 -33
  212. package/lib/sync-runner.d.ts +0 -41
  213. package/lib/sync-runner.js +0 -335
  214. package/lib/types.d.ts +0 -57
  215. package/lib/types.js +0 -24
  216. package/lib/update-associations.d.ts +0 -68
  217. package/lib/update-associations.js +0 -429
  218. package/lib/update-guard.d.ts +0 -36
  219. package/lib/update-guard.js +0 -212
  220. package/lib/utils.d.ts +0 -15
  221. package/lib/utils.js +0 -136
  222. package/lib/value-parsers/array-value-parser.d.ts +0 -16
  223. package/lib/value-parsers/array-value-parser.js +0 -67
  224. package/lib/value-parsers/base-value-parser.d.ts +0 -20
  225. package/lib/value-parsers/base-value-parser.js +0 -72
  226. package/lib/value-parsers/boolean-value-parser.d.ts +0 -12
  227. package/lib/value-parsers/boolean-value-parser.js +0 -61
  228. package/lib/value-parsers/date-value-parser.d.ts +0 -13
  229. package/lib/value-parsers/date-value-parser.js +0 -99
  230. package/lib/value-parsers/index.d.ts +0 -20
  231. package/lib/value-parsers/index.js +0 -87
  232. package/lib/value-parsers/json-value-parser.d.ts +0 -12
  233. package/lib/value-parsers/json-value-parser.js +0 -56
  234. package/lib/value-parsers/number-value-parser.d.ts +0 -12
  235. package/lib/value-parsers/number-value-parser.js +0 -67
  236. package/lib/value-parsers/string-value-parser.d.ts +0 -16
  237. package/lib/value-parsers/string-value-parser.js +0 -73
  238. package/lib/value-parsers/to-many-value-parser.d.ts +0 -21
  239. package/lib/value-parsers/to-many-value-parser.js +0 -117
  240. package/lib/value-parsers/to-one-value-parser.d.ts +0 -12
  241. package/lib/value-parsers/to-one-value-parser.js +0 -57
  242. package/lib/view/field-type-map.d.ts +0 -109
  243. package/lib/view/field-type-map.js +0 -101
  244. package/lib/view/view-inference.d.ts +0 -40
  245. package/lib/view/view-inference.js +0 -157
  246. package/lib/view-collection.d.ts +0 -14
  247. package/lib/view-collection.js +0 -54
@@ -1,238 +0,0 @@
1
- /**
2
- * This file is part of the NocoBase (R) project.
3
- * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
- * Authors: NocoBase Team.
5
- *
6
- * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
- * For more information, please refer to: https://www.nocobase.com/agreement.
8
- */
9
-
10
- var __create = Object.create;
11
- var __defProp = Object.defineProperty;
12
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
13
- var __getOwnPropNames = Object.getOwnPropertyNames;
14
- var __getProtoOf = Object.getPrototypeOf;
15
- var __hasOwnProp = Object.prototype.hasOwnProperty;
16
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
17
- var __export = (target, all) => {
18
- for (var name in all)
19
- __defProp(target, name, { get: all[name], enumerable: true });
20
- };
21
- var __copyProps = (to, from, except, desc) => {
22
- if (from && typeof from === "object" || typeof from === "function") {
23
- for (let key of __getOwnPropNames(from))
24
- if (!__hasOwnProp.call(to, key) && key !== except)
25
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
26
- }
27
- return to;
28
- };
29
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
30
- // If the importer is in node compatibility mode or this is not an ESM
31
- // file that has been converted to a CommonJS file using a Babel-
32
- // compatible transform (i.e. "__esModule" has not been set), then set
33
- // "default" to the CommonJS "module.exports" for node compatibility.
34
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
35
- mod
36
- ));
37
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
38
- var filter_parser_exports = {};
39
- __export(filter_parser_exports, {
40
- default: () => FilterParser
41
- });
42
- module.exports = __toCommonJS(filter_parser_exports);
43
- var import_flat = require("flat");
44
- var import_lodash = __toESM(require("lodash"));
45
- const debug = require("debug")("noco-database");
46
- const _FilterParser = class _FilterParser {
47
- collection;
48
- database;
49
- model;
50
- filter;
51
- context;
52
- constructor(filter, context) {
53
- const { collection } = context;
54
- this.collection = collection;
55
- this.context = context;
56
- this.model = collection.model;
57
- this.filter = this.prepareFilter(filter);
58
- this.database = collection.context.database;
59
- }
60
- prepareFilter(filter) {
61
- if (import_lodash.default.isPlainObject(filter)) {
62
- const renamedKey = {};
63
- for (const key of Object.keys(filter)) {
64
- if (key.endsWith(".$exists") || key.endsWith(".$notExists")) {
65
- const keyArr = key.split(".");
66
- if (keyArr[keyArr.length - 2] == "id") {
67
- continue;
68
- }
69
- keyArr.splice(keyArr.length - 1, 0, "id");
70
- renamedKey[key] = keyArr.join(".");
71
- }
72
- }
73
- for (const [oldKey, newKey] of Object.entries(renamedKey)) {
74
- filter[newKey] = filter[oldKey];
75
- delete filter[oldKey];
76
- }
77
- }
78
- return filter;
79
- }
80
- toSequelizeParams() {
81
- debug("filter %o", this.filter);
82
- if (!this.filter) {
83
- return {};
84
- }
85
- const filter = this.filter;
86
- const model = this.model;
87
- const operators = this.database.operators;
88
- const originalFiler = import_lodash.default.cloneDeep(filter || {});
89
- const flattenedFilter = (0, import_flat.flatten)(filter || {});
90
- debug("flattened filter %o", flattenedFilter);
91
- const include = {};
92
- const where = {};
93
- let skipPrefix = null;
94
- const associations = model.associations;
95
- debug("associations %O", associations);
96
- for (let [key, value] of Object.entries(flattenedFilter)) {
97
- if (skipPrefix && key.startsWith(skipPrefix)) {
98
- continue;
99
- }
100
- if ((key == "$or" || key == "$and") && Array.isArray(value) && value.length == 0) {
101
- continue;
102
- }
103
- debug('handle filter key "%s: "%s"', key, value);
104
- const keys = key.split(".");
105
- const paths = [];
106
- const origins = [];
107
- while (keys.length) {
108
- debug("keys: %o, paths: %o, origins: %o", keys, paths, origins);
109
- const firstKey = keys.shift();
110
- origins.push(firstKey);
111
- debug("origins: %o", origins);
112
- if (firstKey.startsWith("$")) {
113
- if (operators.has(firstKey)) {
114
- debug("%s is operator", firstKey);
115
- const opKey = operators.get(firstKey);
116
- debug("operator key %s, operator: %o", firstKey, opKey);
117
- if (typeof opKey === "symbol") {
118
- paths.push(opKey);
119
- continue;
120
- } else if (typeof opKey === "function") {
121
- skipPrefix = origins.join(".");
122
- const queryValue = import_lodash.default.get((0, import_flat.unflatten)(originalFiler), skipPrefix);
123
- const [fieldName, fullName] = this.getFieldNameFromQueryPath(skipPrefix);
124
- value = opKey(queryValue, {
125
- app: this.context.app,
126
- db: this.database,
127
- path: skipPrefix,
128
- fullName,
129
- fieldName,
130
- fieldPath: `${this.collection.name}.${fullName}`,
131
- model: this.model
132
- });
133
- break;
134
- }
135
- } else {
136
- paths.push(firstKey);
137
- continue;
138
- }
139
- }
140
- if (!import_lodash.default.isNaN(parseInt(firstKey))) {
141
- paths.push(firstKey);
142
- continue;
143
- }
144
- if (!associations[firstKey]) {
145
- paths.push(firstKey);
146
- continue;
147
- }
148
- const associationKeys = [];
149
- associationKeys.push(firstKey);
150
- debug("associationKeys %o", associationKeys);
151
- const existInclude = import_lodash.default.get(include, firstKey);
152
- if (!existInclude) {
153
- import_lodash.default.set(include, firstKey, {
154
- association: firstKey,
155
- attributes: []
156
- // out put empty fields by default
157
- });
158
- }
159
- let target = associations[firstKey].target;
160
- debug("association target %o", target);
161
- while (target) {
162
- const attr = keys.shift();
163
- origins.push(attr);
164
- if (target.rawAttributes[attr]) {
165
- associationKeys.push(target.rawAttributes[attr].field || attr);
166
- target = null;
167
- } else if (target.associations[attr]) {
168
- associationKeys.push(attr);
169
- const assoc = [];
170
- associationKeys.forEach((associationKey, index) => {
171
- if (index > 0) {
172
- assoc.push("include");
173
- }
174
- assoc.push(associationKey);
175
- });
176
- const existInclude2 = import_lodash.default.get(include, assoc);
177
- if (!existInclude2) {
178
- import_lodash.default.set(include, assoc, {
179
- association: attr,
180
- attributes: []
181
- });
182
- }
183
- target = target.associations[attr].target;
184
- } else {
185
- throw new Error(`${attr} neither ${firstKey}'s association nor ${firstKey}'s attribute`);
186
- }
187
- }
188
- debug("associationKeys %o", associationKeys);
189
- if (associationKeys.length > 1) {
190
- paths.push(`$${associationKeys.join(".")}$`);
191
- } else {
192
- paths.push(firstKey);
193
- }
194
- }
195
- debug("where %o, paths %o, value, %o", where, paths, value);
196
- const values = import_lodash.default.get(where, paths);
197
- if (values && typeof values === "object" && value && typeof value === "object") {
198
- value = { ...value, ...values };
199
- }
200
- import_lodash.default.set(where, paths, value);
201
- }
202
- const toInclude = /* @__PURE__ */ __name((items) => {
203
- return Object.values(items).map((item) => {
204
- if (item.include) {
205
- item.include = toInclude(item.include);
206
- }
207
- return item;
208
- });
209
- }, "toInclude");
210
- debug("where %o, include %o", where, include);
211
- const results = { where, include: toInclude(include) };
212
- const traverseInclude = /* @__PURE__ */ __name((include2) => {
213
- for (const item of include2) {
214
- if (item.include) {
215
- traverseInclude(item.include);
216
- }
217
- item.fromFilter = true;
218
- }
219
- }, "traverseInclude");
220
- traverseInclude(results.include);
221
- return results;
222
- }
223
- getFieldNameFromQueryPath(queryPath) {
224
- const paths = queryPath.split(".");
225
- let fieldName;
226
- const fullPaths = [];
227
- for (const path of paths) {
228
- if (path.startsWith("$") || !import_lodash.default.isNaN(parseInt(path))) {
229
- continue;
230
- }
231
- fullPaths.push(path);
232
- fieldName = path;
233
- }
234
- return [fieldName, fullPaths.join(".")];
235
- }
236
- };
237
- __name(_FilterParser, "FilterParser");
238
- let FilterParser = _FilterParser;
package/lib/helpers.d.ts DELETED
@@ -1,11 +0,0 @@
1
- /**
2
- * This file is part of the NocoBase (R) project.
3
- * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
- * Authors: NocoBase Team.
5
- *
6
- * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
- * For more information, please refer to: https://www.nocobase.com/agreement.
8
- */
9
- import { Database, IDatabaseOptions } from './database';
10
- export declare function parseDatabaseOptionsFromEnv(): Promise<IDatabaseOptions>;
11
- export declare function checkDatabaseVersion(db: Database): Promise<boolean>;
package/lib/helpers.js DELETED
@@ -1,182 +0,0 @@
1
- /**
2
- * This file is part of the NocoBase (R) project.
3
- * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
- * Authors: NocoBase Team.
5
- *
6
- * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
- * For more information, please refer to: https://www.nocobase.com/agreement.
8
- */
9
-
10
- var __create = Object.create;
11
- var __defProp = Object.defineProperty;
12
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
13
- var __getOwnPropNames = Object.getOwnPropertyNames;
14
- var __getProtoOf = Object.getPrototypeOf;
15
- var __hasOwnProp = Object.prototype.hasOwnProperty;
16
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
17
- var __export = (target, all) => {
18
- for (var name in all)
19
- __defProp(target, name, { get: all[name], enumerable: true });
20
- };
21
- var __copyProps = (to, from, except, desc) => {
22
- if (from && typeof from === "object" || typeof from === "function") {
23
- for (let key of __getOwnPropNames(from))
24
- if (!__hasOwnProp.call(to, key) && key !== except)
25
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
26
- }
27
- return to;
28
- };
29
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
30
- // If the importer is in node compatibility mode or this is not an ESM
31
- // file that has been converted to a CommonJS file using a Babel-
32
- // compatible transform (i.e. "__esModule" has not been set), then set
33
- // "default" to the CommonJS "module.exports" for node compatibility.
34
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
35
- mod
36
- ));
37
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
38
- var helpers_exports = {};
39
- __export(helpers_exports, {
40
- checkDatabaseVersion: () => checkDatabaseVersion,
41
- parseDatabaseOptionsFromEnv: () => parseDatabaseOptionsFromEnv
42
- });
43
- module.exports = __toCommonJS(helpers_exports);
44
- var import_fs = __toESM(require("fs"));
45
- var import_semver = __toESM(require("semver"));
46
- /* istanbul ignore file -- @preserve */
47
- function getEnvValue(key, defaultValue) {
48
- return process.env[key] || defaultValue;
49
- }
50
- __name(getEnvValue, "getEnvValue");
51
- function isFilePath(value) {
52
- return import_fs.default.promises.stat(value).then((stats) => stats.isFile()).catch((err) => {
53
- if (err.code === "ENOENT") {
54
- return false;
55
- }
56
- throw err;
57
- });
58
- }
59
- __name(isFilePath, "isFilePath");
60
- function getValueOrFileContent(envVarName) {
61
- const value = getEnvValue(envVarName);
62
- if (!value) {
63
- return Promise.resolve(null);
64
- }
65
- return isFilePath(value).then((isFile) => {
66
- if (isFile) {
67
- return import_fs.default.promises.readFile(value, "utf8");
68
- }
69
- return value;
70
- }).catch((error) => {
71
- console.error(`Failed to read file content for environment variable ${envVarName}.`);
72
- throw error;
73
- });
74
- }
75
- __name(getValueOrFileContent, "getValueOrFileContent");
76
- function extractSSLOptionsFromEnv() {
77
- return Promise.all([
78
- getValueOrFileContent("DB_DIALECT_OPTIONS_SSL_MODE"),
79
- getValueOrFileContent("DB_DIALECT_OPTIONS_SSL_CA"),
80
- getValueOrFileContent("DB_DIALECT_OPTIONS_SSL_KEY"),
81
- getValueOrFileContent("DB_DIALECT_OPTIONS_SSL_CERT"),
82
- getValueOrFileContent("DB_DIALECT_OPTIONS_SSL_REJECT_UNAUTHORIZED")
83
- ]).then(([mode, ca, key, cert, rejectUnauthorized]) => {
84
- const sslOptions = {};
85
- if (mode)
86
- sslOptions["mode"] = mode;
87
- if (ca)
88
- sslOptions["ca"] = ca;
89
- if (key)
90
- sslOptions["key"] = key;
91
- if (cert)
92
- sslOptions["cert"] = cert;
93
- if (rejectUnauthorized)
94
- sslOptions["rejectUnauthorized"] = rejectUnauthorized === "true";
95
- return sslOptions;
96
- });
97
- }
98
- __name(extractSSLOptionsFromEnv, "extractSSLOptionsFromEnv");
99
- async function parseDatabaseOptionsFromEnv() {
100
- const databaseOptions = {
101
- logging: process.env.DB_LOGGING == "on" ? customLogger : false,
102
- dialect: process.env.DB_DIALECT,
103
- storage: process.env.DB_STORAGE,
104
- username: process.env.DB_USER,
105
- password: process.env.DB_PASSWORD,
106
- database: process.env.DB_DATABASE,
107
- host: process.env.DB_HOST,
108
- port: process.env.DB_PORT,
109
- timezone: process.env.DB_TIMEZONE,
110
- tablePrefix: process.env.DB_TABLE_PREFIX,
111
- schema: process.env.DB_SCHEMA,
112
- underscored: process.env.DB_UNDERSCORED === "true"
113
- };
114
- const sslOptions = await extractSSLOptionsFromEnv();
115
- if (Object.keys(sslOptions).length) {
116
- databaseOptions.dialectOptions = databaseOptions.dialectOptions || {};
117
- databaseOptions.dialectOptions["ssl"] = sslOptions;
118
- }
119
- return databaseOptions;
120
- }
121
- __name(parseDatabaseOptionsFromEnv, "parseDatabaseOptionsFromEnv");
122
- function customLogger(queryString, queryObject) {
123
- console.log(queryString);
124
- if (queryObject == null ? void 0 : queryObject.bind) {
125
- console.log(queryObject.bind);
126
- }
127
- }
128
- __name(customLogger, "customLogger");
129
- const dialectVersionAccessors = {
130
- sqlite: {
131
- sql: "select sqlite_version() as version",
132
- get: (v) => v,
133
- version: "3.x"
134
- },
135
- mysql: {
136
- sql: "select version() as version",
137
- get: (v) => {
138
- const m = /([\d+.]+)/.exec(v);
139
- return m[0];
140
- },
141
- version: ">=8.0.17"
142
- },
143
- mariadb: {
144
- sql: "select version() as version",
145
- get: (v) => {
146
- const m = /([\d+.]+)/.exec(v);
147
- return m[0];
148
- },
149
- version: ">=10.9"
150
- },
151
- postgres: {
152
- sql: "select version() as version",
153
- get: (v) => {
154
- const m = /([\d+.]+)/.exec(v);
155
- return import_semver.default.minVersion(m[0]).version;
156
- },
157
- version: ">=10"
158
- }
159
- };
160
- async function checkDatabaseVersion(db) {
161
- var _a;
162
- const dialect = db.sequelize.getDialect();
163
- const accessor = dialectVersionAccessors[dialect];
164
- if (!accessor) {
165
- throw new Error(`unsupported dialect ${dialect}`);
166
- }
167
- const result = await db.sequelize.query(accessor.sql, {
168
- type: "SELECT"
169
- });
170
- const version = accessor.get((_a = result == null ? void 0 : result[0]) == null ? void 0 : _a.version);
171
- const versionResult = import_semver.default.satisfies(version, accessor.version);
172
- if (!versionResult) {
173
- throw new Error(`to use ${dialect}, please ensure the version is ${accessor.version}`);
174
- }
175
- return true;
176
- }
177
- __name(checkDatabaseVersion, "checkDatabaseVersion");
178
- // Annotate the CommonJS export names for ESM import in node:
179
- 0 && (module.exports = {
180
- checkDatabaseVersion,
181
- parseDatabaseOptionsFromEnv
182
- });
package/lib/index.d.ts DELETED
@@ -1,37 +0,0 @@
1
- /**
2
- * This file is part of the NocoBase (R) project.
3
- * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
- * Authors: NocoBase Team.
5
- *
6
- * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
- * For more information, please refer to: https://www.nocobase.com/agreement.
8
- */
9
- export { BaseError, BelongsToGetAssociationMixin, DataTypes, fn, HasManyCountAssociationsMixin, HasManyCreateAssociationMixin, HasManyGetAssociationsMixin, literal, ModelStatic, Op, SyncOptions, Transaction, UniqueConstraintError, ValidationError, ValidationErrorItem, where, } from 'sequelize';
10
- export * from './collection';
11
- export * from './collection-group-manager';
12
- export * from './collection-importer';
13
- export * from './database';
14
- export { Database as default } from './database';
15
- export * from './field-repository/array-field-repository';
16
- export * from './fields';
17
- export * from './filter-match';
18
- export { default as FilterParser } from './filter-parser';
19
- export * from './inherited-collection';
20
- export * from './magic-attribute-model';
21
- export * from './migration';
22
- export * from './mock-database';
23
- export * from './model';
24
- export * from './relation-repository/belongs-to-many-repository';
25
- export * from './relation-repository/belongs-to-repository';
26
- export * from './relation-repository/hasmany-repository';
27
- export * from './relation-repository/multiple-relation-repository';
28
- export * from './relation-repository/single-relation-repository';
29
- export * from './repository';
30
- export * from './update-associations';
31
- export { snakeCase } from './utils';
32
- export * from './value-parsers';
33
- export * from './view-collection';
34
- export * from './view/view-inference';
35
- export * from './helpers';
36
- export { default as sqlParser, SQLParserTypes } from './sql-parser';
37
- export * from './interfaces';
package/lib/index.js DELETED
@@ -1,138 +0,0 @@
1
- /**
2
- * This file is part of the NocoBase (R) project.
3
- * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
- * Authors: NocoBase Team.
5
- *
6
- * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
- * For more information, please refer to: https://www.nocobase.com/agreement.
8
- */
9
-
10
- var __create = Object.create;
11
- var __defProp = Object.defineProperty;
12
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
13
- var __getOwnPropNames = Object.getOwnPropertyNames;
14
- var __getProtoOf = Object.getPrototypeOf;
15
- var __hasOwnProp = Object.prototype.hasOwnProperty;
16
- var __export = (target, all) => {
17
- for (var name in all)
18
- __defProp(target, name, { get: all[name], enumerable: true });
19
- };
20
- var __copyProps = (to, from, except, desc) => {
21
- if (from && typeof from === "object" || typeof from === "function") {
22
- for (let key of __getOwnPropNames(from))
23
- if (!__hasOwnProp.call(to, key) && key !== except)
24
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
25
- }
26
- return to;
27
- };
28
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
29
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
30
- // If the importer is in node compatibility mode or this is not an ESM
31
- // file that has been converted to a CommonJS file using a Babel-
32
- // compatible transform (i.e. "__esModule" has not been set), then set
33
- // "default" to the CommonJS "module.exports" for node compatibility.
34
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
35
- mod
36
- ));
37
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
38
- var src_exports = {};
39
- __export(src_exports, {
40
- BaseError: () => import_sequelize.BaseError,
41
- BelongsToGetAssociationMixin: () => import_sequelize.BelongsToGetAssociationMixin,
42
- DataTypes: () => import_sequelize.DataTypes,
43
- FilterParser: () => import_filter_parser.default,
44
- HasManyCountAssociationsMixin: () => import_sequelize.HasManyCountAssociationsMixin,
45
- HasManyCreateAssociationMixin: () => import_sequelize.HasManyCreateAssociationMixin,
46
- HasManyGetAssociationsMixin: () => import_sequelize.HasManyGetAssociationsMixin,
47
- ModelStatic: () => import_sequelize.ModelStatic,
48
- Op: () => import_sequelize.Op,
49
- SQLParserTypes: () => import_sql_parser.SQLParserTypes,
50
- SyncOptions: () => import_sequelize.SyncOptions,
51
- Transaction: () => import_sequelize.Transaction,
52
- UniqueConstraintError: () => import_sequelize.UniqueConstraintError,
53
- ValidationError: () => import_sequelize.ValidationError,
54
- ValidationErrorItem: () => import_sequelize.ValidationErrorItem,
55
- default: () => import_database.Database,
56
- fn: () => import_sequelize.fn,
57
- literal: () => import_sequelize.literal,
58
- snakeCase: () => import_utils.snakeCase,
59
- sqlParser: () => import_sql_parser.default,
60
- where: () => import_sequelize.where
61
- });
62
- module.exports = __toCommonJS(src_exports);
63
- var import_sequelize = require("sequelize");
64
- __reExport(src_exports, require("./collection"), module.exports);
65
- __reExport(src_exports, require("./collection-group-manager"), module.exports);
66
- __reExport(src_exports, require("./collection-importer"), module.exports);
67
- __reExport(src_exports, require("./database"), module.exports);
68
- var import_database = require("./database");
69
- __reExport(src_exports, require("./field-repository/array-field-repository"), module.exports);
70
- __reExport(src_exports, require("./fields"), module.exports);
71
- __reExport(src_exports, require("./filter-match"), module.exports);
72
- var import_filter_parser = __toESM(require("./filter-parser"));
73
- __reExport(src_exports, require("./inherited-collection"), module.exports);
74
- __reExport(src_exports, require("./magic-attribute-model"), module.exports);
75
- __reExport(src_exports, require("./migration"), module.exports);
76
- __reExport(src_exports, require("./mock-database"), module.exports);
77
- __reExport(src_exports, require("./model"), module.exports);
78
- __reExport(src_exports, require("./relation-repository/belongs-to-many-repository"), module.exports);
79
- __reExport(src_exports, require("./relation-repository/belongs-to-repository"), module.exports);
80
- __reExport(src_exports, require("./relation-repository/hasmany-repository"), module.exports);
81
- __reExport(src_exports, require("./relation-repository/multiple-relation-repository"), module.exports);
82
- __reExport(src_exports, require("./relation-repository/single-relation-repository"), module.exports);
83
- __reExport(src_exports, require("./repository"), module.exports);
84
- __reExport(src_exports, require("./update-associations"), module.exports);
85
- var import_utils = require("./utils");
86
- __reExport(src_exports, require("./value-parsers"), module.exports);
87
- __reExport(src_exports, require("./view-collection"), module.exports);
88
- __reExport(src_exports, require("./view/view-inference"), module.exports);
89
- __reExport(src_exports, require("./helpers"), module.exports);
90
- var import_sql_parser = __toESM(require("./sql-parser"));
91
- __reExport(src_exports, require("./interfaces"), module.exports);
92
- // Annotate the CommonJS export names for ESM import in node:
93
- 0 && (module.exports = {
94
- BaseError,
95
- BelongsToGetAssociationMixin,
96
- DataTypes,
97
- FilterParser,
98
- HasManyCountAssociationsMixin,
99
- HasManyCreateAssociationMixin,
100
- HasManyGetAssociationsMixin,
101
- ModelStatic,
102
- Op,
103
- SQLParserTypes,
104
- SyncOptions,
105
- Transaction,
106
- UniqueConstraintError,
107
- ValidationError,
108
- ValidationErrorItem,
109
- fn,
110
- literal,
111
- snakeCase,
112
- sqlParser,
113
- where,
114
- ...require("./collection"),
115
- ...require("./collection-group-manager"),
116
- ...require("./collection-importer"),
117
- ...require("./database"),
118
- ...require("./field-repository/array-field-repository"),
119
- ...require("./fields"),
120
- ...require("./filter-match"),
121
- ...require("./inherited-collection"),
122
- ...require("./magic-attribute-model"),
123
- ...require("./migration"),
124
- ...require("./mock-database"),
125
- ...require("./model"),
126
- ...require("./relation-repository/belongs-to-many-repository"),
127
- ...require("./relation-repository/belongs-to-repository"),
128
- ...require("./relation-repository/hasmany-repository"),
129
- ...require("./relation-repository/multiple-relation-repository"),
130
- ...require("./relation-repository/single-relation-repository"),
131
- ...require("./repository"),
132
- ...require("./update-associations"),
133
- ...require("./value-parsers"),
134
- ...require("./view-collection"),
135
- ...require("./view/view-inference"),
136
- ...require("./helpers"),
137
- ...require("./interfaces")
138
- });
@@ -1,22 +0,0 @@
1
- /**
2
- * This file is part of the NocoBase (R) project.
3
- * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
- * Authors: NocoBase Team.
5
- *
6
- * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
- * For more information, please refer to: https://www.nocobase.com/agreement.
8
- */
9
- import { Field } from '.';
10
- import { Collection, CollectionContext, CollectionOptions } from './collection';
11
- export declare class InheritedCollection extends Collection {
12
- parents?: Collection[];
13
- constructor(options: CollectionOptions, context: CollectionContext);
14
- getParents(): Collection<any, any>[];
15
- getFlatParents(): any[];
16
- parentFields(): Map<string, Field>;
17
- parentAttributes(): {};
18
- isInherited(): boolean;
19
- protected bindParents(): void;
20
- protected setParents(inherits: string | string[]): void;
21
- protected setParentFields(): void;
22
- }