@strapi/database 4.14.3 → 4.14.5

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 (242) hide show
  1. package/README.md +3 -0
  2. package/dist/connection.d.ts +3 -0
  3. package/dist/connection.d.ts.map +1 -0
  4. package/dist/dialects/dialect.d.ts +27 -0
  5. package/dist/dialects/dialect.d.ts.map +1 -0
  6. package/dist/dialects/index.d.ts +5 -0
  7. package/dist/dialects/index.d.ts.map +1 -0
  8. package/dist/dialects/mysql/constants.d.ts +3 -0
  9. package/dist/dialects/mysql/constants.d.ts.map +1 -0
  10. package/dist/dialects/mysql/database-inspector.d.ts +12 -0
  11. package/dist/dialects/mysql/database-inspector.d.ts.map +1 -0
  12. package/dist/dialects/mysql/index.d.ts +20 -0
  13. package/dist/dialects/mysql/index.d.ts.map +1 -0
  14. package/dist/dialects/mysql/schema-inspector.d.ts +13 -0
  15. package/dist/dialects/mysql/schema-inspector.d.ts.map +1 -0
  16. package/dist/dialects/postgresql/index.d.ts +14 -0
  17. package/dist/dialects/postgresql/index.d.ts.map +1 -0
  18. package/dist/dialects/postgresql/schema-inspector.d.ts +14 -0
  19. package/dist/dialects/postgresql/schema-inspector.d.ts.map +1 -0
  20. package/dist/dialects/sqlite/index.d.ts +19 -0
  21. package/dist/dialects/sqlite/index.d.ts.map +1 -0
  22. package/dist/dialects/sqlite/schema-inspector.d.ts +13 -0
  23. package/dist/dialects/sqlite/schema-inspector.d.ts.map +1 -0
  24. package/dist/entity-manager/entity-repository.d.ts +4 -0
  25. package/dist/entity-manager/entity-repository.d.ts.map +1 -0
  26. package/dist/entity-manager/index.d.ts +5 -0
  27. package/dist/entity-manager/index.d.ts.map +1 -0
  28. package/dist/entity-manager/morph-relations.d.ts +13 -0
  29. package/dist/entity-manager/morph-relations.d.ts.map +1 -0
  30. package/dist/entity-manager/regular-relations.d.ts +83 -0
  31. package/dist/entity-manager/regular-relations.d.ts.map +1 -0
  32. package/dist/entity-manager/relations/cloning/regular-relations.d.ts +17 -0
  33. package/dist/entity-manager/relations/cloning/regular-relations.d.ts.map +1 -0
  34. package/dist/entity-manager/relations-orderer.d.ts +73 -0
  35. package/dist/entity-manager/relations-orderer.d.ts.map +1 -0
  36. package/dist/entity-manager/types.d.ts +97 -0
  37. package/dist/entity-manager/types.d.ts.map +1 -0
  38. package/dist/errors/database.d.ts +5 -0
  39. package/dist/errors/database.d.ts.map +1 -0
  40. package/dist/errors/index.d.ts +8 -0
  41. package/dist/errors/index.d.ts.map +1 -0
  42. package/dist/errors/invalid-date.d.ts +5 -0
  43. package/dist/errors/invalid-date.d.ts.map +1 -0
  44. package/dist/errors/invalid-datetime.d.ts +5 -0
  45. package/dist/errors/invalid-datetime.d.ts.map +1 -0
  46. package/dist/errors/invalid-relation.d.ts +5 -0
  47. package/dist/errors/invalid-relation.d.ts.map +1 -0
  48. package/dist/errors/invalid-time.d.ts +5 -0
  49. package/dist/errors/invalid-time.d.ts.map +1 -0
  50. package/dist/errors/not-null.d.ts +7 -0
  51. package/dist/errors/not-null.d.ts.map +1 -0
  52. package/dist/fields/biginteger.d.ts +4 -0
  53. package/dist/fields/biginteger.d.ts.map +1 -0
  54. package/dist/fields/boolean.d.ts +6 -0
  55. package/dist/fields/boolean.d.ts.map +1 -0
  56. package/dist/fields/date.d.ts +6 -0
  57. package/dist/fields/date.d.ts.map +1 -0
  58. package/dist/fields/datetime.d.ts +6 -0
  59. package/dist/fields/datetime.d.ts.map +1 -0
  60. package/dist/fields/field.d.ts +7 -0
  61. package/dist/fields/field.d.ts.map +1 -0
  62. package/dist/fields/index.d.ts +4 -0
  63. package/dist/fields/index.d.ts.map +1 -0
  64. package/dist/fields/json.d.ts +6 -0
  65. package/dist/fields/json.d.ts.map +1 -0
  66. package/dist/fields/number.d.ts +6 -0
  67. package/dist/fields/number.d.ts.map +1 -0
  68. package/dist/fields/shared/parsers.d.ts +4 -0
  69. package/dist/fields/shared/parsers.d.ts.map +1 -0
  70. package/dist/fields/string.d.ts +6 -0
  71. package/dist/fields/string.d.ts.map +1 -0
  72. package/dist/fields/time.d.ts +6 -0
  73. package/dist/fields/time.d.ts.map +1 -0
  74. package/dist/fields/timestamp.d.ts +6 -0
  75. package/dist/fields/timestamp.d.ts.map +1 -0
  76. package/dist/index.d.ts +46 -0
  77. package/dist/index.d.ts.map +1 -0
  78. package/dist/index.js +6211 -0
  79. package/dist/index.js.map +1 -0
  80. package/dist/index.mjs +6179 -0
  81. package/dist/index.mjs.map +1 -0
  82. package/dist/lifecycles/index.d.ts +17 -0
  83. package/dist/lifecycles/index.d.ts.map +1 -0
  84. package/dist/lifecycles/subscribers/index.d.ts +5 -0
  85. package/dist/lifecycles/subscribers/index.d.ts.map +1 -0
  86. package/dist/lifecycles/subscribers/models-lifecycles.d.ts +6 -0
  87. package/dist/lifecycles/subscribers/models-lifecycles.d.ts.map +1 -0
  88. package/dist/lifecycles/subscribers/timestamps.d.ts +3 -0
  89. package/dist/lifecycles/subscribers/timestamps.d.ts.map +1 -0
  90. package/dist/lifecycles/types.d.ts +25 -0
  91. package/dist/lifecycles/types.d.ts.map +1 -0
  92. package/dist/metadata/index.d.ts +10 -0
  93. package/dist/metadata/index.d.ts.map +1 -0
  94. package/dist/metadata/metadata.d.ts +22 -0
  95. package/dist/metadata/metadata.d.ts.map +1 -0
  96. package/dist/metadata/relations.d.ts +16 -0
  97. package/dist/metadata/relations.d.ts.map +1 -0
  98. package/dist/migrations/index.d.ts +12 -0
  99. package/dist/migrations/index.d.ts.map +1 -0
  100. package/dist/migrations/storage.d.ts +15 -0
  101. package/dist/migrations/storage.d.ts.map +1 -0
  102. package/dist/query/helpers/index.d.ts +8 -0
  103. package/dist/query/helpers/index.d.ts.map +1 -0
  104. package/dist/query/helpers/join.d.ts +30 -0
  105. package/dist/query/helpers/join.d.ts.map +1 -0
  106. package/dist/query/helpers/order-by.d.ts +14 -0
  107. package/dist/query/helpers/order-by.d.ts.map +1 -0
  108. package/dist/query/helpers/populate/apply.d.ts +11 -0
  109. package/dist/query/helpers/populate/apply.d.ts.map +1 -0
  110. package/dist/query/helpers/populate/index.d.ts +4 -0
  111. package/dist/query/helpers/populate/index.d.ts.map +1 -0
  112. package/dist/query/helpers/populate/process.d.ts +24 -0
  113. package/dist/query/helpers/populate/process.d.ts.map +1 -0
  114. package/dist/query/helpers/search.d.ts +4 -0
  115. package/dist/query/helpers/search.d.ts.map +1 -0
  116. package/dist/query/helpers/streams/index.d.ts +2 -0
  117. package/dist/query/helpers/streams/index.d.ts.map +1 -0
  118. package/dist/query/helpers/streams/readable.d.ts +39 -0
  119. package/dist/query/helpers/streams/readable.d.ts.map +1 -0
  120. package/dist/query/helpers/transform.d.ts +8 -0
  121. package/dist/query/helpers/transform.d.ts.map +1 -0
  122. package/dist/query/helpers/where.d.ts +19 -0
  123. package/dist/query/helpers/where.d.ts.map +1 -0
  124. package/dist/query/index.d.ts +3 -0
  125. package/dist/query/index.d.ts.map +1 -0
  126. package/dist/query/query-builder.d.ts +79 -0
  127. package/dist/query/query-builder.d.ts.map +1 -0
  128. package/dist/query/types.d.ts +8 -0
  129. package/dist/query/types.d.ts.map +1 -0
  130. package/dist/schema/builder.d.ts +33 -0
  131. package/dist/schema/builder.d.ts.map +1 -0
  132. package/dist/schema/diff.d.ts +7 -0
  133. package/dist/schema/diff.d.ts.map +1 -0
  134. package/dist/schema/index.d.ts +20 -0
  135. package/dist/schema/index.d.ts.map +1 -0
  136. package/dist/schema/schema.d.ts +4 -0
  137. package/dist/schema/schema.d.ts.map +1 -0
  138. package/dist/schema/storage.d.ts +10 -0
  139. package/dist/schema/storage.d.ts.map +1 -0
  140. package/dist/schema/types.d.ts +103 -0
  141. package/dist/schema/types.d.ts.map +1 -0
  142. package/dist/transaction-context.d.ts +22 -0
  143. package/dist/transaction-context.d.ts.map +1 -0
  144. package/dist/types/index.d.ts +169 -0
  145. package/dist/types/index.d.ts.map +1 -0
  146. package/dist/utils/content-types.d.ts +13 -0
  147. package/dist/utils/content-types.d.ts.map +1 -0
  148. package/dist/utils/knex.d.ts +12 -0
  149. package/dist/utils/knex.d.ts.map +1 -0
  150. package/dist/utils/types.d.ts +10 -0
  151. package/dist/utils/types.d.ts.map +1 -0
  152. package/dist/validations/index.d.ts +6 -0
  153. package/dist/validations/index.d.ts.map +1 -0
  154. package/dist/validations/relations/bidirectional.d.ts +12 -0
  155. package/dist/validations/relations/bidirectional.d.ts.map +1 -0
  156. package/dist/validations/relations/index.d.ts +7 -0
  157. package/dist/validations/relations/index.d.ts.map +1 -0
  158. package/package.json +20 -8
  159. package/.eslintignore +0 -2
  160. package/.eslintrc.js +0 -4
  161. package/jest.config.js +0 -6
  162. package/lib/__tests__/index.test.js +0 -93
  163. package/lib/__tests__/lifecycles.test.js +0 -55
  164. package/lib/connection.js +0 -64
  165. package/lib/dialects/dialect.js +0 -63
  166. package/lib/dialects/index.js +0 -53
  167. package/lib/dialects/mysql/constants.js +0 -6
  168. package/lib/dialects/mysql/database-inspector.js +0 -37
  169. package/lib/dialects/mysql/index.js +0 -92
  170. package/lib/dialects/mysql/schema-inspector.js +0 -234
  171. package/lib/dialects/postgresql/index.js +0 -65
  172. package/lib/dialects/postgresql/schema-inspector.js +0 -283
  173. package/lib/dialects/sqlite/index.js +0 -87
  174. package/lib/dialects/sqlite/schema-inspector.js +0 -151
  175. package/lib/entity-manager/__tests__/relations-orderer.test.js +0 -186
  176. package/lib/entity-manager/__tests__/sort-connect-array.test.js +0 -79
  177. package/lib/entity-manager/entity-repository.js +0 -164
  178. package/lib/entity-manager/index.js +0 -1385
  179. package/lib/entity-manager/morph-relations.js +0 -63
  180. package/lib/entity-manager/regular-relations.js +0 -506
  181. package/lib/entity-manager/relations/cloning/regular-relations.js +0 -76
  182. package/lib/entity-manager/relations-orderer.js +0 -225
  183. package/lib/errors/database.js +0 -12
  184. package/lib/errors/index.js +0 -17
  185. package/lib/errors/invalid-date.js +0 -14
  186. package/lib/errors/invalid-datetime.js +0 -14
  187. package/lib/errors/invalid-relation.js +0 -14
  188. package/lib/errors/invalid-time.js +0 -14
  189. package/lib/errors/not-null.js +0 -15
  190. package/lib/fields/biginteger.js +0 -17
  191. package/lib/fields/boolean.js +0 -39
  192. package/lib/fields/date.js +0 -16
  193. package/lib/fields/datetime.js +0 -19
  194. package/lib/fields/field.js +0 -17
  195. package/lib/fields/index.d.ts +0 -9
  196. package/lib/fields/index.js +0 -50
  197. package/lib/fields/json.js +0 -21
  198. package/lib/fields/number.js +0 -23
  199. package/lib/fields/shared/parsers.js +0 -71
  200. package/lib/fields/string.js +0 -17
  201. package/lib/fields/time.js +0 -17
  202. package/lib/fields/timestamp.js +0 -19
  203. package/lib/index.d.ts +0 -198
  204. package/lib/index.js +0 -129
  205. package/lib/lifecycles/index.d.ts +0 -51
  206. package/lib/lifecycles/index.js +0 -90
  207. package/lib/lifecycles/subscribers/index.d.ts +0 -11
  208. package/lib/lifecycles/subscribers/models-lifecycles.js +0 -19
  209. package/lib/lifecycles/subscribers/timestamps.js +0 -65
  210. package/lib/metadata/index.js +0 -244
  211. package/lib/metadata/relations.js +0 -578
  212. package/lib/migrations/index.d.ts +0 -9
  213. package/lib/migrations/index.js +0 -75
  214. package/lib/migrations/storage.js +0 -44
  215. package/lib/query/helpers/index.js +0 -11
  216. package/lib/query/helpers/join.js +0 -96
  217. package/lib/query/helpers/order-by.js +0 -70
  218. package/lib/query/helpers/populate/apply.js +0 -664
  219. package/lib/query/helpers/populate/index.js +0 -9
  220. package/lib/query/helpers/populate/process.js +0 -102
  221. package/lib/query/helpers/search.js +0 -84
  222. package/lib/query/helpers/streams/index.js +0 -5
  223. package/lib/query/helpers/streams/readable.js +0 -174
  224. package/lib/query/helpers/transform.js +0 -84
  225. package/lib/query/helpers/where.js +0 -365
  226. package/lib/query/index.js +0 -7
  227. package/lib/query/query-builder.js +0 -514
  228. package/lib/schema/__tests__/schema-diff.test.js +0 -231
  229. package/lib/schema/builder.js +0 -386
  230. package/lib/schema/diff.js +0 -399
  231. package/lib/schema/index.d.ts +0 -49
  232. package/lib/schema/index.js +0 -94
  233. package/lib/schema/schema.js +0 -202
  234. package/lib/schema/storage.js +0 -76
  235. package/lib/transaction-context.js +0 -68
  236. package/lib/types/index.d.ts +0 -6
  237. package/lib/types/index.js +0 -35
  238. package/lib/utils/content-types.js +0 -40
  239. package/lib/utils/knex.js +0 -22
  240. package/lib/validations/index.js +0 -20
  241. package/lib/validations/relations/bidirectional.js +0 -89
  242. package/lib/validations/relations/index.js +0 -14
@@ -0,0 +1,10 @@
1
+ import type { Database } from '..';
2
+ import type { Schema } from './types';
3
+ declare const _default: (db: Database) => {
4
+ read(): Promise<any>;
5
+ hashSchema(schema: Schema): string;
6
+ add(schema: Schema): Promise<void>;
7
+ clear(): Promise<void>;
8
+ };
9
+ export default _default;
10
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/schema/storage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AACnC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;6BAIlB,QAAQ;;uBAyCL,MAAM;gBAIP,MAAM;;;AA7C5B,wBAqEE"}
@@ -0,0 +1,103 @@
1
+ export interface Schema {
2
+ tables: Table[];
3
+ }
4
+ export interface Table {
5
+ name: string;
6
+ columns: Column[];
7
+ indexes: Index[];
8
+ foreignKeys: ForeignKey[];
9
+ }
10
+ export interface Column {
11
+ type: string;
12
+ name: string;
13
+ args?: unknown[];
14
+ defaultTo?: any;
15
+ notNullable?: boolean | null;
16
+ unsigned?: boolean;
17
+ unique?: boolean;
18
+ primary?: boolean;
19
+ }
20
+ export type IndexType = 'primary' | 'unique';
21
+ export interface Index {
22
+ columns: string[];
23
+ name: string;
24
+ type?: IndexType;
25
+ }
26
+ export interface ForeignKey {
27
+ name: string;
28
+ columns: string[];
29
+ referencedColumns: string[];
30
+ referencedTable: string;
31
+ onUpdate?: string | null;
32
+ onDelete?: string | null;
33
+ }
34
+ export interface IndexDiff {
35
+ status: 'CHANGED' | 'UNCHANGED';
36
+ diff: {
37
+ name: string;
38
+ object: Index;
39
+ };
40
+ }
41
+ export interface ColumnDiff {
42
+ status: 'CHANGED' | 'UNCHANGED';
43
+ diff: {
44
+ name: string;
45
+ object: Column;
46
+ };
47
+ }
48
+ export interface ColumnsDiff {
49
+ status: 'CHANGED' | 'UNCHANGED';
50
+ diff: {
51
+ added: Column[];
52
+ removed: Column[];
53
+ updated: ColumnDiff['diff'][];
54
+ unchanged: Column[];
55
+ };
56
+ }
57
+ export interface ForeignKeyDiff {
58
+ status: 'CHANGED' | 'UNCHANGED';
59
+ diff: {
60
+ name: string;
61
+ object: ForeignKey;
62
+ };
63
+ }
64
+ export interface ForeignKeysDiff {
65
+ status: 'CHANGED' | 'UNCHANGED';
66
+ diff: {
67
+ added: ForeignKey[];
68
+ updated: ForeignKeyDiff['diff'][];
69
+ unchanged: ForeignKey[];
70
+ removed: ForeignKey[];
71
+ };
72
+ }
73
+ export interface IndexesDiff {
74
+ status: 'CHANGED' | 'UNCHANGED';
75
+ diff: {
76
+ added: Index[];
77
+ updated: IndexDiff['diff'][];
78
+ unchanged: Index[];
79
+ removed: Index[];
80
+ };
81
+ }
82
+ export interface TableDiff {
83
+ status: 'CHANGED' | 'UNCHANGED';
84
+ diff: {
85
+ name: string;
86
+ indexes: IndexesDiff['diff'];
87
+ columns: ColumnsDiff['diff'];
88
+ foreignKeys: ForeignKeysDiff['diff'];
89
+ };
90
+ }
91
+ export interface TablesDiff {
92
+ added: Table[];
93
+ removed: Table[];
94
+ updated: Array<TableDiff['diff']>;
95
+ unchanged: Table[];
96
+ }
97
+ export interface SchemaDiff {
98
+ status: 'CHANGED' | 'UNCHANGED';
99
+ diff: {
100
+ tables: TablesDiff;
101
+ };
102
+ }
103
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/schema/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { Knex } from 'knex';
2
+ export type Callback = (...args: any[]) => Promise<any> | any;
3
+ export interface TransactionObject {
4
+ commit: () => Promise<void>;
5
+ rollback: () => Promise<void>;
6
+ get: () => Knex.Transaction;
7
+ }
8
+ export interface Store {
9
+ trx: Knex.Transaction | null;
10
+ commitCallbacks: Callback[];
11
+ rollbackCallbacks: Callback[];
12
+ }
13
+ declare const transactionCtx: {
14
+ run<TCallback extends Callback>(store: Knex.Transaction, cb: TCallback): Promise<ReturnType<TCallback>>;
15
+ get(): Knex.Transaction<any, any[]> | null | undefined;
16
+ commit(trx: Knex.Transaction): Promise<void>;
17
+ rollback(trx: Knex.Transaction): Promise<void>;
18
+ onCommit(cb: Callback): void;
19
+ onRollback(cb: Callback): void;
20
+ };
21
+ export { transactionCtx };
22
+ //# sourceMappingURL=transaction-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction-context.d.ts","sourceRoot":"","sources":["../src/transaction-context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AAE9D,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,GAAG,EAAE,MAAM,IAAI,CAAC,WAAW,CAAC;CAC7B;AACD,MAAM,WAAW,KAAK;IACpB,GAAG,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC7B,eAAe,EAAE,QAAQ,EAAE,CAAC;IAC5B,iBAAiB,EAAE,QAAQ,EAAE,CAAC;CAC/B;AAID,QAAA,MAAM,cAAc;2CAC2B,KAAK,WAAW;;gBAY3C,KAAK,WAAW;kBAoBd,KAAK,WAAW;iBAoBvB,QAAQ;mBAON,QAAQ;CAMxB,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,169 @@
1
+ import type { Action, SubscriberFn } from '../lifecycles';
2
+ import type { ForeignKey, Index } from '../schema/types';
3
+ export type ID = string | number;
4
+ export interface ColumnInfo {
5
+ unsigned?: boolean;
6
+ defaultTo?: unknown;
7
+ }
8
+ export type Attribute = ScalarAttribute | RelationalAttribute;
9
+ export type RelationalAttribute = Relation.OneToOne | Relation.OneToMany | Relation.ManyToOne | Relation.ManyToMany | Relation.MorphMany | Relation.MorphOne | Relation.MorphToOne | Relation.MorphToMany;
10
+ export interface BasAttribute {
11
+ type: string;
12
+ columnName?: string;
13
+ default?: any;
14
+ column?: ColumnInfo;
15
+ required?: boolean;
16
+ unique?: boolean;
17
+ component?: string;
18
+ repeatable?: boolean;
19
+ columnType?: {
20
+ type: string;
21
+ args: unknown[];
22
+ };
23
+ searchable?: boolean;
24
+ }
25
+ export interface ScalarAttribute extends BasAttribute {
26
+ type: 'increments' | 'password' | 'email' | 'string' | 'enumeration' | 'uid' | 'richtext' | 'text' | 'json' | 'integer' | 'biginteger' | 'float' | 'decimal' | 'boolean' | 'date' | 'time' | 'datetime' | 'timestamp' | 'blocks';
27
+ }
28
+ export interface JoinColumn {
29
+ name: string;
30
+ referencedColumn: string;
31
+ referencedTable?: string;
32
+ }
33
+ export interface BaseJoinTable {
34
+ name: string;
35
+ joinColumn: JoinColumn;
36
+ orderBy?: Record<string, 'asc' | 'desc'>;
37
+ on?: Record<string, unknown>;
38
+ pivotColumns: string[];
39
+ inverseJoinColumn: {
40
+ name: string;
41
+ referencedColumn: string;
42
+ };
43
+ }
44
+ export interface JoinTable extends BaseJoinTable {
45
+ orderColumnName?: string;
46
+ inverseOrderColumnName?: string;
47
+ }
48
+ export interface OrderedJoinTable extends BaseJoinTable {
49
+ orderColumnName: string;
50
+ inverseOrderColumnName: string;
51
+ }
52
+ export declare namespace Relation {
53
+ export type Owner = {
54
+ inversedBy: string;
55
+ };
56
+ export type WithTarget = {
57
+ target: string;
58
+ };
59
+ export type Bidirectional = OneToOne | OneToMany | ManyToOne | ManyToMany;
60
+ type BaseBidirectional = {
61
+ type: 'relation';
62
+ relation: 'oneToOne' | 'oneToMany' | 'manyToOne' | 'manyToMany';
63
+ target: string;
64
+ inversedBy?: string;
65
+ mappedBy?: string;
66
+ joinTable: BidirectionalAttributeJoinTable;
67
+ };
68
+ export type OneToOne = BaseBidirectional & {
69
+ relation: 'oneToOne';
70
+ useJoinTable?: boolean;
71
+ joinTable?: JoinTable;
72
+ joinColumn?: JoinColumn;
73
+ owner?: boolean;
74
+ };
75
+ export type OneToMany = BaseBidirectional & {
76
+ relation: 'oneToMany';
77
+ joinTable: OrderedJoinTable;
78
+ joinColumn?: JoinColumn;
79
+ owner?: boolean;
80
+ };
81
+ export type ManyToOne = BaseBidirectional & {
82
+ relation: 'manyToOne';
83
+ useJoinTable?: boolean;
84
+ joinTable?: JoinTable;
85
+ joinColumn?: JoinColumn;
86
+ owner?: boolean;
87
+ };
88
+ export type ManyToMany = BaseBidirectional & {
89
+ relation: 'manyToMany';
90
+ joinTable: OrderedJoinTable;
91
+ };
92
+ export type Morph = MorphMany | MorphOne | MorphToOne | MorphToMany;
93
+ export type MorphMany = {
94
+ type: 'relation';
95
+ relation: 'morphMany';
96
+ target: string;
97
+ morphBy: string;
98
+ joinTable: MorphJoinTable;
99
+ };
100
+ export type MorphOne = {
101
+ type: 'relation';
102
+ relation: 'morphOne';
103
+ target: string;
104
+ morphBy: string;
105
+ };
106
+ export type MorphToOne = {
107
+ type: 'relation';
108
+ relation: 'morphToOne';
109
+ owner?: boolean;
110
+ morphColumn: MorphColumn;
111
+ };
112
+ export type MorphToMany = {
113
+ type: 'relation';
114
+ relation: 'morphToMany';
115
+ joinTable: MorphJoinTable;
116
+ };
117
+ export {};
118
+ }
119
+ export interface BidirectionalAttributeJoinTable extends JoinTable {
120
+ orderColumnName: string;
121
+ inverseOrderColumnName: string;
122
+ }
123
+ export interface MorphColumn {
124
+ typeField?: string;
125
+ typeColumn: {
126
+ name: string;
127
+ };
128
+ idColumn: {
129
+ name: string;
130
+ referencedColumn: string;
131
+ };
132
+ }
133
+ export interface MorphJoinTable {
134
+ name: string;
135
+ joinColumn: JoinColumn;
136
+ orderBy?: Record<string, 'asc' | 'desc'>;
137
+ on?: Record<string, unknown>;
138
+ pivotColumns: string[];
139
+ morphColumn: MorphColumn;
140
+ }
141
+ export interface BaseRelationalAttribute {
142
+ type: 'relation';
143
+ target: string;
144
+ useJoinTable?: boolean;
145
+ joinTable?: JoinTable | MorphJoinTable;
146
+ morphBy?: string;
147
+ inversedBy?: string;
148
+ owner?: boolean;
149
+ morphColumn?: MorphColumn;
150
+ joinColumn?: JoinColumn;
151
+ component?: string;
152
+ }
153
+ export interface MorphRelationalAttribute extends BaseRelationalAttribute {
154
+ relation: 'morphMany' | 'morphOne' | 'morphToOne' | 'morphToMany';
155
+ morphColumn: MorphColumn;
156
+ morphBy: string;
157
+ joinTable: MorphJoinTable;
158
+ target: string;
159
+ }
160
+ export interface Model {
161
+ uid: string;
162
+ tableName: string;
163
+ singularName: string;
164
+ attributes: Record<string, Attribute>;
165
+ indexes?: Index[];
166
+ foreignKeys?: ForeignKey[];
167
+ lifecycles?: Partial<Record<Action, SubscriberFn>>;
168
+ }
169
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { Model } from '../types';
2
+ export interface Attribute {
3
+ type: string;
4
+ multiple?: boolean;
5
+ }
6
+ export interface ContentType {
7
+ uid: string;
8
+ modelName: string;
9
+ collectionName: string;
10
+ attributes: Record<string, Attribute>;
11
+ }
12
+ export declare const transformContentTypes: (contentTypes: ContentType[]) => Model[];
13
+ //# sourceMappingURL=content-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-types.d.ts","sourceRoot":"","sources":["../../src/utils/content-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACvC;AAmBD,eAAO,MAAM,qBAAqB,iBAAkB,WAAW,EAAE,KAAG,KAAK,EAkBxE,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { Knex } from 'knex';
2
+ import type { Database } from '..';
3
+ /**
4
+ * @internal
5
+ */
6
+ export declare function isKnexQuery(value: unknown): value is Knex.Raw | Knex.QueryBuilder;
7
+ /**
8
+ * Adds the name of the schema to the table name if the schema was defined by the user.
9
+ * Users can set the db schema only for Postgres in strapi database config.
10
+ */
11
+ export declare const addSchema: (db: Database, tableName: string) => string;
12
+ //# sourceMappingURL=knex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knex.d.ts","sourceRoot":"","sources":["../../src/utils/knex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAKjC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAEnC;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,YAAY,CAEjF;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS,OAAQ,QAAQ,aAAa,MAAM,KAAG,MAG3D,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { Attribute, ScalarAttribute, RelationalAttribute } from '../types';
2
+ export declare const isString: (type: string) => boolean;
3
+ export declare const isNumber: (type: string) => boolean;
4
+ export declare const isScalar: (type: string) => boolean;
5
+ export declare const isComponent: (type: string) => boolean;
6
+ export declare const isDynamicZone: (type: string) => boolean;
7
+ export declare const isRelation: (type: string) => boolean;
8
+ export declare const isScalarAttribute: (attribute: Attribute) => attribute is ScalarAttribute;
9
+ export declare const isRelationalAttribute: (attribute: Attribute) => attribute is RelationalAttribute;
10
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AA2BhF,eAAO,MAAM,QAAQ,SAAU,MAAM,YAAgC,CAAC;AACtE,eAAO,MAAM,QAAQ,SAAU,MAAM,YAAgC,CAAC;AACtE,eAAO,MAAM,QAAQ,SAAU,MAAM,YAAgC,CAAC;AACtE,eAAO,MAAM,WAAW,SAAU,MAAM,YAAyB,CAAC;AAClE,eAAO,MAAM,aAAa,SAAU,MAAM,YAA2B,CAAC;AACtE,eAAO,MAAM,UAAU,SAAU,MAAM,YAAwB,CAAC;AAChE,eAAO,MAAM,iBAAiB,cAAe,SAAS,iCAC5B,CAAC;AAC3B,eAAO,MAAM,qBAAqB,cAAe,SAAS,qCAC9B,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { Database } from '..';
2
+ /**
3
+ * Validate if the database is in a valid state before starting the server.
4
+ */
5
+ export declare function validateDatabase(db: Database): Promise<void>;
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validations/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAEnC;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,iBAElD"}
@@ -0,0 +1,12 @@
1
+ import type { Database } from '../..';
2
+ /**
3
+ * Validates bidirectional relations before starting the server.
4
+ * - If both sides use inversedBy, one of the sides must switch to mappedBy.
5
+ * When this happens, two join tables exist in the database.
6
+ * This makes sure you switch the side which does not delete any data.
7
+ *
8
+ * @param {*} db
9
+ * @return {*}
10
+ */
11
+ export declare const validateBidirectionalRelations: (db: Database) => Promise<void>;
12
+ //# sourceMappingURL=bidirectional.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bidirectional.d.ts","sourceRoot":"","sources":["../../../src/validations/relations/bidirectional.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AA8CtC;;;;;;;;GAQG;AACH,eAAO,MAAM,8BAA8B,OAAc,QAAQ,kBA+BhE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { Database } from '../..';
2
+ /**
3
+ * Validates if relations data and tables are in a valid state before
4
+ * starting the server.
5
+ */
6
+ export declare const validateRelations: (db: Database) => Promise<void>;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/validations/relations/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEtC;;;GAGG;AACH,eAAO,MAAM,iBAAiB,OAAc,QAAQ,kBAEnD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strapi/database",
3
- "version": "4.14.3",
3
+ "version": "4.14.5",
4
4
  "description": "Strapi's database layer",
5
5
  "homepage": "https://strapi.io",
6
6
  "bugs": {
@@ -23,17 +23,24 @@
23
23
  "url": "https://strapi.io"
24
24
  }
25
25
  ],
26
- "main": "./lib/index.js",
27
- "directories": {
28
- "lib": "./lib"
29
- },
26
+ "main": "./dist/index.js",
27
+ "module": "./dist/index.mjs",
28
+ "source": "./src/index.ts",
29
+ "types": "./dist/index.d.ts",
30
+ "files": [
31
+ "./dist"
32
+ ],
30
33
  "scripts": {
34
+ "build": "pack-up build",
35
+ "clean": "run -T rimraf ./dist",
36
+ "lint": "run -T tsc --noEmit && run -T eslint .",
37
+ "prepublishOnly": "yarn clean && yarn build",
31
38
  "test:unit": "run -T jest",
32
39
  "test:unit:watch": "run -T jest --watch",
33
- "lint": "run -T eslint ."
40
+ "watch": "pack-up watch"
34
41
  },
35
42
  "dependencies": {
36
- "@strapi/utils": "4.14.3",
43
+ "@strapi/utils": "4.14.5",
37
44
  "date-fns": "2.30.0",
38
45
  "debug": "4.3.4",
39
46
  "fs-extra": "10.0.0",
@@ -42,9 +49,14 @@
42
49
  "semver": "7.5.4",
43
50
  "umzug": "3.2.1"
44
51
  },
52
+ "devDependencies": {
53
+ "@strapi/pack-up": "4.14.5",
54
+ "eslint-config-custom": "4.14.5",
55
+ "tsconfig": "4.14.5"
56
+ },
45
57
  "engines": {
46
58
  "node": ">=16.0.0 <=20.x.x",
47
59
  "npm": ">=6.0.0"
48
60
  },
49
- "gitHead": "f509e0b15d77e2475bdc1ada1b26dd0ba2b1dbca"
61
+ "gitHead": "a0400e4a0f47f8169b7ce31bc9087470c291209c"
50
62
  }
package/.eslintignore DELETED
@@ -1,2 +0,0 @@
1
- node_modules/
2
- .eslintrc.js
package/.eslintrc.js DELETED
@@ -1,4 +0,0 @@
1
- module.exports = {
2
- root: true,
3
- extends: ['custom/back'],
4
- };
package/jest.config.js DELETED
@@ -1,6 +0,0 @@
1
- 'use strict';
2
-
3
- module.exports = {
4
- preset: '../../../jest-preset.unit.js',
5
- displayName: 'Core database',
6
- };
@@ -1,93 +0,0 @@
1
- 'use strict';
2
-
3
- const { Database } = require('../index');
4
-
5
- jest.mock('../connection', () =>
6
- jest.fn(() => {
7
- const trx = {
8
- commit: jest.fn(),
9
- rollback: jest.fn(),
10
- };
11
- return {
12
- ...trx,
13
- transaction: jest.fn(async () => trx),
14
- };
15
- })
16
- );
17
-
18
- jest.mock('../dialects', () => ({
19
- getDialect: jest.fn(() => ({
20
- configure: jest.fn(),
21
- initialize: jest.fn(),
22
- })),
23
- }));
24
-
25
- jest.mock('../migrations', () => ({
26
- createMigrationsProvider: jest.fn(),
27
- }));
28
-
29
- const config = {
30
- models: [
31
- {
32
- tableName: 'strapi_core_store_settings',
33
- },
34
- ],
35
- connection: {
36
- client: 'postgres',
37
- connection: {
38
- database: 'strapi',
39
- user: 'strapi',
40
- password: 'strapi',
41
- port: 5432,
42
- host: 'localhost',
43
- },
44
- },
45
- };
46
-
47
- describe('Database', () => {
48
- describe('constructor', () => {
49
- it('should throw an error if no config is provided', async () => {
50
- expect(async () => Database.init()).rejects.toThrowError();
51
- });
52
-
53
- it('it should intialize if config is provided', async () => {
54
- expect(() => Database.init(config)).toBeDefined();
55
- });
56
- });
57
-
58
- describe('Transaction', () => {
59
- it('transaction should be defined', async () => {
60
- const db = await Database.init(config);
61
- expect(db.transaction).toBeDefined();
62
- });
63
-
64
- it('should return value if transaction is complete', async () => {
65
- const db = await Database.init(config);
66
- const result = await db.transaction(async () => 'test');
67
- expect(result).toBe('test');
68
- expect(db.connection.commit).toHaveBeenCalledTimes(1);
69
- });
70
-
71
- it('rollback is called incase of error', async () => {
72
- const db = await Database.init(config);
73
- try {
74
- await db.transaction(async () => {
75
- throw new Error('test');
76
- });
77
- } catch {
78
- /* ignore */
79
- }
80
- expect(db.connection.rollback).toHaveBeenCalledTimes(1);
81
- });
82
-
83
- it('should throw error', async () => {
84
- const db = await Database.init(config);
85
-
86
- expect(async () => {
87
- await db.transaction(async () => {
88
- throw new Error('test');
89
- });
90
- }).rejects.toThrowError('test');
91
- });
92
- });
93
- });
@@ -1,55 +0,0 @@
1
- 'use strict';
2
-
3
- const { createLifecyclesProvider } = require('../lifecycles');
4
-
5
- describe('LifecycleProvider', () => {
6
- describe('run', () => {
7
- /** @type {import("../lifecycles").LifecycleProvider} */
8
- let provider;
9
- const dbMetadataGetStub = jest.fn((uid) => ({ uid, name: 'TestModel' }));
10
-
11
- beforeEach(() => {
12
- const db = {
13
- metadata: {
14
- get: dbMetadataGetStub,
15
- },
16
- };
17
- provider = createLifecyclesProvider(db);
18
- provider.clear();
19
- });
20
-
21
- it('store state', async () => {
22
- const expectedState = new Date().toISOString();
23
-
24
- const subscriber = {
25
- async beforeEvent(event) {
26
- event.state = expectedState;
27
- },
28
- };
29
- provider.subscribe(subscriber);
30
-
31
- const stateBefore = await provider.run('beforeEvent', 'test-model', { id: 'instance-id' });
32
-
33
- expect(stateBefore.get(subscriber)).toEqual(expectedState);
34
- });
35
-
36
- it('use shared state', async () => {
37
- const expectedState = { value: new Date().toISOString() };
38
- let receivedState;
39
-
40
- provider.subscribe({
41
- async beforeEvent(event) {
42
- event.state.value = expectedState.value;
43
- },
44
- async afterEvent(event) {
45
- receivedState = event.state;
46
- },
47
- });
48
-
49
- const stateBefore = await provider.run('beforeEvent', 'test-model', { id: 'instance-id' });
50
- await provider.run('afterEvent', 'test-model', { id: 'instance-id' }, stateBefore);
51
-
52
- expect(receivedState).toEqual(expectedState);
53
- });
54
- });
55
- });