@strapi/database 4.13.0-alpha.1 → 4.13.0-alpha.2
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/package.json +3 -3
- package/dist/connection.d.ts +0 -2
- package/dist/connection.js +0 -57
- package/dist/connection.js.map +0 -1
- package/dist/dialects/dialect.d.ts +0 -21
- package/dist/dialects/dialect.js +0 -49
- package/dist/dialects/dialect.js.map +0 -1
- package/dist/dialects/index.d.ts +0 -4
- package/dist/dialects/index.js +0 -49
- package/dist/dialects/index.js.map +0 -1
- package/dist/dialects/mysql/constants.d.ts +0 -2
- package/dist/dialects/mysql/constants.js +0 -6
- package/dist/dialects/mysql/constants.js.map +0 -1
- package/dist/dialects/mysql/database-inspector.d.ts +0 -11
- package/dist/dialects/mysql/database-inspector.js +0 -34
- package/dist/dialects/mysql/database-inspector.js.map +0 -1
- package/dist/dialects/mysql/index.d.ts +0 -19
- package/dist/dialects/mysql/index.js +0 -80
- package/dist/dialects/mysql/index.js.map +0 -1
- package/dist/dialects/mysql/schema-inspector.d.ts +0 -11
- package/dist/dialects/mysql/schema-inspector.js +0 -206
- package/dist/dialects/mysql/schema-inspector.js.map +0 -1
- package/dist/dialects/postgresql/index.d.ts +0 -13
- package/dist/dialects/postgresql/index.js +0 -72
- package/dist/dialects/postgresql/index.js.map +0 -1
- package/dist/dialects/postgresql/schema-inspector.d.ts +0 -12
- package/dist/dialects/postgresql/schema-inspector.js +0 -236
- package/dist/dialects/postgresql/schema-inspector.js.map +0 -1
- package/dist/dialects/sqlite/index.d.ts +0 -18
- package/dist/dialects/sqlite/index.js +0 -95
- package/dist/dialects/sqlite/index.js.map +0 -1
- package/dist/dialects/sqlite/schema-inspector.d.ts +0 -11
- package/dist/dialects/sqlite/schema-inspector.js +0 -133
- package/dist/dialects/sqlite/schema-inspector.js.map +0 -1
- package/dist/dialects/types.d.ts +0 -33
- package/dist/dialects/types.js +0 -3
- package/dist/dialects/types.js.map +0 -1
- package/dist/errors/database.d.ts +0 -4
- package/dist/errors/database.js +0 -12
- package/dist/errors/database.js.map +0 -1
- package/dist/errors/index.d.ts +0 -7
- package/dist/errors/index.js +0 -19
- package/dist/errors/index.js.map +0 -1
- package/dist/errors/invalid-date.d.ts +0 -4
- package/dist/errors/invalid-date.js +0 -14
- package/dist/errors/invalid-date.js.map +0 -1
- package/dist/errors/invalid-datetime.d.ts +0 -4
- package/dist/errors/invalid-datetime.js +0 -14
- package/dist/errors/invalid-datetime.js.map +0 -1
- package/dist/errors/invalid-relation.d.ts +0 -4
- package/dist/errors/invalid-relation.js +0 -14
- package/dist/errors/invalid-relation.js.map +0 -1
- package/dist/errors/invalid-time.d.ts +0 -4
- package/dist/errors/invalid-time.js +0 -14
- package/dist/errors/invalid-time.js.map +0 -1
- package/dist/errors/not-null.d.ts +0 -6
- package/dist/errors/not-null.js +0 -16
- package/dist/errors/not-null.js.map +0 -1
- package/dist/index.d.ts +0 -44
- package/dist/index.js +0 -135
- package/dist/index.js.map +0 -1
- package/dist/lifecycles/index.d.ts +0 -16
- package/dist/lifecycles/index.js +0 -86
- package/dist/lifecycles/index.js.map +0 -1
- package/dist/lifecycles/subscribers/index.d.ts +0 -4
- package/dist/lifecycles/subscribers/index.js +0 -12
- package/dist/lifecycles/subscribers/index.js.map +0 -1
- package/dist/lifecycles/subscribers/models-lifecycles.d.ts +0 -5
- package/dist/lifecycles/subscribers/models-lifecycles.js +0 -14
- package/dist/lifecycles/subscribers/models-lifecycles.js.map +0 -1
- package/dist/lifecycles/subscribers/timestamps.d.ts +0 -2
- package/dist/lifecycles/subscribers/timestamps.js +0 -50
- package/dist/lifecycles/subscribers/timestamps.js.map +0 -1
- package/dist/lifecycles/types.d.ts +0 -25
- package/dist/lifecycles/types.js +0 -3
- package/dist/lifecycles/types.js.map +0 -1
- package/dist/metadata/index.d.ts +0 -6
- package/dist/metadata/index.js +0 -236
- package/dist/metadata/index.js.map +0 -1
- package/dist/metadata/relations.d.ts +0 -20
- package/dist/metadata/relations.js +0 -529
- package/dist/metadata/relations.js.map +0 -1
- package/dist/metadata/types.d.ts +0 -44
- package/dist/metadata/types.js +0 -22
- package/dist/metadata/types.js.map +0 -1
- package/dist/migrations/index.d.ts +0 -11
- package/dist/migrations/index.js +0 -74
- package/dist/migrations/index.js.map +0 -1
- package/dist/migrations/storage.d.ts +0 -14
- package/dist/migrations/storage.js +0 -38
- package/dist/migrations/storage.js.map +0 -1
- package/dist/transaction-context.d.ts +0 -16
- package/dist/transaction-context.js +0 -56
- package/dist/transaction-context.js.map +0 -1
- package/dist/types/index.d.ts +0 -6
- package/dist/types/index.js +0 -38
- package/dist/types/index.js.map +0 -1
- package/dist/utils/content-types.d.ts +0 -17
- package/dist/utils/content-types.js +0 -39
- package/dist/utils/content-types.js.map +0 -1
- package/dist/utils/knex.d.ts +0 -8
- package/dist/utils/knex.js +0 -22
- package/dist/utils/knex.js.map +0 -1
- package/dist/validations/index.d.ts +0 -5
- package/dist/validations/index.js +0 -12
- package/dist/validations/index.js.map +0 -1
- package/dist/validations/relations/bidirectional.d.ts +0 -11
- package/dist/validations/relations/bidirectional.js +0 -75
- package/dist/validations/relations/bidirectional.js.map +0 -1
- package/dist/validations/relations/index.d.ts +0 -6
- package/dist/validations/relations/index.js +0 -13
- package/dist/validations/relations/index.js.map +0 -1
package/dist/migrations/index.js
DELETED
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.createMigrationsProvider = void 0;
|
|
7
|
-
const node_path_1 = __importDefault(require("node:path"));
|
|
8
|
-
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
9
|
-
const umzug_1 = require("umzug");
|
|
10
|
-
const storage_1 = require("./storage");
|
|
11
|
-
const wrapTransaction = (db) => (fn) => () => {
|
|
12
|
-
return db.connection.transaction((trx) => Promise.resolve(fn(trx)));
|
|
13
|
-
};
|
|
14
|
-
// TODO: check multiple commands in one sql statement
|
|
15
|
-
const migrationResolver = ({ name, path, context }) => {
|
|
16
|
-
const { db } = context;
|
|
17
|
-
if (!path) {
|
|
18
|
-
throw new Error(`Migration ${name} has no path`);
|
|
19
|
-
}
|
|
20
|
-
// if sql file run with knex raw
|
|
21
|
-
if (path.match(/\.sql$/)) {
|
|
22
|
-
const sql = fs_extra_1.default.readFileSync(path, 'utf8');
|
|
23
|
-
return {
|
|
24
|
-
name,
|
|
25
|
-
up: wrapTransaction(db)((knex) => knex.raw(sql)),
|
|
26
|
-
async down() {
|
|
27
|
-
throw new Error('Down migration is not supported for sql files');
|
|
28
|
-
},
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
// NOTE: we can add some ts register if we want to handle ts migration files at some point
|
|
32
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
33
|
-
const migration = require(path);
|
|
34
|
-
return {
|
|
35
|
-
name,
|
|
36
|
-
up: wrapTransaction(db)(migration.up),
|
|
37
|
-
down: wrapTransaction(db)(migration.down),
|
|
38
|
-
};
|
|
39
|
-
};
|
|
40
|
-
const createUmzugProvider = (db) => {
|
|
41
|
-
const migrationDir = node_path_1.default.join(strapi.dirs.app.root, 'database/migrations');
|
|
42
|
-
fs_extra_1.default.ensureDirSync(migrationDir);
|
|
43
|
-
return new umzug_1.Umzug({
|
|
44
|
-
storage: (0, storage_1.createStorage)({ db, tableName: 'strapi_migrations' }),
|
|
45
|
-
logger: console,
|
|
46
|
-
context: { db },
|
|
47
|
-
migrations: {
|
|
48
|
-
glob: ['*.{js,sql}', { cwd: migrationDir }],
|
|
49
|
-
resolve: migrationResolver,
|
|
50
|
-
},
|
|
51
|
-
});
|
|
52
|
-
};
|
|
53
|
-
// NOTE: when needed => add internal migrations for core & plugins. How do we overlap them with users migrations ?
|
|
54
|
-
/**
|
|
55
|
-
* Creates migrations provider
|
|
56
|
-
* @type {import('.').createMigrationsProvider}
|
|
57
|
-
*/
|
|
58
|
-
const createMigrationsProvider = (db) => {
|
|
59
|
-
const migrations = createUmzugProvider(db);
|
|
60
|
-
return {
|
|
61
|
-
async shouldRun() {
|
|
62
|
-
const pending = await migrations.pending();
|
|
63
|
-
return pending.length > 0 && db.config?.settings?.runMigrations === true;
|
|
64
|
-
},
|
|
65
|
-
async up() {
|
|
66
|
-
await migrations.up();
|
|
67
|
-
},
|
|
68
|
-
async down() {
|
|
69
|
-
await migrations.down();
|
|
70
|
-
},
|
|
71
|
-
};
|
|
72
|
-
};
|
|
73
|
-
exports.createMigrationsProvider = createMigrationsProvider;
|
|
74
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/migrations/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { Database } from '..';
|
|
2
|
-
export interface Options {
|
|
3
|
-
db: Database;
|
|
4
|
-
tableName?: string;
|
|
5
|
-
}
|
|
6
|
-
export declare const createStorage: (opts: Options) => {
|
|
7
|
-
logMigration({ name }: {
|
|
8
|
-
name: string;
|
|
9
|
-
}): Promise<void>;
|
|
10
|
-
unlogMigration({ name }: {
|
|
11
|
-
name: string;
|
|
12
|
-
}): Promise<void>;
|
|
13
|
-
executed(): Promise<any[]>;
|
|
14
|
-
};
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createStorage = void 0;
|
|
4
|
-
const createStorage = (opts) => {
|
|
5
|
-
const { db, tableName = 'strapi_migrations' } = opts;
|
|
6
|
-
const hasMigrationTable = () => db.getSchemaConnection().hasTable(tableName);
|
|
7
|
-
const createMigrationTable = () => {
|
|
8
|
-
return db.getSchemaConnection().createTable(tableName, (table) => {
|
|
9
|
-
table.increments('id');
|
|
10
|
-
table.string('name');
|
|
11
|
-
table.datetime('time', { useTz: false });
|
|
12
|
-
});
|
|
13
|
-
};
|
|
14
|
-
return {
|
|
15
|
-
async logMigration({ name }) {
|
|
16
|
-
await db
|
|
17
|
-
.getConnection()
|
|
18
|
-
.insert({
|
|
19
|
-
name,
|
|
20
|
-
time: new Date(),
|
|
21
|
-
})
|
|
22
|
-
.into(tableName);
|
|
23
|
-
},
|
|
24
|
-
async unlogMigration({ name }) {
|
|
25
|
-
await db.getConnection(tableName).del().where({ name });
|
|
26
|
-
},
|
|
27
|
-
async executed() {
|
|
28
|
-
if (!(await hasMigrationTable())) {
|
|
29
|
-
await createMigrationTable();
|
|
30
|
-
return [];
|
|
31
|
-
}
|
|
32
|
-
const logs = await db.getConnection(tableName).select().from(tableName).orderBy('time');
|
|
33
|
-
return logs.map((log) => log.name);
|
|
34
|
-
},
|
|
35
|
-
};
|
|
36
|
-
};
|
|
37
|
-
exports.createStorage = createStorage;
|
|
38
|
-
//# sourceMappingURL=storage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/migrations/storage.ts"],"names":[],"mappings":";;;AAOO,MAAM,aAAa,GAAG,CAAC,IAAa,EAAE,EAAE;IAC7C,MAAM,EAAE,EAAE,EAAE,SAAS,GAAG,mBAAmB,EAAE,GAAG,IAAI,CAAC;IAErD,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAE7E,MAAM,oBAAoB,GAAG,GAAG,EAAE;QAChC,OAAO,EAAE,CAAC,mBAAmB,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;YAC/D,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACvB,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACrB,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,OAAO;QACL,KAAK,CAAC,YAAY,CAAC,EAAE,IAAI,EAAoB;YAC3C,MAAM,EAAE;iBACL,aAAa,EAAE;iBACf,MAAM,CAAC;gBACN,IAAI;gBACJ,IAAI,EAAE,IAAI,IAAI,EAAE;aACjB,CAAC;iBACD,IAAI,CAAC,SAAS,CAAC,CAAC;QACrB,CAAC;QAED,KAAK,CAAC,cAAc,CAAC,EAAE,IAAI,EAAoB;YAC7C,MAAM,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;QAED,KAAK,CAAC,QAAQ;YACZ,IAAI,CAAC,CAAC,MAAM,iBAAiB,EAAE,CAAC,EAAE;gBAChC,MAAM,oBAAoB,EAAE,CAAC;gBAC7B,OAAO,EAAE,CAAC;aACX;YAED,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAExF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAvCW,QAAA,aAAa,iBAuCxB"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Knex } from 'knex';
|
|
2
|
-
export type Callback = () => Promise<void> | void;
|
|
3
|
-
export interface Store {
|
|
4
|
-
trx: Knex.Transaction | null;
|
|
5
|
-
commitCallbacks: Callback[];
|
|
6
|
-
rollbackCallbacks: Callback[];
|
|
7
|
-
}
|
|
8
|
-
declare const transactionCtx: {
|
|
9
|
-
run(store: Knex.Transaction, cb: Callback): Promise<void>;
|
|
10
|
-
get(): Knex.Transaction<any, any[]> | null | undefined;
|
|
11
|
-
commit(trx: Knex.Transaction): Promise<void>;
|
|
12
|
-
rollback(trx: Knex.Transaction): Promise<void>;
|
|
13
|
-
onCommit(cb: Callback): void;
|
|
14
|
-
onRollback(cb: Callback): void;
|
|
15
|
-
};
|
|
16
|
-
export { transactionCtx };
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.transactionCtx = void 0;
|
|
4
|
-
const node_async_hooks_1 = require("node:async_hooks");
|
|
5
|
-
const storage = new node_async_hooks_1.AsyncLocalStorage();
|
|
6
|
-
const transactionCtx = {
|
|
7
|
-
async run(store, cb) {
|
|
8
|
-
return storage.run({ trx: store, commitCallbacks: [], rollbackCallbacks: [] }, cb);
|
|
9
|
-
},
|
|
10
|
-
get() {
|
|
11
|
-
const store = storage.getStore();
|
|
12
|
-
return store?.trx;
|
|
13
|
-
},
|
|
14
|
-
async commit(trx) {
|
|
15
|
-
const store = storage.getStore();
|
|
16
|
-
// Clear transaction from store
|
|
17
|
-
if (store?.trx) {
|
|
18
|
-
store.trx = null;
|
|
19
|
-
}
|
|
20
|
-
// Commit transaction
|
|
21
|
-
await trx.commit();
|
|
22
|
-
if (!store?.commitCallbacks.length)
|
|
23
|
-
return;
|
|
24
|
-
// Run callbacks
|
|
25
|
-
store.commitCallbacks.forEach((cb) => cb());
|
|
26
|
-
store.commitCallbacks = [];
|
|
27
|
-
},
|
|
28
|
-
async rollback(trx) {
|
|
29
|
-
const store = storage.getStore();
|
|
30
|
-
// Clear transaction from store
|
|
31
|
-
if (store?.trx) {
|
|
32
|
-
store.trx = null;
|
|
33
|
-
}
|
|
34
|
-
// Rollback transaction
|
|
35
|
-
await trx.rollback();
|
|
36
|
-
if (!store?.rollbackCallbacks.length)
|
|
37
|
-
return;
|
|
38
|
-
// Run callbacks
|
|
39
|
-
store.rollbackCallbacks.forEach((cb) => cb());
|
|
40
|
-
store.rollbackCallbacks = [];
|
|
41
|
-
},
|
|
42
|
-
onCommit(cb) {
|
|
43
|
-
const store = storage.getStore();
|
|
44
|
-
if (store?.commitCallbacks) {
|
|
45
|
-
store.commitCallbacks.push(cb);
|
|
46
|
-
}
|
|
47
|
-
},
|
|
48
|
-
onRollback(cb) {
|
|
49
|
-
const store = storage.getStore();
|
|
50
|
-
if (store?.rollbackCallbacks) {
|
|
51
|
-
store.rollbackCallbacks.push(cb);
|
|
52
|
-
}
|
|
53
|
-
},
|
|
54
|
-
};
|
|
55
|
-
exports.transactionCtx = transactionCtx;
|
|
56
|
-
//# sourceMappingURL=transaction-context.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transaction-context.js","sourceRoot":"","sources":["../src/transaction-context.ts"],"names":[],"mappings":";;;AACA,uDAAqD;AAUrD,MAAM,OAAO,GAAG,IAAI,oCAAiB,EAAS,CAAC;AAE/C,MAAM,cAAc,GAAG;IACrB,KAAK,CAAC,GAAG,CAAC,KAAuB,EAAE,EAAY;QAC7C,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,GAAG;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QACjC,OAAO,KAAK,EAAE,GAAG,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAqB;QAChC,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QAEjC,+BAA+B;QAC/B,IAAI,KAAK,EAAE,GAAG,EAAE;YACd,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC;SAClB;QAED,qBAAqB;QACrB,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;QAEnB,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,MAAM;YAAE,OAAO;QAE3C,gBAAgB;QAChB,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5C,KAAK,CAAC,eAAe,GAAG,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAqB;QAClC,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QAEjC,+BAA+B;QAC/B,IAAI,KAAK,EAAE,GAAG,EAAE;YACd,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC;SAClB;QAED,uBAAuB;QACvB,MAAM,GAAG,CAAC,QAAQ,EAAE,CAAC;QAErB,IAAI,CAAC,KAAK,EAAE,iBAAiB,CAAC,MAAM;YAAE,OAAO;QAE7C,gBAAgB;QAChB,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9C,KAAK,CAAC,iBAAiB,GAAG,EAAE,CAAC;IAC/B,CAAC;IAED,QAAQ,CAAC,EAAY;QACnB,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QACjC,IAAI,KAAK,EAAE,eAAe,EAAE;YAC1B,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAChC;IACH,CAAC;IAED,UAAU,CAAC,EAAY;QACrB,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QACjC,IAAI,KAAK,EAAE,iBAAiB,EAAE;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAClC;IACH,CAAC;CACF,CAAC;AAEO,wCAAc"}
|
package/dist/types/index.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export declare const isString: (type: string) => boolean;
|
|
2
|
-
export declare const isNumber: (type: string) => boolean;
|
|
3
|
-
export declare const isScalar: (type: string) => boolean;
|
|
4
|
-
export declare const isComponent: (type: string) => boolean;
|
|
5
|
-
export declare const isDynamicZone: (type: string) => boolean;
|
|
6
|
-
export declare const isRelation: (type: string) => boolean;
|
package/dist/types/index.js
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isRelation = exports.isDynamicZone = exports.isComponent = exports.isScalar = exports.isNumber = exports.isString = void 0;
|
|
4
|
-
const SCALAR_TYPES = [
|
|
5
|
-
'increments',
|
|
6
|
-
'password',
|
|
7
|
-
'email',
|
|
8
|
-
'string',
|
|
9
|
-
'uid',
|
|
10
|
-
'richtext',
|
|
11
|
-
'text',
|
|
12
|
-
'json',
|
|
13
|
-
'enumeration',
|
|
14
|
-
'integer',
|
|
15
|
-
'biginteger',
|
|
16
|
-
'float',
|
|
17
|
-
'decimal',
|
|
18
|
-
'date',
|
|
19
|
-
'time',
|
|
20
|
-
'datetime',
|
|
21
|
-
'timestamp',
|
|
22
|
-
'boolean',
|
|
23
|
-
];
|
|
24
|
-
const STRING_TYPES = ['string', 'text', 'uid', 'email', 'enumeration', 'richtext'];
|
|
25
|
-
const NUMBER_TYPES = ['biginteger', 'integer', 'decimal', 'float'];
|
|
26
|
-
const isString = (type) => STRING_TYPES.includes(type);
|
|
27
|
-
exports.isString = isString;
|
|
28
|
-
const isNumber = (type) => NUMBER_TYPES.includes(type);
|
|
29
|
-
exports.isNumber = isNumber;
|
|
30
|
-
const isScalar = (type) => SCALAR_TYPES.includes(type);
|
|
31
|
-
exports.isScalar = isScalar;
|
|
32
|
-
const isComponent = (type) => type === 'component';
|
|
33
|
-
exports.isComponent = isComponent;
|
|
34
|
-
const isDynamicZone = (type) => type === 'dynamiczone';
|
|
35
|
-
exports.isDynamicZone = isDynamicZone;
|
|
36
|
-
const isRelation = (type) => type === 'relation';
|
|
37
|
-
exports.isRelation = isRelation;
|
|
38
|
-
//# sourceMappingURL=index.js.map
|
package/dist/types/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;AAAA,MAAM,YAAY,GAAG;IACnB,YAAY;IACZ,UAAU;IACV,OAAO;IACP,QAAQ;IACR,KAAK;IACL,UAAU;IACV,MAAM;IACN,MAAM;IACN,aAAa;IACb,SAAS;IACT,YAAY;IACZ,OAAO;IACP,SAAS;IACT,MAAM;IACN,MAAM;IACN,UAAU;IACV,WAAW;IACX,SAAS;CACV,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;AACnF,MAAM,YAAY,GAAG,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAE5D,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAAzD,QAAA,QAAQ,YAAiD;AAC/D,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAAzD,QAAA,QAAQ,YAAiD;AAC/D,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAAzD,QAAA,QAAQ,YAAiD;AAC/D,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,KAAK,WAAW,CAAC;AAArD,QAAA,WAAW,eAA0C;AAC3D,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,KAAK,aAAa,CAAC;AAAzD,QAAA,aAAa,iBAA4C;AAC/D,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,KAAK,UAAU,CAAC;AAAnD,QAAA,UAAU,cAAyC"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
interface Attribute {
|
|
2
|
-
type: string;
|
|
3
|
-
multiple?: boolean;
|
|
4
|
-
}
|
|
5
|
-
interface ContentType {
|
|
6
|
-
modelName: string;
|
|
7
|
-
collectionName: string;
|
|
8
|
-
attributes: Record<string, Attribute>;
|
|
9
|
-
}
|
|
10
|
-
export declare const transformContentTypes: (contentTypes: ContentType[]) => {
|
|
11
|
-
singularName: string;
|
|
12
|
-
tableName: string;
|
|
13
|
-
attributes: {};
|
|
14
|
-
modelName: string;
|
|
15
|
-
collectionName: string;
|
|
16
|
-
}[];
|
|
17
|
-
export {};
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.transformContentTypes = void 0;
|
|
4
|
-
const transformAttribute = (attribute) => {
|
|
5
|
-
switch (attribute.type) {
|
|
6
|
-
case 'media': {
|
|
7
|
-
return {
|
|
8
|
-
type: 'relation',
|
|
9
|
-
relation: attribute.multiple === true ? 'morphMany' : 'morphOne',
|
|
10
|
-
target: 'plugin::upload.file',
|
|
11
|
-
morphBy: 'related',
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
default: {
|
|
15
|
-
return attribute;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
// TODO: model logic outside DB
|
|
20
|
-
const transformContentTypes = (contentTypes) => {
|
|
21
|
-
return contentTypes.map((contentType) => {
|
|
22
|
-
const model = {
|
|
23
|
-
...contentType,
|
|
24
|
-
// reuse new model def
|
|
25
|
-
singularName: contentType.modelName,
|
|
26
|
-
tableName: contentType.collectionName,
|
|
27
|
-
attributes: {
|
|
28
|
-
...Object.keys(contentType.attributes || {}).reduce((attrs, attrName) => {
|
|
29
|
-
return Object.assign(attrs, {
|
|
30
|
-
[attrName]: transformAttribute(contentType.attributes[attrName]),
|
|
31
|
-
});
|
|
32
|
-
}, {}),
|
|
33
|
-
},
|
|
34
|
-
};
|
|
35
|
-
return model;
|
|
36
|
-
});
|
|
37
|
-
};
|
|
38
|
-
exports.transformContentTypes = transformContentTypes;
|
|
39
|
-
//# sourceMappingURL=content-types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"content-types.js","sourceRoot":"","sources":["../../src/utils/content-types.ts"],"names":[],"mappings":";;;AAWA,MAAM,kBAAkB,GAAG,CAAC,SAAoB,EAAE,EAAE;IAClD,QAAQ,SAAS,CAAC,IAAI,EAAE;QACtB,KAAK,OAAO,CAAC,CAAC;YACZ,OAAO;gBACL,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,SAAS,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU;gBAChE,MAAM,EAAE,qBAAqB;gBAC7B,OAAO,EAAE,SAAS;aACnB,CAAC;SACH;QACD,OAAO,CAAC,CAAC;YACP,OAAO,SAAS,CAAC;SAClB;KACF;AACH,CAAC,CAAC;AAEF,+BAA+B;AACxB,MAAM,qBAAqB,GAAG,CAAC,YAA2B,EAAE,EAAE;IACnE,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE;QACtC,MAAM,KAAK,GAAG;YACZ,GAAG,WAAW;YACd,sBAAsB;YACtB,YAAY,EAAE,WAAW,CAAC,SAAS;YACnC,SAAS,EAAE,WAAW,CAAC,cAAc;YACrC,UAAU,EAAE;gBACV,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;oBACtE,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;wBAC1B,CAAC,QAAQ,CAAC,EAAE,kBAAkB,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;qBACjE,CAAC,CAAC;gBACL,CAAC,EAAE,EAAE,CAAC;aACP;SACF,CAAC;QAEF,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAlBW,QAAA,qBAAqB,yBAkBhC"}
|
package/dist/utils/knex.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { Knex } from 'knex';
|
|
2
|
-
import type { Database } from '..';
|
|
3
|
-
export declare function isKnexQuery(value: unknown): value is Knex.Raw | Knex.QueryBuilder;
|
|
4
|
-
/**
|
|
5
|
-
* Adds the name of the schema to the table name if the schema was defined by the user.
|
|
6
|
-
* Users can set the db schema only for Postgres in strapi database config.
|
|
7
|
-
*/
|
|
8
|
-
export declare const addSchema: (db: Database, tableName: string) => string;
|
package/dist/utils/knex.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.addSchema = exports.isKnexQuery = void 0;
|
|
7
|
-
const querybuilder_1 = __importDefault(require("knex/lib/query/querybuilder"));
|
|
8
|
-
const raw_1 = __importDefault(require("knex/lib/raw"));
|
|
9
|
-
function isKnexQuery(value) {
|
|
10
|
-
return value instanceof querybuilder_1.default || value instanceof raw_1.default;
|
|
11
|
-
}
|
|
12
|
-
exports.isKnexQuery = isKnexQuery;
|
|
13
|
-
/**
|
|
14
|
-
* Adds the name of the schema to the table name if the schema was defined by the user.
|
|
15
|
-
* Users can set the db schema only for Postgres in strapi database config.
|
|
16
|
-
*/
|
|
17
|
-
const addSchema = (db, tableName) => {
|
|
18
|
-
const schemaName = db.getSchemaName();
|
|
19
|
-
return schemaName ? `${schemaName}.${tableName}` : tableName;
|
|
20
|
-
};
|
|
21
|
-
exports.addSchema = addSchema;
|
|
22
|
-
//# sourceMappingURL=knex.js.map
|
package/dist/utils/knex.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"knex.js","sourceRoot":"","sources":["../../src/utils/knex.ts"],"names":[],"mappings":";;;;;;AAEA,+EAAsD;AACtD,uDAAmC;AAInC,SAAgB,WAAW,CAAC,KAAc;IACxC,OAAO,KAAK,YAAY,sBAAW,IAAI,KAAK,YAAY,aAAO,CAAC;AAClE,CAAC;AAFD,kCAEC;AAED;;;GAGG;AACI,MAAM,SAAS,GAAG,CAAC,EAAY,EAAE,SAAiB,EAAE,EAAE;IAC3D,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC;IACtC,OAAO,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/D,CAAC,CAAC;AAHW,QAAA,SAAS,aAGpB"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.validateDatabase = void 0;
|
|
4
|
-
const relations_1 = require("./relations");
|
|
5
|
-
/**
|
|
6
|
-
* Validate if the database is in a valid state before starting the server.
|
|
7
|
-
*/
|
|
8
|
-
async function validateDatabase(db) {
|
|
9
|
-
await (0, relations_1.validateRelations)(db);
|
|
10
|
-
}
|
|
11
|
-
exports.validateDatabase = validateDatabase;
|
|
12
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validations/index.ts"],"names":[],"mappings":";;;AAAA,2CAAgD;AAIhD;;GAEG;AACI,KAAK,UAAU,gBAAgB,CAAC,EAAY;IACjD,MAAM,IAAA,6BAAiB,EAAC,EAAE,CAAC,CAAC;AAC9B,CAAC;AAFD,4CAEC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
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>;
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.validateBidirectionalRelations = void 0;
|
|
7
|
-
const types_1 = __importDefault(require("../../types"));
|
|
8
|
-
const relations_1 = require("../../metadata/relations");
|
|
9
|
-
const getLinksWithoutMappedBy = (db) => {
|
|
10
|
-
const relationsToUpdate = {};
|
|
11
|
-
db.metadata.forEach((contentType) => {
|
|
12
|
-
const attributes = contentType.attributes;
|
|
13
|
-
// For each relation attribute, add the joinTable name to tablesToUpdate
|
|
14
|
-
Object.values(attributes).forEach((attribute) => {
|
|
15
|
-
if (!types_1.default.isRelation(attribute.type))
|
|
16
|
-
return;
|
|
17
|
-
if (attribute.inversedBy) {
|
|
18
|
-
const invRelation = db.metadata.get(attribute.target).attributes[attribute.inversedBy];
|
|
19
|
-
// Both relations use inversedBy.
|
|
20
|
-
if (invRelation.inversedBy) {
|
|
21
|
-
relationsToUpdate[attribute.joinTable.name] = {
|
|
22
|
-
relation: attribute,
|
|
23
|
-
invRelation,
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
});
|
|
29
|
-
return Object.values(relationsToUpdate);
|
|
30
|
-
};
|
|
31
|
-
const isLinkTableEmpty = async (db, linkTableName) => {
|
|
32
|
-
// If the table doesn't exist, it's empty
|
|
33
|
-
const exists = await db.getSchemaConnection().hasTable(linkTableName);
|
|
34
|
-
if (!exists)
|
|
35
|
-
return true;
|
|
36
|
-
const result = await db.getConnection().count('* as count').from(linkTableName);
|
|
37
|
-
return Number(result[0].count) === 0;
|
|
38
|
-
};
|
|
39
|
-
/**
|
|
40
|
-
* Validates bidirectional relations before starting the server.
|
|
41
|
-
* - If both sides use inversedBy, one of the sides must switch to mappedBy.
|
|
42
|
-
* When this happens, two join tables exist in the database.
|
|
43
|
-
* This makes sure you switch the side which does not delete any data.
|
|
44
|
-
*
|
|
45
|
-
* @param {*} db
|
|
46
|
-
* @return {*}
|
|
47
|
-
*/
|
|
48
|
-
const validateBidirectionalRelations = async (db) => {
|
|
49
|
-
const invalidLinks = getLinksWithoutMappedBy(db);
|
|
50
|
-
for (const { relation, invRelation } of invalidLinks) {
|
|
51
|
-
const contentType = db.metadata.get(invRelation.target);
|
|
52
|
-
const invContentType = db.metadata.get(relation.target);
|
|
53
|
-
// Generate the join table name based on the relation target table and attribute name.
|
|
54
|
-
const joinTableName = (0, relations_1.getJoinTableName)(contentType.tableName, invRelation.inversedBy);
|
|
55
|
-
const inverseJoinTableName = (0, relations_1.getJoinTableName)(invContentType.tableName, relation.inversedBy);
|
|
56
|
-
const joinTableEmpty = await isLinkTableEmpty(db, joinTableName);
|
|
57
|
-
const inverseJoinTableEmpty = await isLinkTableEmpty(db, inverseJoinTableName);
|
|
58
|
-
if (joinTableEmpty) {
|
|
59
|
-
process.emitWarning(`Error on attribute "${invRelation.inversedBy}" in model "${contentType.singularName}" (${contentType.uid}).` +
|
|
60
|
-
` Please modify your ${contentType.singularName} schema by renaming the key "inversedBy" to "mappedBy".` +
|
|
61
|
-
` Ex: { "inversedBy": "${relation.inversedBy}" } -> { "mappedBy": "${relation.inversedBy}" }`);
|
|
62
|
-
}
|
|
63
|
-
else if (inverseJoinTableEmpty) {
|
|
64
|
-
// Its safe to delete the inverse join table
|
|
65
|
-
process.emitWarning(`Error on attribute "${relation.inversedBy}" in model "${invContentType.singularName}" (${invContentType.uid}).` +
|
|
66
|
-
` Please modify your ${invContentType.singularName} schema by renaming the key "inversedBy" to "mappedBy".` +
|
|
67
|
-
` Ex: { "inversedBy": "${invRelation.inversedBy}" } -> { "mappedBy": "${invRelation.inversedBy}" }`);
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
// Both sides have data in the join table
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
|
-
exports.validateBidirectionalRelations = validateBidirectionalRelations;
|
|
75
|
-
//# sourceMappingURL=bidirectional.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bidirectional.js","sourceRoot":"","sources":["../../../src/validations/relations/bidirectional.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.validateRelations = void 0;
|
|
4
|
-
const bidirectional_1 = require("./bidirectional");
|
|
5
|
-
/**
|
|
6
|
-
* Validates if relations data and tables are in a valid state before
|
|
7
|
-
* starting the server.
|
|
8
|
-
*/
|
|
9
|
-
const validateRelations = async (db) => {
|
|
10
|
-
await (0, bidirectional_1.validateBidirectionalRelations)(db);
|
|
11
|
-
};
|
|
12
|
-
exports.validateRelations = validateRelations;
|
|
13
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/validations/relations/index.ts"],"names":[],"mappings":";;;AAAA,mDAAiE;AAIjE;;;GAGG;AACI,MAAM,iBAAiB,GAAG,KAAK,EAAE,EAAY,EAAE,EAAE;IACtD,MAAM,IAAA,8CAA8B,EAAC,EAAE,CAAC,CAAC;AAC3C,CAAC,CAAC;AAFW,QAAA,iBAAiB,qBAE5B"}
|