@payloadcms/drizzle 3.58.0-canary.3 → 3.58.0-canary.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.
- package/dist/createGlobalVersion.d.ts.map +1 -1
- package/dist/createGlobalVersion.js.map +1 -1
- package/dist/createVersion.d.ts.map +1 -1
- package/dist/createVersion.js.map +1 -1
- package/dist/exports/sqlite.d.ts +13 -0
- package/dist/exports/sqlite.d.ts.map +1 -0
- package/dist/exports/sqlite.js +14 -0
- package/dist/exports/sqlite.js.map +1 -0
- package/dist/findOne.d.ts +1 -1
- package/dist/findOne.d.ts.map +1 -1
- package/dist/findOne.js.map +1 -1
- package/dist/sqlite/columnToCodeConverter.d.ts +3 -0
- package/dist/sqlite/columnToCodeConverter.d.ts.map +1 -0
- package/dist/sqlite/columnToCodeConverter.js +107 -0
- package/dist/sqlite/columnToCodeConverter.js.map +1 -0
- package/dist/sqlite/countDistinct.d.ts +3 -0
- package/dist/sqlite/countDistinct.d.ts.map +1 -0
- package/dist/sqlite/countDistinct.js +24 -0
- package/dist/sqlite/countDistinct.js.map +1 -0
- package/dist/sqlite/createJSONQuery/convertPathToJSONTraversal.d.ts +2 -0
- package/dist/sqlite/createJSONQuery/convertPathToJSONTraversal.d.ts.map +1 -0
- package/dist/sqlite/createJSONQuery/convertPathToJSONTraversal.js +12 -0
- package/dist/sqlite/createJSONQuery/convertPathToJSONTraversal.js.map +1 -0
- package/dist/sqlite/createJSONQuery/index.d.ts +3 -0
- package/dist/sqlite/createJSONQuery/index.d.ts.map +1 -0
- package/dist/sqlite/createJSONQuery/index.js +106 -0
- package/dist/sqlite/createJSONQuery/index.js.map +1 -0
- package/dist/sqlite/defaultSnapshot.d.ts +3 -0
- package/dist/sqlite/defaultSnapshot.d.ts.map +1 -0
- package/dist/sqlite/defaultSnapshot.js +15 -0
- package/dist/sqlite/defaultSnapshot.js.map +1 -0
- package/dist/sqlite/deleteWhere.d.ts +3 -0
- package/dist/sqlite/deleteWhere.d.ts.map +1 -0
- package/dist/sqlite/deleteWhere.js +6 -0
- package/dist/sqlite/deleteWhere.js.map +1 -0
- package/dist/sqlite/dropDatabase.d.ts +3 -0
- package/dist/sqlite/dropDatabase.d.ts.map +1 -0
- package/dist/sqlite/dropDatabase.js +19 -0
- package/dist/sqlite/dropDatabase.js.map +1 -0
- package/dist/sqlite/execute.d.ts +3 -0
- package/dist/sqlite/execute.d.ts.map +1 -0
- package/dist/sqlite/execute.js +13 -0
- package/dist/sqlite/execute.js.map +1 -0
- package/dist/sqlite/init.d.ts +3 -0
- package/dist/sqlite/init.d.ts.map +1 -0
- package/dist/sqlite/init.js +42 -0
- package/dist/sqlite/init.js.map +1 -0
- package/dist/sqlite/insert.d.ts +3 -0
- package/dist/sqlite/insert.d.ts.map +1 -0
- package/dist/sqlite/insert.js +8 -0
- package/dist/sqlite/insert.js.map +1 -0
- package/dist/sqlite/requireDrizzleKit.d.ts +3 -0
- package/dist/sqlite/requireDrizzleKit.d.ts.map +1 -0
- package/dist/sqlite/requireDrizzleKit.js +12 -0
- package/dist/sqlite/requireDrizzleKit.js.map +1 -0
- package/dist/sqlite/schema/buildDrizzleTable.d.ts +3 -0
- package/dist/sqlite/schema/buildDrizzleTable.d.ts.map +1 -0
- package/dist/sqlite/schema/buildDrizzleTable.js +143 -0
- package/dist/sqlite/schema/buildDrizzleTable.js.map +1 -0
- package/dist/sqlite/schema/setColumnID.d.ts +3 -0
- package/dist/sqlite/schema/setColumnID.d.ts.map +1 -0
- package/dist/sqlite/schema/setColumnID.js +39 -0
- package/dist/sqlite/schema/setColumnID.js.map +1 -0
- package/dist/sqlite/types.d.ts +210 -0
- package/dist/sqlite/types.d.ts.map +1 -0
- package/dist/sqlite/types.js +3 -0
- package/dist/sqlite/types.js.map +1 -0
- package/dist/updateGlobalVersion.d.ts.map +1 -1
- package/dist/updateGlobalVersion.js.map +1 -1
- package/dist/updateVersion.d.ts.map +1 -1
- package/dist/updateVersion.js.map +1 -1
- package/dist/utilities/buildCreateMigration.d.ts.map +1 -1
- package/dist/utilities/buildCreateMigration.js +6 -4
- package/dist/utilities/buildCreateMigration.js.map +1 -1
- package/package.json +8 -3
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { buildDrizzleRelations } from '../schema/buildDrizzleRelations.js';
|
|
2
|
+
import { buildRawSchema } from '../schema/buildRawSchema.js';
|
|
3
|
+
import { executeSchemaHooks } from '../utilities/executeSchemaHooks.js';
|
|
4
|
+
import { buildDrizzleTable } from './schema/buildDrizzleTable.js';
|
|
5
|
+
import { setColumnID } from './schema/setColumnID.js';
|
|
6
|
+
export const init = async function init() {
|
|
7
|
+
let locales;
|
|
8
|
+
this.rawRelations = {};
|
|
9
|
+
this.rawTables = {};
|
|
10
|
+
if (this.payload.config.localization) {
|
|
11
|
+
locales = this.payload.config.localization.locales.map(({ code })=>code);
|
|
12
|
+
}
|
|
13
|
+
const adapter = this;
|
|
14
|
+
buildRawSchema({
|
|
15
|
+
adapter,
|
|
16
|
+
setColumnID
|
|
17
|
+
});
|
|
18
|
+
await executeSchemaHooks({
|
|
19
|
+
type: 'beforeSchemaInit',
|
|
20
|
+
adapter: this
|
|
21
|
+
});
|
|
22
|
+
for(const tableName in this.rawTables){
|
|
23
|
+
buildDrizzleTable({
|
|
24
|
+
adapter,
|
|
25
|
+
locales,
|
|
26
|
+
rawTable: this.rawTables[tableName]
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
buildDrizzleRelations({
|
|
30
|
+
adapter
|
|
31
|
+
});
|
|
32
|
+
await executeSchemaHooks({
|
|
33
|
+
type: 'afterSchemaInit',
|
|
34
|
+
adapter: this
|
|
35
|
+
});
|
|
36
|
+
this.schema = {
|
|
37
|
+
...this.tables,
|
|
38
|
+
...this.relations
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/sqlite/init.ts"],"sourcesContent":["import type { Init } from 'payload'\n\nimport type { DrizzleAdapter } from '../types.js'\nimport type { BaseSQLiteAdapter } from './types.js'\n\nimport { buildDrizzleRelations } from '../schema/buildDrizzleRelations.js'\nimport { buildRawSchema } from '../schema/buildRawSchema.js'\nimport { executeSchemaHooks } from '../utilities/executeSchemaHooks.js'\nimport { buildDrizzleTable } from './schema/buildDrizzleTable.js'\nimport { setColumnID } from './schema/setColumnID.js'\n\nexport const init: Init = async function init(this: BaseSQLiteAdapter) {\n let locales: string[] | undefined\n\n this.rawRelations = {}\n this.rawTables = {}\n\n if (this.payload.config.localization) {\n locales = this.payload.config.localization.locales.map(({ code }) => code)\n }\n\n const adapter = this as unknown as DrizzleAdapter\n\n buildRawSchema({\n adapter,\n setColumnID,\n })\n\n await executeSchemaHooks({ type: 'beforeSchemaInit', adapter: this })\n\n for (const tableName in this.rawTables) {\n buildDrizzleTable({ adapter, locales, rawTable: this.rawTables[tableName] })\n }\n\n buildDrizzleRelations({\n adapter,\n })\n\n await executeSchemaHooks({ type: 'afterSchemaInit', adapter: this })\n\n this.schema = {\n ...this.tables,\n ...this.relations,\n }\n}\n"],"names":["buildDrizzleRelations","buildRawSchema","executeSchemaHooks","buildDrizzleTable","setColumnID","init","locales","rawRelations","rawTables","payload","config","localization","map","code","adapter","type","tableName","rawTable","schema","tables","relations"],"mappings":"AAKA,SAASA,qBAAqB,QAAQ,qCAAoC;AAC1E,SAASC,cAAc,QAAQ,8BAA6B;AAC5D,SAASC,kBAAkB,QAAQ,qCAAoC;AACvE,SAASC,iBAAiB,QAAQ,gCAA+B;AACjE,SAASC,WAAW,QAAQ,0BAAyB;AAErD,OAAO,MAAMC,OAAa,eAAeA;IACvC,IAAIC;IAEJ,IAAI,CAACC,YAAY,GAAG,CAAC;IACrB,IAAI,CAACC,SAAS,GAAG,CAAC;IAElB,IAAI,IAAI,CAACC,OAAO,CAACC,MAAM,CAACC,YAAY,EAAE;QACpCL,UAAU,IAAI,CAACG,OAAO,CAACC,MAAM,CAACC,YAAY,CAACL,OAAO,CAACM,GAAG,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAKA;IACvE;IAEA,MAAMC,UAAU,IAAI;IAEpBb,eAAe;QACba;QACAV;IACF;IAEA,MAAMF,mBAAmB;QAAEa,MAAM;QAAoBD,SAAS,IAAI;IAAC;IAEnE,IAAK,MAAME,aAAa,IAAI,CAACR,SAAS,CAAE;QACtCL,kBAAkB;YAAEW;YAASR;YAASW,UAAU,IAAI,CAACT,SAAS,CAACQ,UAAU;QAAC;IAC5E;IAEAhB,sBAAsB;QACpBc;IACF;IAEA,MAAMZ,mBAAmB;QAAEa,MAAM;QAAmBD,SAAS,IAAI;IAAC;IAElE,IAAI,CAACI,MAAM,GAAG;QACZ,GAAG,IAAI,CAACC,MAAM;QACd,GAAG,IAAI,CAACC,SAAS;IACnB;AACF,EAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"insert.d.ts","sourceRoot":"","sources":["../../src/sqlite/insert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAqB,MAAM,EAAE,MAAM,YAAY,CAAA;AAE3D,eAAO,MAAM,MAAM,EAAE,MAcpB,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export const insert = async function({ db, onConflictDoUpdate, tableName, values }) {
|
|
2
|
+
const table = this.tables[tableName];
|
|
3
|
+
const result = onConflictDoUpdate ? await db.insert(table).values(values).onConflictDoUpdate(onConflictDoUpdate).returning() : await db.insert(table).values(values).returning();
|
|
4
|
+
// See https://github.com/payloadcms/payload/pull/11831#discussion_r2010431908
|
|
5
|
+
return result;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=insert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/sqlite/insert.ts"],"sourcesContent":["import type { BaseSQLiteAdapter, Insert } from './types.js'\n\nexport const insert: Insert = async function (\n // Here 'this' is not a parameter. See:\n // https://www.typescriptlang.org/docs/handbook/2/classes.html#this-parameters\n this: BaseSQLiteAdapter,\n { db, onConflictDoUpdate, tableName, values },\n): Promise<Record<string, unknown>[]> {\n const table = this.tables[tableName]\n\n const result = onConflictDoUpdate\n ? await db.insert(table).values(values).onConflictDoUpdate(onConflictDoUpdate).returning()\n : await db.insert(table).values(values).returning()\n\n // See https://github.com/payloadcms/payload/pull/11831#discussion_r2010431908\n return result as Record<string, unknown>[]\n}\n"],"names":["insert","db","onConflictDoUpdate","tableName","values","table","tables","result","returning"],"mappings":"AAEA,OAAO,MAAMA,SAAiB,eAI5B,EAAEC,EAAE,EAAEC,kBAAkB,EAAEC,SAAS,EAAEC,MAAM,EAAE;IAE7C,MAAMC,QAAQ,IAAI,CAACC,MAAM,CAACH,UAAU;IAEpC,MAAMI,SAASL,qBACX,MAAMD,GAAGD,MAAM,CAACK,OAAOD,MAAM,CAACA,QAAQF,kBAAkB,CAACA,oBAAoBM,SAAS,KACtF,MAAMP,GAAGD,MAAM,CAACK,OAAOD,MAAM,CAACA,QAAQI,SAAS;IAEnD,8EAA8E;IAC9E,OAAOD;AACT,EAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requireDrizzleKit.d.ts","sourceRoot":"","sources":["../../src/sqlite/requireDrizzleKit.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAIpD,eAAO,MAAM,iBAAiB,EAAE,iBAY/B,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { createRequire } from 'module';
|
|
2
|
+
const require = createRequire(import.meta.url);
|
|
3
|
+
export const requireDrizzleKit = ()=>{
|
|
4
|
+
const { generateSQLiteDrizzleJson, generateSQLiteMigration, pushSQLiteSchema } = require('drizzle-kit/api');
|
|
5
|
+
return {
|
|
6
|
+
generateDrizzleJson: generateSQLiteDrizzleJson,
|
|
7
|
+
generateMigration: generateSQLiteMigration,
|
|
8
|
+
pushSchema: pushSQLiteSchema
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=requireDrizzleKit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/sqlite/requireDrizzleKit.ts"],"sourcesContent":["import { createRequire } from 'module'\n\nimport type { RequireDrizzleKit } from '../types.js'\n\nconst require = createRequire(import.meta.url)\n\nexport const requireDrizzleKit: RequireDrizzleKit = () => {\n const {\n generateSQLiteDrizzleJson,\n generateSQLiteMigration,\n pushSQLiteSchema,\n } = require('drizzle-kit/api')\n\n return {\n generateDrizzleJson: generateSQLiteDrizzleJson,\n generateMigration: generateSQLiteMigration,\n pushSchema: pushSQLiteSchema,\n }\n}\n"],"names":["createRequire","require","url","requireDrizzleKit","generateSQLiteDrizzleJson","generateSQLiteMigration","pushSQLiteSchema","generateDrizzleJson","generateMigration","pushSchema"],"mappings":"AAAA,SAASA,aAAa,QAAQ,SAAQ;AAItC,MAAMC,UAAUD,cAAc,YAAYE,GAAG;AAE7C,OAAO,MAAMC,oBAAuC;IAClD,MAAM,EACJC,yBAAyB,EACzBC,uBAAuB,EACvBC,gBAAgB,EACjB,GAAGL,QAAQ;IAEZ,OAAO;QACLM,qBAAqBH;QACrBI,mBAAmBH;QACnBI,YAAYH;IACd;AACF,EAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildDrizzleTable.d.ts","sourceRoot":"","sources":["../../../src/sqlite/schema/buildDrizzleTable.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,iBAAiB,EAAa,MAAM,gBAAgB,CAAA;AAQlE,eAAO,MAAM,iBAAiB,EAAE,iBA8I/B,CAAA"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { sql } from 'drizzle-orm';
|
|
2
|
+
import { foreignKey, index, integer, numeric, sqliteTable, text, uniqueIndex } from 'drizzle-orm/sqlite-core';
|
|
3
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
4
|
+
const rawColumnBuilderMap = {
|
|
5
|
+
integer,
|
|
6
|
+
numeric,
|
|
7
|
+
text
|
|
8
|
+
};
|
|
9
|
+
export const buildDrizzleTable = ({ adapter, locales, rawTable })=>{
|
|
10
|
+
const columns = {};
|
|
11
|
+
for (const [key, column] of Object.entries(rawTable.columns)){
|
|
12
|
+
switch(column.type){
|
|
13
|
+
case 'boolean':
|
|
14
|
+
{
|
|
15
|
+
columns[key] = integer(column.name, {
|
|
16
|
+
mode: 'boolean'
|
|
17
|
+
});
|
|
18
|
+
break;
|
|
19
|
+
}
|
|
20
|
+
case 'enum':
|
|
21
|
+
if ('locale' in column) {
|
|
22
|
+
columns[key] = text(column.name, {
|
|
23
|
+
enum: locales
|
|
24
|
+
});
|
|
25
|
+
} else {
|
|
26
|
+
columns[key] = text(column.name, {
|
|
27
|
+
enum: column.options
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
break;
|
|
31
|
+
case 'geometry':
|
|
32
|
+
case 'jsonb':
|
|
33
|
+
{
|
|
34
|
+
columns[key] = text(column.name, {
|
|
35
|
+
mode: 'json'
|
|
36
|
+
});
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
case 'serial':
|
|
40
|
+
{
|
|
41
|
+
columns[key] = integer(column.name);
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
case 'timestamp':
|
|
45
|
+
{
|
|
46
|
+
let builder = text(column.name);
|
|
47
|
+
if (column.defaultNow) {
|
|
48
|
+
builder = builder.default(sql`(strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))`);
|
|
49
|
+
}
|
|
50
|
+
columns[key] = builder;
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
case 'uuid':
|
|
54
|
+
{
|
|
55
|
+
let builder = text(column.name, {
|
|
56
|
+
length: 36
|
|
57
|
+
});
|
|
58
|
+
if (column.defaultRandom) {
|
|
59
|
+
builder = builder.$defaultFn(()=>uuidv4());
|
|
60
|
+
}
|
|
61
|
+
columns[key] = builder;
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
case 'varchar':
|
|
65
|
+
{
|
|
66
|
+
columns[key] = text(column.name);
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
default:
|
|
70
|
+
columns[key] = rawColumnBuilderMap[column.type](column.name);
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
if (column.reference) {
|
|
74
|
+
const ref = column.reference;
|
|
75
|
+
columns[key].references(()=>adapter.tables[ref.table][ref.name], {
|
|
76
|
+
onDelete: ref.onDelete
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
if (column.primaryKey) {
|
|
80
|
+
let args = undefined;
|
|
81
|
+
if (column.type === 'integer' && column.autoIncrement) {
|
|
82
|
+
args = {
|
|
83
|
+
autoIncrement: true
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
columns[key].primaryKey(args);
|
|
87
|
+
}
|
|
88
|
+
if (column.notNull) {
|
|
89
|
+
columns[key].notNull();
|
|
90
|
+
}
|
|
91
|
+
if (typeof column.default !== 'undefined') {
|
|
92
|
+
let sanitizedDefault = column.default;
|
|
93
|
+
if (column.type === 'geometry' && Array.isArray(column.default)) {
|
|
94
|
+
sanitizedDefault = JSON.stringify({
|
|
95
|
+
type: 'Point',
|
|
96
|
+
coordinates: [
|
|
97
|
+
column.default[0],
|
|
98
|
+
column.default[1]
|
|
99
|
+
]
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
columns[key].default(sanitizedDefault);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
const extraConfig = (cols)=>{
|
|
106
|
+
const config = {};
|
|
107
|
+
if (rawTable.indexes) {
|
|
108
|
+
for (const [key, rawIndex] of Object.entries(rawTable.indexes)){
|
|
109
|
+
let fn = index;
|
|
110
|
+
if (rawIndex.unique) {
|
|
111
|
+
fn = uniqueIndex;
|
|
112
|
+
}
|
|
113
|
+
if (Array.isArray(rawIndex.on)) {
|
|
114
|
+
if (rawIndex.on.length) {
|
|
115
|
+
config[key] = fn(rawIndex.name).on(...rawIndex.on.map((colName)=>cols[colName]));
|
|
116
|
+
}
|
|
117
|
+
} else {
|
|
118
|
+
config[key] = fn(rawIndex.name).on(cols[rawIndex.on]);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
if (rawTable.foreignKeys) {
|
|
123
|
+
for (const [key, rawForeignKey] of Object.entries(rawTable.foreignKeys)){
|
|
124
|
+
let builder = foreignKey({
|
|
125
|
+
name: rawForeignKey.name,
|
|
126
|
+
columns: rawForeignKey.columns.map((colName)=>cols[colName]),
|
|
127
|
+
foreignColumns: rawForeignKey.foreignColumns.map((column)=>adapter.tables[column.table][column.name])
|
|
128
|
+
});
|
|
129
|
+
if (rawForeignKey.onDelete) {
|
|
130
|
+
builder = builder.onDelete(rawForeignKey.onDelete);
|
|
131
|
+
}
|
|
132
|
+
if (rawForeignKey.onUpdate) {
|
|
133
|
+
builder = builder.onDelete(rawForeignKey.onUpdate);
|
|
134
|
+
}
|
|
135
|
+
config[key] = builder;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return config;
|
|
139
|
+
};
|
|
140
|
+
adapter.tables[rawTable.name] = sqliteTable(rawTable.name, columns, extraConfig);
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
//# sourceMappingURL=buildDrizzleTable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/sqlite/schema/buildDrizzleTable.ts"],"sourcesContent":["import type { ForeignKeyBuilder, IndexBuilder } from 'drizzle-orm/sqlite-core'\n\nimport { sql } from 'drizzle-orm'\nimport {\n foreignKey,\n index,\n integer,\n numeric,\n sqliteTable,\n text,\n uniqueIndex,\n} from 'drizzle-orm/sqlite-core'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport type { BuildDrizzleTable, RawColumn } from '../../types.js'\n\nconst rawColumnBuilderMap: Partial<Record<RawColumn['type'], any>> = {\n integer,\n numeric,\n text,\n}\n\nexport const buildDrizzleTable: BuildDrizzleTable = ({ adapter, locales, rawTable }) => {\n const columns: Record<string, any> = {}\n\n for (const [key, column] of Object.entries(rawTable.columns)) {\n switch (column.type) {\n case 'boolean': {\n columns[key] = integer(column.name, { mode: 'boolean' })\n break\n }\n\n case 'enum':\n if ('locale' in column) {\n columns[key] = text(column.name, { enum: locales as [string, ...string[]] })\n } else {\n columns[key] = text(column.name, { enum: column.options as [string, ...string[]] })\n }\n break\n\n case 'geometry':\n case 'jsonb': {\n columns[key] = text(column.name, { mode: 'json' })\n break\n }\n\n case 'serial': {\n columns[key] = integer(column.name)\n break\n }\n\n case 'timestamp': {\n let builder = text(column.name)\n\n if (column.defaultNow) {\n builder = builder.default(sql`(strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))`)\n }\n\n columns[key] = builder\n break\n }\n\n case 'uuid': {\n let builder = text(column.name, { length: 36 })\n\n if (column.defaultRandom) {\n builder = builder.$defaultFn(() => uuidv4())\n }\n\n columns[key] = builder\n break\n }\n\n case 'varchar': {\n columns[key] = text(column.name)\n break\n }\n\n default:\n columns[key] = rawColumnBuilderMap[column.type](column.name)\n break\n }\n\n if (column.reference) {\n const ref = column.reference\n columns[key].references(() => adapter.tables[ref.table][ref.name], {\n onDelete: ref.onDelete,\n })\n }\n\n if (column.primaryKey) {\n let args: Record<string, unknown> | undefined = undefined\n\n if (column.type === 'integer' && column.autoIncrement) {\n args = { autoIncrement: true }\n }\n\n columns[key].primaryKey(args)\n }\n\n if (column.notNull) {\n columns[key].notNull()\n }\n\n if (typeof column.default !== 'undefined') {\n let sanitizedDefault = column.default\n\n if (column.type === 'geometry' && Array.isArray(column.default)) {\n sanitizedDefault = JSON.stringify({\n type: 'Point',\n coordinates: [column.default[0], column.default[1]],\n })\n }\n\n columns[key].default(sanitizedDefault)\n }\n }\n\n const extraConfig = (cols: any) => {\n const config: Record<string, ForeignKeyBuilder | IndexBuilder> = {}\n\n if (rawTable.indexes) {\n for (const [key, rawIndex] of Object.entries(rawTable.indexes)) {\n let fn: any = index\n if (rawIndex.unique) {\n fn = uniqueIndex\n }\n\n if (Array.isArray(rawIndex.on)) {\n if (rawIndex.on.length) {\n config[key] = fn(rawIndex.name).on(...rawIndex.on.map((colName) => cols[colName]))\n }\n } else {\n config[key] = fn(rawIndex.name).on(cols[rawIndex.on])\n }\n }\n }\n\n if (rawTable.foreignKeys) {\n for (const [key, rawForeignKey] of Object.entries(rawTable.foreignKeys)) {\n let builder = foreignKey({\n name: rawForeignKey.name,\n columns: rawForeignKey.columns.map((colName) => cols[colName]) as any,\n foreignColumns: rawForeignKey.foreignColumns.map(\n (column) => adapter.tables[column.table][column.name],\n ),\n })\n\n if (rawForeignKey.onDelete) {\n builder = builder.onDelete(rawForeignKey.onDelete)\n }\n\n if (rawForeignKey.onUpdate) {\n builder = builder.onDelete(rawForeignKey.onUpdate)\n }\n\n config[key] = builder\n }\n }\n\n return config\n }\n\n adapter.tables[rawTable.name] = sqliteTable(rawTable.name, columns as any, extraConfig as any)\n}\n"],"names":["sql","foreignKey","index","integer","numeric","sqliteTable","text","uniqueIndex","v4","uuidv4","rawColumnBuilderMap","buildDrizzleTable","adapter","locales","rawTable","columns","key","column","Object","entries","type","name","mode","enum","options","builder","defaultNow","default","length","defaultRandom","$defaultFn","reference","ref","references","tables","table","onDelete","primaryKey","args","undefined","autoIncrement","notNull","sanitizedDefault","Array","isArray","JSON","stringify","coordinates","extraConfig","cols","config","indexes","rawIndex","fn","unique","on","map","colName","foreignKeys","rawForeignKey","foreignColumns","onUpdate"],"mappings":"AAEA,SAASA,GAAG,QAAQ,cAAa;AACjC,SACEC,UAAU,EACVC,KAAK,EACLC,OAAO,EACPC,OAAO,EACPC,WAAW,EACXC,IAAI,EACJC,WAAW,QACN,0BAAyB;AAChC,SAASC,MAAMC,MAAM,QAAQ,OAAM;AAInC,MAAMC,sBAA+D;IACnEP;IACAC;IACAE;AACF;AAEA,OAAO,MAAMK,oBAAuC,CAAC,EAAEC,OAAO,EAAEC,OAAO,EAAEC,QAAQ,EAAE;IACjF,MAAMC,UAA+B,CAAC;IAEtC,KAAK,MAAM,CAACC,KAAKC,OAAO,IAAIC,OAAOC,OAAO,CAACL,SAASC,OAAO,EAAG;QAC5D,OAAQE,OAAOG,IAAI;YACjB,KAAK;gBAAW;oBACdL,OAAO,CAACC,IAAI,GAAGb,QAAQc,OAAOI,IAAI,EAAE;wBAAEC,MAAM;oBAAU;oBACtD;gBACF;YAEA,KAAK;gBACH,IAAI,YAAYL,QAAQ;oBACtBF,OAAO,CAACC,IAAI,GAAGV,KAAKW,OAAOI,IAAI,EAAE;wBAAEE,MAAMV;oBAAiC;gBAC5E,OAAO;oBACLE,OAAO,CAACC,IAAI,GAAGV,KAAKW,OAAOI,IAAI,EAAE;wBAAEE,MAAMN,OAAOO,OAAO;oBAA0B;gBACnF;gBACA;YAEF,KAAK;YACL,KAAK;gBAAS;oBACZT,OAAO,CAACC,IAAI,GAAGV,KAAKW,OAAOI,IAAI,EAAE;wBAAEC,MAAM;oBAAO;oBAChD;gBACF;YAEA,KAAK;gBAAU;oBACbP,OAAO,CAACC,IAAI,GAAGb,QAAQc,OAAOI,IAAI;oBAClC;gBACF;YAEA,KAAK;gBAAa;oBAChB,IAAII,UAAUnB,KAAKW,OAAOI,IAAI;oBAE9B,IAAIJ,OAAOS,UAAU,EAAE;wBACrBD,UAAUA,QAAQE,OAAO,CAAC3B,GAAG,CAAC,uCAAuC,CAAC;oBACxE;oBAEAe,OAAO,CAACC,IAAI,GAAGS;oBACf;gBACF;YAEA,KAAK;gBAAQ;oBACX,IAAIA,UAAUnB,KAAKW,OAAOI,IAAI,EAAE;wBAAEO,QAAQ;oBAAG;oBAE7C,IAAIX,OAAOY,aAAa,EAAE;wBACxBJ,UAAUA,QAAQK,UAAU,CAAC,IAAMrB;oBACrC;oBAEAM,OAAO,CAACC,IAAI,GAAGS;oBACf;gBACF;YAEA,KAAK;gBAAW;oBACdV,OAAO,CAACC,IAAI,GAAGV,KAAKW,OAAOI,IAAI;oBAC/B;gBACF;YAEA;gBACEN,OAAO,CAACC,IAAI,GAAGN,mBAAmB,CAACO,OAAOG,IAAI,CAAC,CAACH,OAAOI,IAAI;gBAC3D;QACJ;QAEA,IAAIJ,OAAOc,SAAS,EAAE;YACpB,MAAMC,MAAMf,OAAOc,SAAS;YAC5BhB,OAAO,CAACC,IAAI,CAACiB,UAAU,CAAC,IAAMrB,QAAQsB,MAAM,CAACF,IAAIG,KAAK,CAAC,CAACH,IAAIX,IAAI,CAAC,EAAE;gBACjEe,UAAUJ,IAAII,QAAQ;YACxB;QACF;QAEA,IAAInB,OAAOoB,UAAU,EAAE;YACrB,IAAIC,OAA4CC;YAEhD,IAAItB,OAAOG,IAAI,KAAK,aAAaH,OAAOuB,aAAa,EAAE;gBACrDF,OAAO;oBAAEE,eAAe;gBAAK;YAC/B;YAEAzB,OAAO,CAACC,IAAI,CAACqB,UAAU,CAACC;QAC1B;QAEA,IAAIrB,OAAOwB,OAAO,EAAE;YAClB1B,OAAO,CAACC,IAAI,CAACyB,OAAO;QACtB;QAEA,IAAI,OAAOxB,OAAOU,OAAO,KAAK,aAAa;YACzC,IAAIe,mBAAmBzB,OAAOU,OAAO;YAErC,IAAIV,OAAOG,IAAI,KAAK,cAAcuB,MAAMC,OAAO,CAAC3B,OAAOU,OAAO,GAAG;gBAC/De,mBAAmBG,KAAKC,SAAS,CAAC;oBAChC1B,MAAM;oBACN2B,aAAa;wBAAC9B,OAAOU,OAAO,CAAC,EAAE;wBAAEV,OAAOU,OAAO,CAAC,EAAE;qBAAC;gBACrD;YACF;YAEAZ,OAAO,CAACC,IAAI,CAACW,OAAO,CAACe;QACvB;IACF;IAEA,MAAMM,cAAc,CAACC;QACnB,MAAMC,SAA2D,CAAC;QAElE,IAAIpC,SAASqC,OAAO,EAAE;YACpB,KAAK,MAAM,CAACnC,KAAKoC,SAAS,IAAIlC,OAAOC,OAAO,CAACL,SAASqC,OAAO,EAAG;gBAC9D,IAAIE,KAAUnD;gBACd,IAAIkD,SAASE,MAAM,EAAE;oBACnBD,KAAK9C;gBACP;gBAEA,IAAIoC,MAAMC,OAAO,CAACQ,SAASG,EAAE,GAAG;oBAC9B,IAAIH,SAASG,EAAE,CAAC3B,MAAM,EAAE;wBACtBsB,MAAM,CAAClC,IAAI,GAAGqC,GAAGD,SAAS/B,IAAI,EAAEkC,EAAE,IAAIH,SAASG,EAAE,CAACC,GAAG,CAAC,CAACC,UAAYR,IAAI,CAACQ,QAAQ;oBAClF;gBACF,OAAO;oBACLP,MAAM,CAAClC,IAAI,GAAGqC,GAAGD,SAAS/B,IAAI,EAAEkC,EAAE,CAACN,IAAI,CAACG,SAASG,EAAE,CAAC;gBACtD;YACF;QACF;QAEA,IAAIzC,SAAS4C,WAAW,EAAE;YACxB,KAAK,MAAM,CAAC1C,KAAK2C,cAAc,IAAIzC,OAAOC,OAAO,CAACL,SAAS4C,WAAW,EAAG;gBACvE,IAAIjC,UAAUxB,WAAW;oBACvBoB,MAAMsC,cAActC,IAAI;oBACxBN,SAAS4C,cAAc5C,OAAO,CAACyC,GAAG,CAAC,CAACC,UAAYR,IAAI,CAACQ,QAAQ;oBAC7DG,gBAAgBD,cAAcC,cAAc,CAACJ,GAAG,CAC9C,CAACvC,SAAWL,QAAQsB,MAAM,CAACjB,OAAOkB,KAAK,CAAC,CAAClB,OAAOI,IAAI,CAAC;gBAEzD;gBAEA,IAAIsC,cAAcvB,QAAQ,EAAE;oBAC1BX,UAAUA,QAAQW,QAAQ,CAACuB,cAAcvB,QAAQ;gBACnD;gBAEA,IAAIuB,cAAcE,QAAQ,EAAE;oBAC1BpC,UAAUA,QAAQW,QAAQ,CAACuB,cAAcE,QAAQ;gBACnD;gBAEAX,MAAM,CAAClC,IAAI,GAAGS;YAChB;QACF;QAEA,OAAOyB;IACT;IAEAtC,QAAQsB,MAAM,CAACpB,SAASO,IAAI,CAAC,GAAGhB,YAAYS,SAASO,IAAI,EAAEN,SAAgBiC;AAC7E,EAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setColumnID.d.ts","sourceRoot":"","sources":["../../../src/sqlite/schema/setColumnID.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAGjD,eAAO,MAAM,WAAW,EAAE,WAyCzB,CAAA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export const setColumnID = ({ adapter, columns, fields })=>{
|
|
2
|
+
const idField = fields.find((field)=>field.name === 'id');
|
|
3
|
+
if (idField) {
|
|
4
|
+
if (idField.type === 'number') {
|
|
5
|
+
columns.id = {
|
|
6
|
+
name: 'id',
|
|
7
|
+
type: 'numeric',
|
|
8
|
+
primaryKey: true
|
|
9
|
+
};
|
|
10
|
+
return 'numeric';
|
|
11
|
+
}
|
|
12
|
+
if (idField.type === 'text') {
|
|
13
|
+
columns.id = {
|
|
14
|
+
name: 'id',
|
|
15
|
+
type: 'text',
|
|
16
|
+
primaryKey: true
|
|
17
|
+
};
|
|
18
|
+
return 'text';
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
if (adapter.idType === 'uuid') {
|
|
22
|
+
columns.id = {
|
|
23
|
+
name: 'id',
|
|
24
|
+
type: 'uuid',
|
|
25
|
+
defaultRandom: true,
|
|
26
|
+
primaryKey: true
|
|
27
|
+
};
|
|
28
|
+
return 'uuid';
|
|
29
|
+
}
|
|
30
|
+
columns.id = {
|
|
31
|
+
name: 'id',
|
|
32
|
+
type: 'integer',
|
|
33
|
+
autoIncrement: adapter.autoIncrement,
|
|
34
|
+
primaryKey: true
|
|
35
|
+
};
|
|
36
|
+
return 'integer';
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
//# sourceMappingURL=setColumnID.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/sqlite/schema/setColumnID.ts"],"sourcesContent":["import type { SetColumnID } from '../../types.js'\nimport type { BaseSQLiteAdapter } from '../types.js'\n\nexport const setColumnID: SetColumnID = ({ adapter, columns, fields }) => {\n const idField = fields.find((field) => field.name === 'id')\n if (idField) {\n if (idField.type === 'number') {\n columns.id = {\n name: 'id',\n type: 'numeric',\n primaryKey: true,\n }\n return 'numeric'\n }\n\n if (idField.type === 'text') {\n columns.id = {\n name: 'id',\n type: 'text',\n primaryKey: true,\n }\n return 'text'\n }\n }\n\n if (adapter.idType === 'uuid') {\n columns.id = {\n name: 'id',\n type: 'uuid',\n defaultRandom: true,\n primaryKey: true,\n }\n\n return 'uuid'\n }\n\n columns.id = {\n name: 'id',\n type: 'integer',\n autoIncrement: (adapter as unknown as BaseSQLiteAdapter).autoIncrement,\n primaryKey: true,\n }\n\n return 'integer'\n}\n"],"names":["setColumnID","adapter","columns","fields","idField","find","field","name","type","id","primaryKey","idType","defaultRandom","autoIncrement"],"mappings":"AAGA,OAAO,MAAMA,cAA2B,CAAC,EAAEC,OAAO,EAAEC,OAAO,EAAEC,MAAM,EAAE;IACnE,MAAMC,UAAUD,OAAOE,IAAI,CAAC,CAACC,QAAUA,MAAMC,IAAI,KAAK;IACtD,IAAIH,SAAS;QACX,IAAIA,QAAQI,IAAI,KAAK,UAAU;YAC7BN,QAAQO,EAAE,GAAG;gBACXF,MAAM;gBACNC,MAAM;gBACNE,YAAY;YACd;YACA,OAAO;QACT;QAEA,IAAIN,QAAQI,IAAI,KAAK,QAAQ;YAC3BN,QAAQO,EAAE,GAAG;gBACXF,MAAM;gBACNC,MAAM;gBACNE,YAAY;YACd;YACA,OAAO;QACT;IACF;IAEA,IAAIT,QAAQU,MAAM,KAAK,QAAQ;QAC7BT,QAAQO,EAAE,GAAG;YACXF,MAAM;YACNC,MAAM;YACNI,eAAe;YACfF,YAAY;QACd;QAEA,OAAO;IACT;IAEAR,QAAQO,EAAE,GAAG;QACXF,MAAM;QACNC,MAAM;QACNK,eAAe,AAACZ,QAAyCY,aAAa;QACtEH,YAAY;IACd;IAEA,OAAO;AACT,EAAC"}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import type { Client, ResultSet } from '@libsql/client';
|
|
2
|
+
import type { DrizzleConfig, Relation, Relations, SQL } from 'drizzle-orm';
|
|
3
|
+
import type { DrizzleD1Database } from 'drizzle-orm/d1';
|
|
4
|
+
import type { LibSQLDatabase } from 'drizzle-orm/libsql';
|
|
5
|
+
import type { AnySQLiteColumn, SQLiteColumn, SQLiteInsertOnConflictDoUpdateConfig, SQLiteTableWithColumns, SQLiteTransactionConfig } from 'drizzle-orm/sqlite-core';
|
|
6
|
+
import type { SQLiteRaw } from 'drizzle-orm/sqlite-core/query-builders/raw';
|
|
7
|
+
import type { Payload, PayloadRequest } from 'payload';
|
|
8
|
+
import type { Operators } from '../queries/operatorMap.js';
|
|
9
|
+
import type { BuildQueryJoinAliases, DrizzleAdapter } from '../types.js';
|
|
10
|
+
import type { extendDrizzleTable } from '../utilities/extendDrizzleTable.js';
|
|
11
|
+
type SQLiteSchema = {
|
|
12
|
+
relations: Record<string, GenericRelation>;
|
|
13
|
+
tables: Record<string, SQLiteTableWithColumns<any>>;
|
|
14
|
+
};
|
|
15
|
+
type SQLiteSchemaHookArgs = {
|
|
16
|
+
extendTable: typeof extendDrizzleTable;
|
|
17
|
+
schema: SQLiteSchema;
|
|
18
|
+
};
|
|
19
|
+
export type SQLiteSchemaHook = (args: SQLiteSchemaHookArgs) => Promise<SQLiteSchema> | SQLiteSchema;
|
|
20
|
+
export type BaseSQLiteArgs = {
|
|
21
|
+
/**
|
|
22
|
+
* Transform the schema after it's built.
|
|
23
|
+
* You can use it to customize the schema with features that aren't supported by Payload.
|
|
24
|
+
* Examples may include: composite indices, generated columns, vectors
|
|
25
|
+
*/
|
|
26
|
+
afterSchemaInit?: SQLiteSchemaHook[];
|
|
27
|
+
/**
|
|
28
|
+
* Enable this flag if you want to thread your own ID to create operation data, for example:
|
|
29
|
+
* ```ts
|
|
30
|
+
* // doc created with id 1
|
|
31
|
+
* const doc = await payload.create({ collection: 'posts', data: {id: 1, title: "my title"}})
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
allowIDOnCreate?: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Enable [AUTOINCREMENT](https://www.sqlite.org/autoinc.html) for Primary Keys.
|
|
37
|
+
* This ensures that the same ID cannot be reused from previously deleted rows.
|
|
38
|
+
*/
|
|
39
|
+
autoIncrement?: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Transform the schema before it's built.
|
|
42
|
+
* You can use it to preserve an existing database schema and if there are any collissions Payload will override them.
|
|
43
|
+
* To generate Drizzle schema from the database, see [Drizzle Kit introspection](https://orm.drizzle.team/kit-docs/commands#introspect--pull)
|
|
44
|
+
*/
|
|
45
|
+
beforeSchemaInit?: SQLiteSchemaHook[];
|
|
46
|
+
/** Generated schema from payload generate:db-schema file path */
|
|
47
|
+
generateSchemaOutputFile?: string;
|
|
48
|
+
idType?: 'number' | 'uuid';
|
|
49
|
+
localesSuffix?: string;
|
|
50
|
+
logger?: DrizzleConfig['logger'];
|
|
51
|
+
migrationDir?: string;
|
|
52
|
+
prodMigrations?: {
|
|
53
|
+
down: (args: MigrateDownArgs) => Promise<void>;
|
|
54
|
+
name: string;
|
|
55
|
+
up: (args: MigrateUpArgs) => Promise<void>;
|
|
56
|
+
}[];
|
|
57
|
+
push?: boolean;
|
|
58
|
+
relationshipsSuffix?: string;
|
|
59
|
+
schemaName?: string;
|
|
60
|
+
transactionOptions?: false | SQLiteTransactionConfig;
|
|
61
|
+
versionsSuffix?: string;
|
|
62
|
+
};
|
|
63
|
+
export type GenericColumns = {
|
|
64
|
+
[x: string]: AnySQLiteColumn;
|
|
65
|
+
};
|
|
66
|
+
export type GenericTable = SQLiteTableWithColumns<{
|
|
67
|
+
columns: GenericColumns;
|
|
68
|
+
dialect: string;
|
|
69
|
+
name: string;
|
|
70
|
+
schema: string;
|
|
71
|
+
}>;
|
|
72
|
+
export type GenericRelation = Relations<string, Record<string, Relation<string>>>;
|
|
73
|
+
export type CountDistinct = (args: {
|
|
74
|
+
column?: SQLiteColumn<any>;
|
|
75
|
+
db: LibSQLDatabase;
|
|
76
|
+
joins: BuildQueryJoinAliases;
|
|
77
|
+
tableName: string;
|
|
78
|
+
where: SQL;
|
|
79
|
+
}) => Promise<number>;
|
|
80
|
+
export type DeleteWhere = (args: {
|
|
81
|
+
db: LibSQLDatabase;
|
|
82
|
+
tableName: string;
|
|
83
|
+
where: SQL;
|
|
84
|
+
}) => Promise<void>;
|
|
85
|
+
export type DropDatabase = (args: {
|
|
86
|
+
adapter: BaseSQLiteAdapter;
|
|
87
|
+
}) => Promise<void>;
|
|
88
|
+
export type Execute<T> = (args: {
|
|
89
|
+
db?: DrizzleD1Database | LibSQLDatabase;
|
|
90
|
+
drizzle?: DrizzleD1Database | LibSQLDatabase;
|
|
91
|
+
raw?: string;
|
|
92
|
+
sql?: SQL<unknown>;
|
|
93
|
+
}) => SQLiteRaw<Promise<T>> | SQLiteRaw<ResultSet>;
|
|
94
|
+
export type Insert = (args: {
|
|
95
|
+
db: LibSQLDatabase;
|
|
96
|
+
onConflictDoUpdate?: SQLiteInsertOnConflictDoUpdateConfig<any>;
|
|
97
|
+
tableName: string;
|
|
98
|
+
values: Record<string, unknown> | Record<string, unknown>[];
|
|
99
|
+
}) => Promise<Record<string, unknown>[]>;
|
|
100
|
+
type SQLiteDrizzleAdapter = Omit<DrizzleAdapter, 'countDistinct' | 'deleteWhere' | 'drizzle' | 'dropDatabase' | 'execute' | 'idType' | 'insert' | 'operators' | 'relations'>;
|
|
101
|
+
export interface GeneratedDatabaseSchema {
|
|
102
|
+
schemaUntyped: Record<string, unknown>;
|
|
103
|
+
}
|
|
104
|
+
type ResolveSchemaType<T> = 'schema' extends keyof T ? T['schema'] : GeneratedDatabaseSchema['schemaUntyped'];
|
|
105
|
+
type Drizzle = {
|
|
106
|
+
$client: Client;
|
|
107
|
+
} & LibSQLDatabase<ResolveSchemaType<GeneratedDatabaseSchema>>;
|
|
108
|
+
export type BaseSQLiteAdapter = {
|
|
109
|
+
afterSchemaInit: SQLiteSchemaHook[];
|
|
110
|
+
autoIncrement: boolean;
|
|
111
|
+
beforeSchemaInit: SQLiteSchemaHook[];
|
|
112
|
+
client: Client;
|
|
113
|
+
countDistinct: CountDistinct;
|
|
114
|
+
defaultDrizzleSnapshot: any;
|
|
115
|
+
deleteWhere: DeleteWhere;
|
|
116
|
+
dropDatabase: DropDatabase;
|
|
117
|
+
execute: Execute<unknown>;
|
|
118
|
+
/**
|
|
119
|
+
* An object keyed on each table, with a key value pair where the constraint name is the key, followed by the dot-notation field name
|
|
120
|
+
* Used for returning properly formed errors from unique fields
|
|
121
|
+
*/
|
|
122
|
+
fieldConstraints: Record<string, Record<string, string>>;
|
|
123
|
+
idType: BaseSQLiteArgs['idType'];
|
|
124
|
+
initializing: Promise<void>;
|
|
125
|
+
insert: Insert;
|
|
126
|
+
localesSuffix?: string;
|
|
127
|
+
logger: DrizzleConfig['logger'];
|
|
128
|
+
operators: Operators;
|
|
129
|
+
prodMigrations?: {
|
|
130
|
+
down: (args: MigrateDownArgs) => Promise<void>;
|
|
131
|
+
name: string;
|
|
132
|
+
up: (args: MigrateUpArgs) => Promise<void>;
|
|
133
|
+
}[];
|
|
134
|
+
push: boolean;
|
|
135
|
+
rejectInitializing: () => void;
|
|
136
|
+
relations: Record<string, GenericRelation>;
|
|
137
|
+
relationshipsSuffix?: string;
|
|
138
|
+
resolveInitializing: () => void;
|
|
139
|
+
schema: Record<string, GenericRelation | GenericTable>;
|
|
140
|
+
schemaName?: BaseSQLiteArgs['schemaName'];
|
|
141
|
+
tableNameMap: Map<string, string>;
|
|
142
|
+
tables: Record<string, GenericTable>;
|
|
143
|
+
transactionOptions: SQLiteTransactionConfig;
|
|
144
|
+
versionsSuffix?: string;
|
|
145
|
+
} & SQLiteDrizzleAdapter;
|
|
146
|
+
export type IDType = 'integer' | 'numeric' | 'text';
|
|
147
|
+
export type MigrateUpArgs = {
|
|
148
|
+
/**
|
|
149
|
+
* The SQLite Drizzle instance that you can use to execute SQL directly within the current transaction.
|
|
150
|
+
* @example
|
|
151
|
+
* ```ts
|
|
152
|
+
* import { type MigrateUpArgs, sql } from '@payloadcms/db-sqlite'
|
|
153
|
+
*
|
|
154
|
+
* export async function up({ db, payload, req }: MigrateUpArgs): Promise<void> {
|
|
155
|
+
* const { rows: posts } = await db.run(sql`SELECT * FROM posts`)
|
|
156
|
+
* }
|
|
157
|
+
* ```
|
|
158
|
+
*/
|
|
159
|
+
db: Drizzle;
|
|
160
|
+
/**
|
|
161
|
+
* The Payload instance that you can use to execute Local API methods
|
|
162
|
+
* To use the current transaction you must pass `req` to arguments
|
|
163
|
+
* @example
|
|
164
|
+
* ```ts
|
|
165
|
+
* import { type MigrateUpArgs } from '@payloadcms/db-sqlite'
|
|
166
|
+
*
|
|
167
|
+
* export async function up({ db, payload, req }: MigrateUpArgs): Promise<void> {
|
|
168
|
+
* const posts = await payload.find({ collection: 'posts', req })
|
|
169
|
+
* }
|
|
170
|
+
* ```
|
|
171
|
+
*/
|
|
172
|
+
payload: Payload;
|
|
173
|
+
/**
|
|
174
|
+
* The `PayloadRequest` object that contains the current transaction
|
|
175
|
+
*/
|
|
176
|
+
req: PayloadRequest;
|
|
177
|
+
};
|
|
178
|
+
export type MigrateDownArgs = {
|
|
179
|
+
/**
|
|
180
|
+
* The SQLite Drizzle instance that you can use to execute SQL directly within the current transaction.
|
|
181
|
+
* @example
|
|
182
|
+
* ```ts
|
|
183
|
+
* import { type MigrateDownArgs, sql } from '@payloadcms/db-sqlite'
|
|
184
|
+
*
|
|
185
|
+
* export async function down({ db, payload, req }: MigrateDownArgs): Promise<void> {
|
|
186
|
+
* const { rows: posts } = await db.run(sql`SELECT * FROM posts`)
|
|
187
|
+
* }
|
|
188
|
+
* ```
|
|
189
|
+
*/
|
|
190
|
+
db: Drizzle;
|
|
191
|
+
/**
|
|
192
|
+
* The Payload instance that you can use to execute Local API methods
|
|
193
|
+
* To use the current transaction you must pass `req` to arguments
|
|
194
|
+
* @example
|
|
195
|
+
* ```ts
|
|
196
|
+
* import { type MigrateDownArgs } from '@payloadcms/db-sqlite'
|
|
197
|
+
*
|
|
198
|
+
* export async function down({ db, payload, req }: MigrateDownArgs): Promise<void> {
|
|
199
|
+
* const posts = await payload.find({ collection: 'posts', req })
|
|
200
|
+
* }
|
|
201
|
+
* ```
|
|
202
|
+
*/
|
|
203
|
+
payload: Payload;
|
|
204
|
+
/**
|
|
205
|
+
* The `PayloadRequest` object that contains the current transaction
|
|
206
|
+
*/
|
|
207
|
+
req: PayloadRequest;
|
|
208
|
+
};
|
|
209
|
+
export {};
|
|
210
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sqlite/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/sqlite/types.ts"],"sourcesContent":["import type { Client, ResultSet } from '@libsql/client'\nimport type { DrizzleConfig, Relation, Relations, SQL } from 'drizzle-orm'\nimport type { DrizzleD1Database } from 'drizzle-orm/d1'\nimport type { LibSQLDatabase } from 'drizzle-orm/libsql'\nimport type {\n AnySQLiteColumn,\n SQLiteColumn,\n SQLiteInsertOnConflictDoUpdateConfig,\n SQLiteTableWithColumns,\n SQLiteTransactionConfig,\n} from 'drizzle-orm/sqlite-core'\nimport type { SQLiteRaw } from 'drizzle-orm/sqlite-core/query-builders/raw'\nimport type { Payload, PayloadRequest } from 'payload'\n\nimport type { Operators } from '../queries/operatorMap.js'\nimport type { BuildQueryJoinAliases, DrizzleAdapter } from '../types.js'\nimport type { extendDrizzleTable } from '../utilities/extendDrizzleTable.js'\n\ntype SQLiteSchema = {\n relations: Record<string, GenericRelation>\n tables: Record<string, SQLiteTableWithColumns<any>>\n}\n\ntype SQLiteSchemaHookArgs = {\n extendTable: typeof extendDrizzleTable\n schema: SQLiteSchema\n}\n\nexport type SQLiteSchemaHook = (args: SQLiteSchemaHookArgs) => Promise<SQLiteSchema> | SQLiteSchema\n\nexport type BaseSQLiteArgs = {\n /**\n * Transform the schema after it's built.\n * You can use it to customize the schema with features that aren't supported by Payload.\n * Examples may include: composite indices, generated columns, vectors\n */\n afterSchemaInit?: SQLiteSchemaHook[]\n /**\n * Enable this flag if you want to thread your own ID to create operation data, for example:\n * ```ts\n * // doc created with id 1\n * const doc = await payload.create({ collection: 'posts', data: {id: 1, title: \"my title\"}})\n * ```\n */\n allowIDOnCreate?: boolean\n /**\n * Enable [AUTOINCREMENT](https://www.sqlite.org/autoinc.html) for Primary Keys.\n * This ensures that the same ID cannot be reused from previously deleted rows.\n */\n autoIncrement?: boolean\n /**\n * Transform the schema before it's built.\n * You can use it to preserve an existing database schema and if there are any collissions Payload will override them.\n * To generate Drizzle schema from the database, see [Drizzle Kit introspection](https://orm.drizzle.team/kit-docs/commands#introspect--pull)\n */\n beforeSchemaInit?: SQLiteSchemaHook[]\n /** Generated schema from payload generate:db-schema file path */\n generateSchemaOutputFile?: string\n idType?: 'number' | 'uuid'\n localesSuffix?: string\n logger?: DrizzleConfig['logger']\n migrationDir?: string\n prodMigrations?: {\n down: (args: MigrateDownArgs) => Promise<void>\n name: string\n up: (args: MigrateUpArgs) => Promise<void>\n }[]\n push?: boolean\n relationshipsSuffix?: string\n schemaName?: string\n transactionOptions?: false | SQLiteTransactionConfig\n versionsSuffix?: string\n}\n\nexport type GenericColumns = {\n [x: string]: AnySQLiteColumn\n}\n\nexport type GenericTable = SQLiteTableWithColumns<{\n columns: GenericColumns\n dialect: string\n name: string\n schema: string\n}>\n\nexport type GenericRelation = Relations<string, Record<string, Relation<string>>>\n\nexport type CountDistinct = (args: {\n column?: SQLiteColumn<any>\n db: LibSQLDatabase\n joins: BuildQueryJoinAliases\n tableName: string\n where: SQL\n}) => Promise<number>\n\nexport type DeleteWhere = (args: {\n db: LibSQLDatabase\n tableName: string\n where: SQL\n}) => Promise<void>\n\nexport type DropDatabase = (args: { adapter: BaseSQLiteAdapter }) => Promise<void>\n\nexport type Execute<T> = (args: {\n db?: DrizzleD1Database | LibSQLDatabase\n drizzle?: DrizzleD1Database | LibSQLDatabase\n raw?: string\n sql?: SQL<unknown>\n}) => SQLiteRaw<Promise<T>> | SQLiteRaw<ResultSet>\n\nexport type Insert = (args: {\n db: LibSQLDatabase\n onConflictDoUpdate?: SQLiteInsertOnConflictDoUpdateConfig<any>\n tableName: string\n values: Record<string, unknown> | Record<string, unknown>[]\n}) => Promise<Record<string, unknown>[]>\n\n// Explicitly omit drizzle property for complete override in SQLiteAdapter, required in ts 5.5\ntype SQLiteDrizzleAdapter = Omit<\n DrizzleAdapter,\n | 'countDistinct'\n | 'deleteWhere'\n | 'drizzle'\n | 'dropDatabase'\n | 'execute'\n | 'idType'\n | 'insert'\n | 'operators'\n | 'relations'\n>\n\nexport interface GeneratedDatabaseSchema {\n schemaUntyped: Record<string, unknown>\n}\n\ntype ResolveSchemaType<T> = 'schema' extends keyof T\n ? T['schema']\n : GeneratedDatabaseSchema['schemaUntyped']\n\ntype Drizzle = { $client: Client } & LibSQLDatabase<ResolveSchemaType<GeneratedDatabaseSchema>>\n\nexport type BaseSQLiteAdapter = {\n afterSchemaInit: SQLiteSchemaHook[]\n autoIncrement: boolean\n beforeSchemaInit: SQLiteSchemaHook[]\n client: Client\n countDistinct: CountDistinct\n defaultDrizzleSnapshot: any\n deleteWhere: DeleteWhere\n dropDatabase: DropDatabase\n execute: Execute<unknown>\n /**\n * An object keyed on each table, with a key value pair where the constraint name is the key, followed by the dot-notation field name\n * Used for returning properly formed errors from unique fields\n */\n fieldConstraints: Record<string, Record<string, string>>\n idType: BaseSQLiteArgs['idType']\n initializing: Promise<void>\n insert: Insert\n localesSuffix?: string\n logger: DrizzleConfig['logger']\n operators: Operators\n prodMigrations?: {\n down: (args: MigrateDownArgs) => Promise<void>\n name: string\n up: (args: MigrateUpArgs) => Promise<void>\n }[]\n push: boolean\n rejectInitializing: () => void\n relations: Record<string, GenericRelation>\n relationshipsSuffix?: string\n resolveInitializing: () => void\n schema: Record<string, GenericRelation | GenericTable>\n schemaName?: BaseSQLiteArgs['schemaName']\n tableNameMap: Map<string, string>\n tables: Record<string, GenericTable>\n transactionOptions: SQLiteTransactionConfig\n versionsSuffix?: string\n} & SQLiteDrizzleAdapter\n\nexport type IDType = 'integer' | 'numeric' | 'text'\n\nexport type MigrateUpArgs = {\n /**\n * The SQLite Drizzle instance that you can use to execute SQL directly within the current transaction.\n * @example\n * ```ts\n * import { type MigrateUpArgs, sql } from '@payloadcms/db-sqlite'\n *\n * export async function up({ db, payload, req }: MigrateUpArgs): Promise<void> {\n * const { rows: posts } = await db.run(sql`SELECT * FROM posts`)\n * }\n * ```\n */\n db: Drizzle\n /**\n * The Payload instance that you can use to execute Local API methods\n * To use the current transaction you must pass `req` to arguments\n * @example\n * ```ts\n * import { type MigrateUpArgs } from '@payloadcms/db-sqlite'\n *\n * export async function up({ db, payload, req }: MigrateUpArgs): Promise<void> {\n * const posts = await payload.find({ collection: 'posts', req })\n * }\n * ```\n */\n payload: Payload\n /**\n * The `PayloadRequest` object that contains the current transaction\n */\n req: PayloadRequest\n}\nexport type MigrateDownArgs = {\n /**\n * The SQLite Drizzle instance that you can use to execute SQL directly within the current transaction.\n * @example\n * ```ts\n * import { type MigrateDownArgs, sql } from '@payloadcms/db-sqlite'\n *\n * export async function down({ db, payload, req }: MigrateDownArgs): Promise<void> {\n * const { rows: posts } = await db.run(sql`SELECT * FROM posts`)\n * }\n * ```\n */\n db: Drizzle\n /**\n * The Payload instance that you can use to execute Local API methods\n * To use the current transaction you must pass `req` to arguments\n * @example\n * ```ts\n * import { type MigrateDownArgs } from '@payloadcms/db-sqlite'\n *\n * export async function down({ db, payload, req }: MigrateDownArgs): Promise<void> {\n * const posts = await payload.find({ collection: 'posts', req })\n * }\n * ```\n */\n payload: Payload\n /**\n * The `PayloadRequest` object that contains the current transaction\n */\n req: PayloadRequest\n}\n"],"names":[],"mappings":"AAqNA,WA8BC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateGlobalVersion.d.ts","sourceRoot":"","sources":["../src/updateGlobalVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,UAAU,EACV,eAAe,EACf,uBAAuB,EACxB,MAAM,SAAS,CAAA;AAKhB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAMhD,wBAAsB,mBAAmB,CAAC,CAAC,SAAS,UAAU,EAC5D,IAAI,EAAE,cAAc,EACpB,EACE,EAAE,EACF,MAAM,EACN,MAAM,EACN,GAAG,EACH,SAAS,EACT,MAAM,EACN,WAAW,EACX,KAAK,EAAE,QAAQ,GAChB,EAAE,uBAAuB,CAAC,CAAC,CAAC
|
|
1
|
+
{"version":3,"file":"updateGlobalVersion.d.ts","sourceRoot":"","sources":["../src/updateGlobalVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,UAAU,EACV,eAAe,EACf,uBAAuB,EACxB,MAAM,SAAS,CAAA;AAKhB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAMhD,wBAAsB,mBAAmB,CAAC,CAAC,SAAS,UAAU,EAC5D,IAAI,EAAE,cAAc,EACpB,EACE,EAAE,EACF,MAAM,EACN,MAAM,EACN,GAAG,EACH,SAAS,EACT,MAAM,EACN,WAAW,EACX,KAAK,EAAE,QAAQ,GAChB,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAC5B,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAwC7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/updateGlobalVersion.ts"],"sourcesContent":["import type {\n SanitizedGlobalConfig,\n TypeWithID,\n TypeWithVersion,\n UpdateGlobalVersionArgs,\n} from 'payload'\n\nimport { buildVersionGlobalFields } from 'payload'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { buildQuery } from './queries/buildQuery.js'\nimport { upsertRow } from './upsertRow/index.js'\nimport { getTransaction } from './utilities/getTransaction.js'\n\nexport async function updateGlobalVersion<T extends TypeWithID>(\n this: DrizzleAdapter,\n {\n id,\n global,\n locale,\n req,\n returning,\n select,\n versionData,\n where: whereArg,\n }: UpdateGlobalVersionArgs<T>,\n) {\n const db = await getTransaction(this, req)\n const globalConfig: SanitizedGlobalConfig = this.payload.globals.config.find(\n ({ slug }) => slug === global,\n )\n const whereToUse = whereArg || { id: { equals: id } }\n\n const tableName = this.tableNameMap.get(\n `_${toSnakeCase(globalConfig.slug)}${this.versionsSuffix}`,\n )\n\n const fields = buildVersionGlobalFields(this.payload.config, globalConfig, true)\n\n const { where } = buildQuery({\n adapter: this,\n fields,\n locale,\n tableName,\n where: whereToUse,\n })\n\n const result = await upsertRow<TypeWithVersion<T>>({\n id,\n adapter: this,\n data: versionData,\n db,\n fields,\n ignoreResult: returning === false,\n operation: 'update',\n req,\n select,\n tableName,\n where,\n })\n\n if (returning === false) {\n return null\n }\n\n return result\n}\n"],"names":["buildVersionGlobalFields","toSnakeCase","buildQuery","upsertRow","getTransaction","updateGlobalVersion","id","global","locale","req","returning","select","versionData","where","whereArg","db","globalConfig","payload","globals","config","find","slug","whereToUse","equals","tableName","tableNameMap","get","versionsSuffix","fields","adapter","result","data","ignoreResult","operation"],"mappings":"AAOA,SAASA,wBAAwB,QAAQ,UAAS;AAClD,OAAOC,iBAAiB,gBAAe;AAIvC,SAASC,UAAU,QAAQ,0BAAyB;AACpD,SAASC,SAAS,QAAQ,uBAAsB;AAChD,SAASC,cAAc,QAAQ,gCAA+B;AAE9D,OAAO,eAAeC,oBAEpB,EACEC,EAAE,EACFC,MAAM,EACNC,MAAM,EACNC,GAAG,EACHC,SAAS,EACTC,MAAM,EACNC,WAAW,EACXC,OAAOC,QAAQ,EACY;IAE7B,MAAMC,KAAK,MAAMX,eAAe,IAAI,EAAEK;IACtC,MAAMO,eAAsC,IAAI,CAACC,OAAO,CAACC,OAAO,CAACC,MAAM,CAACC,IAAI,CAC1E,CAAC,EAAEC,IAAI,EAAE,GAAKA,SAASd;IAEzB,MAAMe,aAAaR,YAAY;QAAER,IAAI;YAAEiB,QAAQjB;QAAG;IAAE;IAEpD,MAAMkB,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CACrC,CAAC,CAAC,EAAEzB,YAAYe,aAAaK,IAAI,IAAI,IAAI,CAACM,cAAc,EAAE;IAG5D,MAAMC,SAAS5B,yBAAyB,IAAI,CAACiB,OAAO,CAACE,MAAM,EAAEH,cAAc;IAE3E,MAAM,EAAEH,KAAK,EAAE,GAAGX,WAAW;QAC3B2B,SAAS,IAAI;QACbD;QACApB;QACAgB;QACAX,OAAOS;IACT;IAEA,MAAMQ,SAAS,MAAM3B,UAA8B;QACjDG;QACAuB,SAAS,IAAI;QACbE,MAAMnB;QACNG;QACAa;QACAI,cAActB,cAAc;QAC5BuB,WAAW;QACXxB;QACAE;QACAa;QACAX;IACF;IAEA,IAAIH,cAAc,OAAO;QACvB,OAAO;IACT;IAEA,OAAOoB;AACT"}
|
|
1
|
+
{"version":3,"sources":["../src/updateGlobalVersion.ts"],"sourcesContent":["import type {\n SanitizedGlobalConfig,\n TypeWithID,\n TypeWithVersion,\n UpdateGlobalVersionArgs,\n} from 'payload'\n\nimport { buildVersionGlobalFields } from 'payload'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { buildQuery } from './queries/buildQuery.js'\nimport { upsertRow } from './upsertRow/index.js'\nimport { getTransaction } from './utilities/getTransaction.js'\n\nexport async function updateGlobalVersion<T extends TypeWithID>(\n this: DrizzleAdapter,\n {\n id,\n global,\n locale,\n req,\n returning,\n select,\n versionData,\n where: whereArg,\n }: UpdateGlobalVersionArgs<T>,\n): Promise<TypeWithVersion<T>> {\n const db = await getTransaction(this, req)\n const globalConfig: SanitizedGlobalConfig = this.payload.globals.config.find(\n ({ slug }) => slug === global,\n )\n const whereToUse = whereArg || { id: { equals: id } }\n\n const tableName = this.tableNameMap.get(\n `_${toSnakeCase(globalConfig.slug)}${this.versionsSuffix}`,\n )\n\n const fields = buildVersionGlobalFields(this.payload.config, globalConfig, true)\n\n const { where } = buildQuery({\n adapter: this,\n fields,\n locale,\n tableName,\n where: whereToUse,\n })\n\n const result = await upsertRow<TypeWithVersion<T>>({\n id,\n adapter: this,\n data: versionData,\n db,\n fields,\n ignoreResult: returning === false,\n operation: 'update',\n req,\n select,\n tableName,\n where,\n })\n\n if (returning === false) {\n return null\n }\n\n return result\n}\n"],"names":["buildVersionGlobalFields","toSnakeCase","buildQuery","upsertRow","getTransaction","updateGlobalVersion","id","global","locale","req","returning","select","versionData","where","whereArg","db","globalConfig","payload","globals","config","find","slug","whereToUse","equals","tableName","tableNameMap","get","versionsSuffix","fields","adapter","result","data","ignoreResult","operation"],"mappings":"AAOA,SAASA,wBAAwB,QAAQ,UAAS;AAClD,OAAOC,iBAAiB,gBAAe;AAIvC,SAASC,UAAU,QAAQ,0BAAyB;AACpD,SAASC,SAAS,QAAQ,uBAAsB;AAChD,SAASC,cAAc,QAAQ,gCAA+B;AAE9D,OAAO,eAAeC,oBAEpB,EACEC,EAAE,EACFC,MAAM,EACNC,MAAM,EACNC,GAAG,EACHC,SAAS,EACTC,MAAM,EACNC,WAAW,EACXC,OAAOC,QAAQ,EACY;IAE7B,MAAMC,KAAK,MAAMX,eAAe,IAAI,EAAEK;IACtC,MAAMO,eAAsC,IAAI,CAACC,OAAO,CAACC,OAAO,CAACC,MAAM,CAACC,IAAI,CAC1E,CAAC,EAAEC,IAAI,EAAE,GAAKA,SAASd;IAEzB,MAAMe,aAAaR,YAAY;QAAER,IAAI;YAAEiB,QAAQjB;QAAG;IAAE;IAEpD,MAAMkB,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CACrC,CAAC,CAAC,EAAEzB,YAAYe,aAAaK,IAAI,IAAI,IAAI,CAACM,cAAc,EAAE;IAG5D,MAAMC,SAAS5B,yBAAyB,IAAI,CAACiB,OAAO,CAACE,MAAM,EAAEH,cAAc;IAE3E,MAAM,EAAEH,KAAK,EAAE,GAAGX,WAAW;QAC3B2B,SAAS,IAAI;QACbD;QACApB;QACAgB;QACAX,OAAOS;IACT;IAEA,MAAMQ,SAAS,MAAM3B,UAA8B;QACjDG;QACAuB,SAAS,IAAI;QACbE,MAAMnB;QACNG;QACAa;QACAI,cAActB,cAAc;QAC5BuB,WAAW;QACXxB;QACAE;QACAa;QACAX;IACF;IAEA,IAAIH,cAAc,OAAO;QACvB,OAAO;IACT;IAEA,OAAOoB;AACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateVersion.d.ts","sourceRoot":"","sources":["../src/updateVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,UAAU,EACV,eAAe,EACf,iBAAiB,EAClB,MAAM,SAAS,CAAA;AAKhB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAMhD,wBAAsB,aAAa,CAAC,CAAC,SAAS,UAAU,EACtD,IAAI,EAAE,cAAc,EACpB,EACE,EAAE,EACF,UAAU,EACV,MAAM,EACN,GAAG,EACH,SAAS,EACT,MAAM,EACN,WAAW,EACX,KAAK,EAAE,QAAQ,GAChB,EAAE,iBAAiB,CAAC,CAAC,CAAC
|
|
1
|
+
{"version":3,"file":"updateVersion.d.ts","sourceRoot":"","sources":["../src/updateVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,UAAU,EACV,eAAe,EACf,iBAAiB,EAClB,MAAM,SAAS,CAAA;AAKhB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAMhD,wBAAsB,aAAa,CAAC,CAAC,SAAS,UAAU,EACtD,IAAI,EAAE,cAAc,EACpB,EACE,EAAE,EACF,UAAU,EACV,MAAM,EACN,GAAG,EACH,SAAS,EACT,MAAM,EACN,WAAW,EACX,KAAK,EAAE,QAAQ,GAChB,EAAE,iBAAiB,CAAC,CAAC,CAAC,GACtB,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAsC7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/updateVersion.ts"],"sourcesContent":["import type {\n SanitizedCollectionConfig,\n TypeWithID,\n TypeWithVersion,\n UpdateVersionArgs,\n} from 'payload'\n\nimport { buildVersionCollectionFields } from 'payload'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { buildQuery } from './queries/buildQuery.js'\nimport { upsertRow } from './upsertRow/index.js'\nimport { getTransaction } from './utilities/getTransaction.js'\n\nexport async function updateVersion<T extends TypeWithID>(\n this: DrizzleAdapter,\n {\n id,\n collection,\n locale,\n req,\n returning,\n select,\n versionData,\n where: whereArg,\n }: UpdateVersionArgs<T>,\n) {\n const db = await getTransaction(this, req)\n const collectionConfig: SanitizedCollectionConfig = this.payload.collections[collection].config\n const whereToUse = whereArg || { id: { equals: id } }\n const tableName = this.tableNameMap.get(\n `_${toSnakeCase(collectionConfig.slug)}${this.versionsSuffix}`,\n )\n\n const fields = buildVersionCollectionFields(this.payload.config, collectionConfig, true)\n\n const { where } = buildQuery({\n adapter: this,\n fields,\n locale,\n tableName,\n where: whereToUse,\n })\n\n const result = await upsertRow<TypeWithVersion<T>>({\n id,\n adapter: this,\n data: versionData,\n db,\n fields,\n ignoreResult: returning === false,\n joinQuery: false,\n operation: 'update',\n req,\n select,\n tableName,\n where,\n })\n\n if (returning === false) {\n return null\n }\n\n return result\n}\n"],"names":["buildVersionCollectionFields","toSnakeCase","buildQuery","upsertRow","getTransaction","updateVersion","id","collection","locale","req","returning","select","versionData","where","whereArg","db","collectionConfig","payload","collections","config","whereToUse","equals","tableName","tableNameMap","get","slug","versionsSuffix","fields","adapter","result","data","ignoreResult","joinQuery","operation"],"mappings":"AAOA,SAASA,4BAA4B,QAAQ,UAAS;AACtD,OAAOC,iBAAiB,gBAAe;AAIvC,SAASC,UAAU,QAAQ,0BAAyB;AACpD,SAASC,SAAS,QAAQ,uBAAsB;AAChD,SAASC,cAAc,QAAQ,gCAA+B;AAE9D,OAAO,eAAeC,cAEpB,EACEC,EAAE,EACFC,UAAU,EACVC,MAAM,EACNC,GAAG,EACHC,SAAS,EACTC,MAAM,EACNC,WAAW,EACXC,OAAOC,QAAQ,EACM;IAEvB,MAAMC,KAAK,MAAMX,eAAe,IAAI,EAAEK;IACtC,MAAMO,mBAA8C,IAAI,CAACC,OAAO,CAACC,WAAW,CAACX,WAAW,CAACY,MAAM;IAC/F,MAAMC,aAAaN,YAAY;QAAER,IAAI;YAAEe,QAAQf;QAAG;IAAE;IACpD,MAAMgB,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CACrC,CAAC,CAAC,EAAEvB,YAAYe,iBAAiBS,IAAI,IAAI,IAAI,CAACC,cAAc,EAAE;IAGhE,MAAMC,SAAS3B,6BAA6B,IAAI,CAACiB,OAAO,CAACE,MAAM,EAAEH,kBAAkB;IAEnF,MAAM,EAAEH,KAAK,EAAE,GAAGX,WAAW;QAC3B0B,SAAS,IAAI;QACbD;QACAnB;QACAc;QACAT,OAAOO;IACT;IAEA,MAAMS,SAAS,MAAM1B,UAA8B;QACjDG;QACAsB,SAAS,IAAI;QACbE,MAAMlB;QACNG;QACAY;QACAI,cAAcrB,cAAc;QAC5BsB,WAAW;QACXC,WAAW;QACXxB;QACAE;QACAW;QACAT;IACF;IAEA,IAAIH,cAAc,OAAO;QACvB,OAAO;IACT;IAEA,OAAOmB;AACT"}
|
|
1
|
+
{"version":3,"sources":["../src/updateVersion.ts"],"sourcesContent":["import type {\n SanitizedCollectionConfig,\n TypeWithID,\n TypeWithVersion,\n UpdateVersionArgs,\n} from 'payload'\n\nimport { buildVersionCollectionFields } from 'payload'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { buildQuery } from './queries/buildQuery.js'\nimport { upsertRow } from './upsertRow/index.js'\nimport { getTransaction } from './utilities/getTransaction.js'\n\nexport async function updateVersion<T extends TypeWithID>(\n this: DrizzleAdapter,\n {\n id,\n collection,\n locale,\n req,\n returning,\n select,\n versionData,\n where: whereArg,\n }: UpdateVersionArgs<T>,\n): Promise<TypeWithVersion<T>> {\n const db = await getTransaction(this, req)\n const collectionConfig: SanitizedCollectionConfig = this.payload.collections[collection].config\n const whereToUse = whereArg || { id: { equals: id } }\n const tableName = this.tableNameMap.get(\n `_${toSnakeCase(collectionConfig.slug)}${this.versionsSuffix}`,\n )\n\n const fields = buildVersionCollectionFields(this.payload.config, collectionConfig, true)\n\n const { where } = buildQuery({\n adapter: this,\n fields,\n locale,\n tableName,\n where: whereToUse,\n })\n\n const result = await upsertRow<TypeWithVersion<T>>({\n id,\n adapter: this,\n data: versionData,\n db,\n fields,\n ignoreResult: returning === false,\n joinQuery: false,\n operation: 'update',\n req,\n select,\n tableName,\n where,\n })\n\n if (returning === false) {\n return null\n }\n\n return result\n}\n"],"names":["buildVersionCollectionFields","toSnakeCase","buildQuery","upsertRow","getTransaction","updateVersion","id","collection","locale","req","returning","select","versionData","where","whereArg","db","collectionConfig","payload","collections","config","whereToUse","equals","tableName","tableNameMap","get","slug","versionsSuffix","fields","adapter","result","data","ignoreResult","joinQuery","operation"],"mappings":"AAOA,SAASA,4BAA4B,QAAQ,UAAS;AACtD,OAAOC,iBAAiB,gBAAe;AAIvC,SAASC,UAAU,QAAQ,0BAAyB;AACpD,SAASC,SAAS,QAAQ,uBAAsB;AAChD,SAASC,cAAc,QAAQ,gCAA+B;AAE9D,OAAO,eAAeC,cAEpB,EACEC,EAAE,EACFC,UAAU,EACVC,MAAM,EACNC,GAAG,EACHC,SAAS,EACTC,MAAM,EACNC,WAAW,EACXC,OAAOC,QAAQ,EACM;IAEvB,MAAMC,KAAK,MAAMX,eAAe,IAAI,EAAEK;IACtC,MAAMO,mBAA8C,IAAI,CAACC,OAAO,CAACC,WAAW,CAACX,WAAW,CAACY,MAAM;IAC/F,MAAMC,aAAaN,YAAY;QAAER,IAAI;YAAEe,QAAQf;QAAG;IAAE;IACpD,MAAMgB,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CACrC,CAAC,CAAC,EAAEvB,YAAYe,iBAAiBS,IAAI,IAAI,IAAI,CAACC,cAAc,EAAE;IAGhE,MAAMC,SAAS3B,6BAA6B,IAAI,CAACiB,OAAO,CAACE,MAAM,EAAEH,kBAAkB;IAEnF,MAAM,EAAEH,KAAK,EAAE,GAAGX,WAAW;QAC3B0B,SAAS,IAAI;QACbD;QACAnB;QACAc;QACAT,OAAOO;IACT;IAEA,MAAMS,SAAS,MAAM1B,UAA8B;QACjDG;QACAsB,SAAS,IAAI;QACbE,MAAMlB;QACNG;QACAY;QACAI,cAAcrB,cAAc;QAC5BsB,WAAW;QACXC,WAAW;QACXxB;QACAE;QACAW;QACAT;IACF;IAEA,IAAIH,cAAc,OAAO;QACvB,OAAO;IACT;IAEA,OAAOmB;AACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildCreateMigration.d.ts","sourceRoot":"","sources":["../../src/utilities/buildCreateMigration.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAW9C,eAAO,MAAM,oBAAoB,qDAI9B;IACD,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,kBAAkB,EAAE,CAAC,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,KAAK,MAAM,CAAA;CACnF,KAAG,
|
|
1
|
+
{"version":3,"file":"buildCreateMigration.d.ts","sourceRoot":"","sources":["../../src/utilities/buildCreateMigration.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAW9C,eAAO,MAAM,oBAAoB,qDAI9B;IACD,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,kBAAkB,EAAE,CAAC,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,KAAK,MAAM,CAAA;CACnF,KAAG,eAkHH,CAAA"}
|