@strapi/database 4.20.5 → 5.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/connection.d.ts +2 -1
- package/dist/connection.d.ts.map +1 -1
- package/dist/dialects/dialect.d.ts +1 -2
- package/dist/dialects/dialect.d.ts.map +1 -1
- package/dist/dialects/index.d.ts.map +1 -1
- package/dist/dialects/mysql/database-inspector.d.ts +1 -1
- package/dist/dialects/mysql/database-inspector.d.ts.map +1 -1
- package/dist/dialects/mysql/index.d.ts +1 -2
- package/dist/dialects/mysql/index.d.ts.map +1 -1
- package/dist/dialects/postgresql/index.d.ts +1 -1
- package/dist/dialects/postgresql/index.d.ts.map +1 -1
- package/dist/dialects/sqlite/index.d.ts +1 -1
- package/dist/dialects/sqlite/index.d.ts.map +1 -1
- package/dist/entity-manager/entity-repository.d.ts.map +1 -1
- package/dist/entity-manager/index.d.ts.map +1 -1
- package/dist/entity-manager/regular-relations.d.ts +6 -31
- package/dist/entity-manager/regular-relations.d.ts.map +1 -1
- package/dist/entity-manager/types.d.ts +8 -26
- package/dist/entity-manager/types.d.ts.map +1 -1
- package/dist/index.d.ts +13 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +518 -645
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +514 -639
- package/dist/index.mjs.map +1 -1
- package/dist/metadata/index.d.ts +2 -2
- package/dist/metadata/index.d.ts.map +1 -1
- package/dist/metadata/metadata.d.ts +1 -4
- package/dist/metadata/metadata.d.ts.map +1 -1
- package/dist/metadata/relations.d.ts +0 -1
- package/dist/metadata/relations.d.ts.map +1 -1
- package/dist/migrations/common.d.ts +20 -0
- package/dist/migrations/common.d.ts.map +1 -0
- package/dist/migrations/index.d.ts +2 -9
- package/dist/migrations/index.d.ts.map +1 -1
- package/dist/migrations/internal-migrations/index.d.ts +12 -0
- package/dist/migrations/internal-migrations/index.d.ts.map +1 -0
- package/dist/migrations/internal.d.ts +4 -0
- package/dist/migrations/internal.d.ts.map +1 -0
- package/dist/migrations/storage.d.ts +1 -1
- package/dist/migrations/storage.d.ts.map +1 -1
- package/dist/migrations/users.d.ts +4 -0
- package/dist/migrations/users.d.ts.map +1 -0
- package/dist/schema/diff.d.ts.map +1 -1
- package/dist/schema/index.d.ts +2 -0
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/schema.d.ts.map +1 -1
- package/dist/types/index.d.ts +9 -5
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/identifiers/index.d.ts +48 -0
- package/dist/utils/identifiers/index.d.ts.map +1 -0
- package/dist/utils/identifiers/shortener.d.ts +73 -0
- package/dist/utils/identifiers/shortener.d.ts.map +1 -0
- package/dist/utils/types.d.ts +0 -2
- package/dist/utils/types.d.ts.map +1 -1
- package/dist/validations/relations/bidirectional.d.ts.map +1 -1
- package/package.json +9 -9
- package/dist/entity-manager/relations/cloning/regular-relations.d.ts +0 -17
- package/dist/entity-manager/relations/cloning/regular-relations.d.ts.map +0 -1
- package/dist/utils/content-types.d.ts +0 -13
- package/dist/utils/content-types.d.ts.map +0 -1
package/dist/connection.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import knex from 'knex';
|
|
1
2
|
import type { Knex } from 'knex';
|
|
2
|
-
export declare const createConnection: (
|
|
3
|
+
export declare const createConnection: (userConfig: Knex.Config, strapiConfig?: Partial<Knex.Config>) => knex.Knex<any, unknown[]>;
|
|
3
4
|
//# sourceMappingURL=connection.d.ts.map
|
package/dist/connection.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAYjC,eAAO,MAAM,gBAAgB,eAAgB,KAAK,MAAM,iBAAiB,QAAQ,KAAK,MAAM,CAAC,8BA8B5F,CAAC"}
|
|
@@ -9,13 +9,12 @@ export default class Dialect {
|
|
|
9
9
|
client: string;
|
|
10
10
|
constructor(db: Database, client: string);
|
|
11
11
|
configure(): void;
|
|
12
|
-
initialize(): void
|
|
12
|
+
initialize(_nativeConnection?: unknown): Promise<void>;
|
|
13
13
|
getSqlType(type: unknown): unknown;
|
|
14
14
|
canAlterConstraints(): boolean;
|
|
15
15
|
usesForeignKeys(): boolean;
|
|
16
16
|
useReturning(): boolean;
|
|
17
17
|
supportsUnsigned(): boolean;
|
|
18
|
-
supportsWindowFunctions(): boolean;
|
|
19
18
|
supportsOperator(operator?: string): boolean;
|
|
20
19
|
startSchemaUpdate(): Promise<void>;
|
|
21
20
|
endSchemaUpdate(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialect.d.ts","sourceRoot":"","sources":["../../src/dialects/dialect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AACnC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,MAAM,WAAW,eAAe;IAC9B,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,CAAC,OAAO,OAAO,OAAO;IAC1B,EAAE,EAAE,QAAQ,CAAC;IAEb,eAAe,EAAE,eAAe,CAAyB;IAEzD,MAAM,EAAE,MAAM,CAAC;gBAEH,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM;IAKxC,SAAS;
|
|
1
|
+
{"version":3,"file":"dialect.d.ts","sourceRoot":"","sources":["../../src/dialects/dialect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AACnC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,MAAM,WAAW,eAAe;IAC9B,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,CAAC,OAAO,OAAO,OAAO;IAC1B,EAAE,EAAE,QAAQ,CAAC;IAEb,eAAe,EAAE,eAAe,CAAyB;IAEzD,MAAM,EAAE,MAAM,CAAC;gBAEH,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM;IAKxC,SAAS;IAGH,UAAU,CAAC,iBAAiB,CAAC,EAAE,OAAO;IAI5C,UAAU,CAAC,IAAI,EAAE,OAAO;IAIxB,mBAAmB;IAInB,eAAe;IAIf,YAAY;IAIZ,gBAAgB;IAIhB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO;IAKtC,iBAAiB;IAIjB,eAAe;IAIrB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE;IAQlD,gBAAgB;CAGjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dialects/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AACnC,OAAO,OAAO,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dialects/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AACnC,OAAO,OAAO,MAAM,WAAW,CAAC;AAqChC,QAAA,MAAM,UAAU,OAAQ,QAAQ,YAQ/B,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -7,6 +7,6 @@ export interface Information {
|
|
|
7
7
|
export default class MysqlDatabaseInspector {
|
|
8
8
|
db: Database;
|
|
9
9
|
constructor(db: Database);
|
|
10
|
-
getInformation(): Promise<Information>;
|
|
10
|
+
getInformation(nativeConnection?: unknown): Promise<Information>;
|
|
11
11
|
}
|
|
12
12
|
//# sourceMappingURL=database-inspector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database-inspector.d.ts","sourceRoot":"","sources":["../../../src/dialects/mysql/database-inspector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEtC,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,OAAO,OAAO,GAAG,OAAO,KAAK,GAAG,IAAI,CAAC;IAC/C,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAMD,MAAM,CAAC,OAAO,OAAO,sBAAsB;IACzC,EAAE,EAAE,QAAQ,CAAC;gBAED,EAAE,EAAE,QAAQ;IAIlB,cAAc,
|
|
1
|
+
{"version":3,"file":"database-inspector.d.ts","sourceRoot":"","sources":["../../../src/dialects/mysql/database-inspector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEtC,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,OAAO,OAAO,GAAG,OAAO,KAAK,GAAG,IAAI,CAAC;IAC/C,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAMD,MAAM,CAAC,OAAO,OAAO,sBAAsB;IACzC,EAAE,EAAE,QAAQ,CAAC;gBAED,EAAE,EAAE,QAAQ;IAIlB,cAAc,CAAC,gBAAgB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC;CAuBvE"}
|
|
@@ -9,11 +9,10 @@ export default class MysqlDialect extends Dialect {
|
|
|
9
9
|
info: Information | null;
|
|
10
10
|
constructor(db: Database);
|
|
11
11
|
configure(): void;
|
|
12
|
-
initialize(): Promise<void>;
|
|
12
|
+
initialize(nativeConnection: unknown): Promise<void>;
|
|
13
13
|
startSchemaUpdate(): Promise<void>;
|
|
14
14
|
endSchemaUpdate(): Promise<void>;
|
|
15
15
|
supportsUnsigned(): boolean;
|
|
16
|
-
supportsWindowFunctions(): boolean;
|
|
17
16
|
usesForeignKeys(): boolean;
|
|
18
17
|
transformErrors(error: Error): void;
|
|
19
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dialects/mysql/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dialects/mysql/index.ts"],"names":[],"mappings":"AAEA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,oBAAoB,MAAM,oBAAoB,CAAC;AACtD,OAAO,sBAAsB,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,OAAO;IAC/C,eAAe,EAAE,oBAAoB,CAAC;IAEtC,iBAAiB,EAAE,sBAAsB,CAAC;IAE1C,IAAI,EAAE,WAAW,GAAG,IAAI,CAAQ;gBAEpB,EAAE,EAAE,QAAQ;IAOxB,SAAS;IA+BH,UAAU,CAAC,gBAAgB,EAAE,OAAO;IAoBpC,iBAAiB;IASjB,eAAe;IAIrB,gBAAgB;IAIhB,eAAe;IAIf,eAAe,CAAC,KAAK,EAAE,KAAK;CAG7B"}
|
|
@@ -6,7 +6,7 @@ export default class PostgresDialect extends Dialect {
|
|
|
6
6
|
schemaInspector: PostgresqlSchemaInspector;
|
|
7
7
|
constructor(db: Database);
|
|
8
8
|
useReturning(): boolean;
|
|
9
|
-
initialize(): Promise<void>;
|
|
9
|
+
initialize(nativeConnection: unknown): Promise<void>;
|
|
10
10
|
usesForeignKeys(): boolean;
|
|
11
11
|
getSqlType(type: string): string;
|
|
12
12
|
transformErrors(error: NodeJS.ErrnoException): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dialects/postgresql/index.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,yBAAyB,MAAM,oBAAoB,CAAC;AAE3D,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,OAAO;IAClD,eAAe,EAAE,yBAAyB,CAAC;gBAE/B,EAAE,EAAE,QAAQ;IAMxB,YAAY;IAIN,UAAU;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dialects/postgresql/index.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,yBAAyB,MAAM,oBAAoB,CAAC;AAE3D,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,OAAO;IAClD,eAAe,EAAE,yBAAyB,CAAC;gBAE/B,EAAE,EAAE,QAAQ;IAMxB,YAAY;IAIN,UAAU,CAAC,gBAAgB,EAAE,OAAO;IA4B1C,eAAe;IAIf,UAAU,CAAC,IAAI,EAAE,MAAM;IAWvB,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,cAAc;CAY7C"}
|
|
@@ -7,7 +7,7 @@ export default class SqliteDialect extends Dialect {
|
|
|
7
7
|
constructor(db: Database);
|
|
8
8
|
configure(): void;
|
|
9
9
|
useReturning(): boolean;
|
|
10
|
-
initialize(): Promise<void>;
|
|
10
|
+
initialize(nativeConnection: unknown): Promise<void>;
|
|
11
11
|
canAlterConstraints(): boolean;
|
|
12
12
|
getSqlType(type: string): string;
|
|
13
13
|
supportsOperator(operator: string): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dialects/sqlite/index.ts"],"names":[],"mappings":";AAKA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,qBAAqB,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAItC,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,OAAO;IAChD,eAAe,EAAE,qBAAqB,CAAC;gBAE3B,EAAE,EAAE,QAAQ;IAMxB,SAAS;IAWT,YAAY;IAIN,UAAU;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dialects/sqlite/index.ts"],"names":[],"mappings":";AAKA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,qBAAqB,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAItC,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,OAAO;IAChD,eAAe,EAAE,qBAAqB,CAAC;gBAE3B,EAAE,EAAE,QAAQ;IAMxB,SAAS;IAWT,YAAY;IAIN,UAAU,CAAC,gBAAgB,EAAE,OAAO;IAI1C,mBAAmB;IAInB,UAAU,CAAC,IAAI,EAAE,MAAM;IAkBvB,gBAAgB,CAAC,QAAQ,EAAE,MAAM;IAI3B,iBAAiB;IAIjB,eAAe;IAIrB,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,cAAc;IAW5C,gBAAgB;CAGjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-repository.d.ts","sourceRoot":"","sources":["../../src/entity-manager/entity-repository.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AACnC,OAAO,KAAK,EAAE,UAAU,EAAU,MAAM,SAAS,CAAC;AAkClD,eAAO,MAAM,gBAAgB,QAAS,MAAM,MAAM,QAAQ,KAAG,
|
|
1
|
+
{"version":3,"file":"entity-repository.d.ts","sourceRoot":"","sources":["../../src/entity-manager/entity-repository.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AACnC,OAAO,KAAK,EAAE,UAAU,EAAU,MAAM,SAAS,CAAC;AAkClD,eAAO,MAAM,gBAAgB,QAAS,MAAM,MAAM,QAAQ,KAAG,UA8H5D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/entity-manager/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/entity-manager/index.ts"],"names":[],"mappings":"AA0CA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAGnC,OAAO,EAAE,aAAa,EAAsB,MAAM,SAAS,CAAC;AAE5D,cAAc,SAAS,CAAC;AAuLxB,eAAO,MAAM,mBAAmB,OAAQ,QAAQ,KAAG,aAwkClD,CAAC"}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
/// <reference types="node" />
|
|
4
|
+
/// <reference types="node" />
|
|
5
|
+
/// <reference types="node" />
|
|
1
6
|
import type { Knex } from 'knex';
|
|
2
7
|
import type { Database } from '..';
|
|
3
8
|
import type { ID, Relation } from '../types';
|
|
@@ -49,35 +54,5 @@ declare const cleanOrderColumns: ({ id, attribute, db, inverseRelIds, transactio
|
|
|
49
54
|
inverseRelIds?: ID[] | undefined;
|
|
50
55
|
transaction?: Knex.Transaction<any, any[]> | undefined;
|
|
51
56
|
}) => Promise<[void, void] | undefined>;
|
|
52
|
-
|
|
53
|
-
* Use this when a relation is added or removed and its inverse order column
|
|
54
|
-
* needs to be re-calculated
|
|
55
|
-
*
|
|
56
|
-
* Example: In this following table
|
|
57
|
-
*
|
|
58
|
-
* | joinColumn | inverseJoinColumn | order | inverseOrder |
|
|
59
|
-
* | --------------- | -------- | ----------- | ------------------ |
|
|
60
|
-
* | 1 | 1 | 1 | 1 |
|
|
61
|
-
* | 2 | 1 | 3 | 2 |
|
|
62
|
-
* | 2 | 2 | 3 | 1 |
|
|
63
|
-
*
|
|
64
|
-
* You add a new relation { joinColumn: 1, inverseJoinColumn: 2 }
|
|
65
|
-
*
|
|
66
|
-
* | joinColumn | inverseJoinColumn | order | inverseOrder |
|
|
67
|
-
* | --------------- | -------- | ----------- | ------------------ |
|
|
68
|
-
* | 1 | 1 | 1 | 1 |
|
|
69
|
-
* | 1 | 2 | 2 | 1 | <- inverseOrder should be 2
|
|
70
|
-
* | 2 | 1 | 3 | 2 |
|
|
71
|
-
* | 2 | 2 | 3 | 1 |
|
|
72
|
-
*
|
|
73
|
-
* This function would make such update, so all inverse order columns related
|
|
74
|
-
* to the given id (1 in this example) are following a 1, 2, 3 sequence, without gap.
|
|
75
|
-
*
|
|
76
|
-
*/
|
|
77
|
-
declare const cleanInverseOrderColumn: ({ id, attribute, trx, }: {
|
|
78
|
-
id: ID;
|
|
79
|
-
attribute: Relation.Bidirectional;
|
|
80
|
-
trx: Knex.Transaction;
|
|
81
|
-
}) => Promise<void>;
|
|
82
|
-
export { deletePreviousOneToAnyRelations, deletePreviousAnyToOneRelations, deleteRelations, cleanOrderColumns, cleanInverseOrderColumn, };
|
|
57
|
+
export { deletePreviousOneToAnyRelations, deletePreviousAnyToOneRelations, deleteRelations, cleanOrderColumns, };
|
|
83
58
|
//# sourceMappingURL=regular-relations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"regular-relations.d.ts","sourceRoot":"","sources":["../../src/entity-manager/regular-relations.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"regular-relations.d.ts","sourceRoot":"","sources":["../../src/entity-manager/regular-relations.ts"],"names":[],"mappings":";;;;;AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAYjC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AACnC,OAAO,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAS,MAAM,UAAU,CAAC;AAEpD,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAU,IAAI,CAAC;QACb,UAAU,kBAAkB;YAC1B,WAAW,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SAC3C;KACF;CACF;AAgCD;;GAEG;AACH,QAAA,MAAM,+BAA+B;QAO/B,EAAE;eACK,SAAS,aAAa;iBACpB,EAAE,EAAE;QACb,QAAQ;;mBAwBb,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,+BAA+B;QAO/B,EAAE;eACK,SAAS,aAAa;gBACrB,EAAE;QACV,QAAQ;;mBAoDb,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,eAAe;QAQf,EAAE;eACK,SAAS,aAAa;QAC7B,QAAQ;;;;mBA0Db,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,iBAAiB;;eAQV,SAAS,aAAa;QAC7B,QAAQ;;;uCAoIb,CAAC;AAEF,OAAO,EACL,+BAA+B,EAC/B,+BAA+B,EAC/B,eAAe,EACf,iBAAiB,GAClB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Knex } from 'knex';
|
|
2
|
-
import type { ID } from '../types';
|
|
2
|
+
import type { CountResult, ID } from '../types';
|
|
3
3
|
import { QueryBuilder } from '../query/query-builder';
|
|
4
4
|
export type Data = Record<string, unknown>;
|
|
5
5
|
export type Params = {
|
|
@@ -16,7 +16,7 @@ export type Params = {
|
|
|
16
16
|
offset?: number;
|
|
17
17
|
count?: boolean;
|
|
18
18
|
};
|
|
19
|
-
type FindOneParams = Pick<Params, 'where' | 'select' | 'populate' | '_q' | 'orderBy'>;
|
|
19
|
+
export type FindOneParams = Pick<Params, 'where' | 'select' | 'populate' | '_q' | 'orderBy'>;
|
|
20
20
|
export interface Repository {
|
|
21
21
|
findOne(params?: FindOneParams): Promise<any>;
|
|
22
22
|
findMany(params?: Params): Promise<any[]>;
|
|
@@ -31,24 +31,17 @@ export interface Repository {
|
|
|
31
31
|
};
|
|
32
32
|
}>;
|
|
33
33
|
create(params: Params): Promise<any>;
|
|
34
|
-
createMany(params: Params): Promise<{
|
|
35
|
-
count: number;
|
|
34
|
+
createMany(params: Params): Promise<CountResult & {
|
|
36
35
|
ids: ID[];
|
|
37
36
|
}>;
|
|
38
37
|
update(params: Params): Promise<any>;
|
|
39
|
-
updateMany(params: Params): Promise<
|
|
40
|
-
count: number;
|
|
41
|
-
}>;
|
|
42
|
-
clone(id: ID, params: Params): Promise<any>;
|
|
38
|
+
updateMany(params: Params): Promise<CountResult>;
|
|
43
39
|
delete(params: Params): Promise<any>;
|
|
44
|
-
deleteMany(params?: Params): Promise<
|
|
45
|
-
count: number;
|
|
46
|
-
}>;
|
|
40
|
+
deleteMany(params?: Params): Promise<CountResult>;
|
|
47
41
|
count(params?: Params): Promise<number>;
|
|
48
42
|
attachRelations(id: ID, data: Data): Promise<any>;
|
|
49
43
|
updateRelations(id: ID, data: Data): Promise<any>;
|
|
50
44
|
deleteRelations(id: ID): Promise<any>;
|
|
51
|
-
cloneRelations(targetId: ID, sourceId: ID, params: Params): Promise<any>;
|
|
52
45
|
populate(entity: Entity, populate: Params['populate']): Promise<any>;
|
|
53
46
|
load(entity: any, field: string | string[], populate?: Params['populate']): Promise<any>;
|
|
54
47
|
loadPages<TField extends string>(entity: any, field: TField | TField[], populate?: Params['populate']): Promise<any>;
|
|
@@ -62,19 +55,13 @@ export interface EntityManager {
|
|
|
62
55
|
findMany(uid: string, params: Params): Promise<any[]>;
|
|
63
56
|
count(uid: string, params?: Params): Promise<number>;
|
|
64
57
|
create(uid: string, params: Params): Promise<any>;
|
|
65
|
-
createMany(uid: string, params: Params): Promise<{
|
|
66
|
-
count: number;
|
|
58
|
+
createMany(uid: string, params: Params): Promise<CountResult & {
|
|
67
59
|
ids: ID[];
|
|
68
60
|
}>;
|
|
69
61
|
update(uid: string, params: Params): Promise<any>;
|
|
70
|
-
updateMany(uid: string, params: Params): Promise<
|
|
71
|
-
count: number;
|
|
72
|
-
}>;
|
|
62
|
+
updateMany(uid: string, params: Params): Promise<CountResult>;
|
|
73
63
|
delete(uid: string, params: Params): Promise<any>;
|
|
74
|
-
deleteMany(uid: string, params: Params): Promise<
|
|
75
|
-
count: number;
|
|
76
|
-
}>;
|
|
77
|
-
clone(uid: string, cloneId: ID, params: Params): Promise<any>;
|
|
64
|
+
deleteMany(uid: string, params: Params): Promise<CountResult>;
|
|
78
65
|
populate(uid: string, entity: Entity, populate: Params['populate']): Promise<Entity>;
|
|
79
66
|
load(uid: string, entity: Entity, field: string | string[], populate?: Params['populate']): Promise<any>;
|
|
80
67
|
attachRelations(uid: string, id: ID, data: any, options?: {
|
|
@@ -86,12 +73,7 @@ export interface EntityManager {
|
|
|
86
73
|
deleteRelations(uid: string, id: ID, options?: {
|
|
87
74
|
transaction?: Knex.Transaction;
|
|
88
75
|
}): Promise<void>;
|
|
89
|
-
cloneRelations(uid: string, targetId: ID, sourceId: ID, data: any, options?: {
|
|
90
|
-
cloneAttrs?: string[];
|
|
91
|
-
transaction?: Knex.Transaction;
|
|
92
|
-
}): Promise<any>;
|
|
93
76
|
createQueryBuilder(uid: string): QueryBuilder;
|
|
94
77
|
getRepository(uid: string): Repository;
|
|
95
78
|
}
|
|
96
|
-
export {};
|
|
97
79
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/entity-manager/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/entity-manager/types.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,17 +7,20 @@ import { MigrationProvider } from './migrations';
|
|
|
7
7
|
import { LifecycleProvider } from './lifecycles';
|
|
8
8
|
import * as errors from './errors';
|
|
9
9
|
import { Callback, TransactionObject } from './transaction-context';
|
|
10
|
-
import { Model } from './types';
|
|
10
|
+
import type { Model } from './types';
|
|
11
|
+
import * as identifiers from './utils/identifiers';
|
|
11
12
|
export { isKnexQuery } from './utils/knex';
|
|
12
13
|
interface Settings {
|
|
13
14
|
forceMigration?: boolean;
|
|
14
15
|
runMigrations?: boolean;
|
|
16
|
+
migrations: {
|
|
17
|
+
dir: string;
|
|
18
|
+
};
|
|
15
19
|
[key: string]: unknown;
|
|
16
20
|
}
|
|
17
21
|
export interface DatabaseConfig {
|
|
18
22
|
connection: Knex.Config;
|
|
19
23
|
settings: Settings;
|
|
20
|
-
models: Model[];
|
|
21
24
|
}
|
|
22
25
|
declare class Database {
|
|
23
26
|
connection: Knex;
|
|
@@ -28,9 +31,10 @@ declare class Database {
|
|
|
28
31
|
migrations: MigrationProvider;
|
|
29
32
|
lifecycles: LifecycleProvider;
|
|
30
33
|
entityManager: EntityManager;
|
|
31
|
-
static transformContentTypes: (contentTypes: import("./utils/content-types").ContentType[]) => Model[];
|
|
32
|
-
static init(config: DatabaseConfig): Promise<Database>;
|
|
33
34
|
constructor(config: DatabaseConfig);
|
|
35
|
+
init({ models }: {
|
|
36
|
+
models: Model[];
|
|
37
|
+
}): Promise<this>;
|
|
34
38
|
query(uid: string): import("./entity-manager").Repository;
|
|
35
39
|
inTransaction(): boolean;
|
|
36
40
|
transaction(): Promise<TransactionObject>;
|
|
@@ -42,5 +46,9 @@ declare class Database {
|
|
|
42
46
|
queryBuilder(uid: string): import("./query/query-builder").QueryBuilder;
|
|
43
47
|
destroy(): Promise<void>;
|
|
44
48
|
}
|
|
45
|
-
|
|
49
|
+
declare const utils: {
|
|
50
|
+
identifiers: typeof identifiers;
|
|
51
|
+
};
|
|
52
|
+
export { Database, errors, utils };
|
|
53
|
+
export type { Model };
|
|
46
54
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEjC,OAAO,EAAE,OAAO,EAAc,MAAM,YAAY,CAAC;AACjD,OAAO,EAAwB,cAAc,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EAAkB,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAuB,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAA4B,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAA4B,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAE3E,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAkB,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEjC,OAAO,EAAE,OAAO,EAAc,MAAM,YAAY,CAAC;AACjD,OAAO,EAAwB,cAAc,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EAAkB,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAuB,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAA4B,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAA4B,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAE3E,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAkB,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAEpF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,WAAW,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,UAAU,QAAQ;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE;QACV,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;IACxB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAcD,cAAM,QAAQ;IACZ,UAAU,EAAE,IAAI,CAAC;IAEjB,OAAO,EAAE,OAAO,CAAC;IAEjB,MAAM,EAAE,cAAc,CAAC;IAEvB,QAAQ,EAAE,QAAQ,CAAC;IAEnB,MAAM,EAAE,cAAc,CAAC;IAEvB,UAAU,EAAE,iBAAiB,CAAC;IAE9B,UAAU,EAAE,iBAAiB,CAAC;IAE9B,aAAa,EAAE,aAAa,CAAC;gBAEjB,MAAM,EAAE,cAAc;IA2B5B,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE;QAAE,MAAM,EAAE,KAAK,EAAE,CAAA;KAAE;IAO1C,KAAK,CAAC,GAAG,EAAE,MAAM;IAQjB,aAAa;IAIb,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC;IACzC,WAAW,CAAC,SAAS,SAAS,QAAQ,EAAE,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IA4CrF,aAAa,IAAI,MAAM,GAAG,SAAS;IAInC,aAAa,IAAI,IAAI;IACrB,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,YAAY;IAOpD,mBAAmB,CAAC,GAAG,mBAAkB;IAKzC,YAAY,CAAC,GAAG,EAAE,MAAM;IAIlB,OAAO;CAId;AAED,QAAA,MAAM,KAAK;;CAAkB,CAAC;AAE9B,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AACnC,YAAY,EAAE,KAAK,EAAE,CAAC"}
|