uql-orm 0.8.1 → 0.8.3
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/CHANGELOG.md +18 -0
- package/README.md +7 -0
- package/dist/browser/{mongoSchemaGenerator-B1IameRz.js → mongoSchemaGenerator-8aUNHkiE.js} +23 -17
- package/dist/browser/mongoSchemaGenerator-8aUNHkiE.js.map +1 -0
- package/dist/browser/uql-browser.min.js +2903 -3331
- package/dist/browser/uql-browser.min.js.map +1 -1
- package/dist/libsql/libsqlQuerier.d.ts +7 -1
- package/dist/libsql/libsqlQuerier.d.ts.map +1 -1
- package/dist/libsql/libsqlQuerier.js +6 -1
- package/dist/libsql/libsqlQuerier.js.map +1 -1
- package/dist/libsql/libsqlQuerierPool.d.ts +8 -0
- package/dist/libsql/libsqlQuerierPool.d.ts.map +1 -1
- package/dist/libsql/libsqlQuerierPool.js +22 -0
- package/dist/libsql/libsqlQuerierPool.js.map +1 -1
- package/dist/migrate/acquireQuerierForMigrations.d.ts +9 -0
- package/dist/migrate/acquireQuerierForMigrations.d.ts.map +1 -0
- package/dist/migrate/acquireQuerierForMigrations.js +10 -0
- package/dist/migrate/acquireQuerierForMigrations.js.map +1 -0
- package/dist/migrate/builder/migrationBuilder.d.ts +1 -0
- package/dist/migrate/builder/migrationBuilder.d.ts.map +1 -1
- package/dist/migrate/builder/migrationBuilder.js +13 -6
- package/dist/migrate/builder/migrationBuilder.js.map +1 -1
- package/dist/migrate/builder/splitSqlStatements.d.ts +18 -0
- package/dist/migrate/builder/splitSqlStatements.d.ts.map +1 -0
- package/dist/migrate/builder/splitSqlStatements.js +44 -0
- package/dist/migrate/builder/splitSqlStatements.js.map +1 -0
- package/dist/migrate/codegen/index.d.ts +1 -0
- package/dist/migrate/codegen/index.d.ts.map +1 -1
- package/dist/migrate/codegen/index.js +1 -0
- package/dist/migrate/codegen/index.js.map +1 -1
- package/dist/migrate/codegen/migrationFile.d.ts +29 -0
- package/dist/migrate/codegen/migrationFile.d.ts.map +1 -0
- package/dist/migrate/codegen/migrationFile.js +48 -0
- package/dist/migrate/codegen/migrationFile.js.map +1 -0
- package/dist/migrate/generator/mongoSchemaGenerator.d.ts +9 -3
- package/dist/migrate/generator/mongoSchemaGenerator.d.ts.map +1 -1
- package/dist/migrate/generator/mongoSchemaGenerator.js +6 -6
- package/dist/migrate/generator/mongoSchemaGenerator.js.map +1 -1
- package/dist/migrate/index.d.ts +1 -0
- package/dist/migrate/index.d.ts.map +1 -1
- package/dist/migrate/index.js +1 -0
- package/dist/migrate/index.js.map +1 -1
- package/dist/migrate/migrator.d.ts +0 -8
- package/dist/migrate/migrator.d.ts.map +1 -1
- package/dist/migrate/migrator.js +26 -66
- package/dist/migrate/migrator.js.map +1 -1
- package/dist/migrate/schemaGenerator.d.ts +3 -6
- package/dist/migrate/schemaGenerator.d.ts.map +1 -1
- package/dist/migrate/schemaGenerator.js +16 -22
- package/dist/migrate/schemaGenerator.js.map +1 -1
- package/dist/migrate/storage/databaseStorage.d.ts.map +1 -1
- package/dist/migrate/storage/databaseStorage.js +3 -2
- package/dist/migrate/storage/databaseStorage.js.map +1 -1
- package/dist/type/migration.d.ts +7 -6
- package/dist/type/migration.d.ts.map +1 -1
- package/dist/type/querierPool.d.ts +8 -1
- package/dist/type/querierPool.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/browser/mongoSchemaGenerator-B1IameRz.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"databaseStorage.js","sourceRoot":"","sources":["../../../src/migrate/storage/databaseStorage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"databaseStorage.js","sourceRoot":"","sources":["../../../src/migrate/storage/databaseStorage.ts"],"names":[],"mappings":"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"}
|
package/dist/type/migration.d.ts
CHANGED
|
@@ -161,11 +161,12 @@ export interface SchemaDiff {
|
|
|
161
161
|
*/
|
|
162
162
|
export interface SchemaGenerator {
|
|
163
163
|
/**
|
|
164
|
-
*
|
|
164
|
+
* DDL to create an entity’s table: one element per `querier.run` (optional `CREATE EXTENSION`, `CREATE TABLE`, each `CREATE INDEX`, …).
|
|
165
|
+
* Join with `'\n'` if you need a single script blob.
|
|
165
166
|
*/
|
|
166
167
|
generateCreateTable<E>(entity: Type<E>, options?: {
|
|
167
168
|
ifNotExists?: boolean;
|
|
168
|
-
}): string;
|
|
169
|
+
}): string[];
|
|
169
170
|
/**
|
|
170
171
|
* Generate DROP TABLE statement for an entity
|
|
171
172
|
*/
|
|
@@ -202,10 +203,10 @@ export interface SchemaGenerator {
|
|
|
202
203
|
* Resolve column name using field options and naming strategy
|
|
203
204
|
*/
|
|
204
205
|
resolveColumnName(key: string, field: FieldOptions): string;
|
|
205
|
-
/**
|
|
206
|
+
/** DDL from a `TableNode`, one string per `querier.run`. */
|
|
206
207
|
generateCreateTableFromNode(table: TableNode, options?: {
|
|
207
208
|
ifNotExists?: boolean;
|
|
208
|
-
}): string;
|
|
209
|
+
}): string[];
|
|
209
210
|
/** Generate CREATE INDEX statement from an IndexNode */
|
|
210
211
|
generateCreateIndexFromNode(index: IndexNode, options?: {
|
|
211
212
|
ifNotExists?: boolean;
|
|
@@ -214,10 +215,10 @@ export interface SchemaGenerator {
|
|
|
214
215
|
generateDropTableFromNode(table: TableNode, options?: {
|
|
215
216
|
ifExists?: boolean;
|
|
216
217
|
}): string;
|
|
217
|
-
/**
|
|
218
|
+
/** DDL from a `TableDefinition`, one string per `querier.run`. */
|
|
218
219
|
generateCreateTableFromDefinition(table: TableDefinition, options?: {
|
|
219
220
|
ifNotExists?: boolean;
|
|
220
|
-
}): string;
|
|
221
|
+
}): string[];
|
|
221
222
|
/** Generate DROP TABLE statement */
|
|
222
223
|
generateDropTableSql(tableName: string, options?: {
|
|
223
224
|
ifExists?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../src/type/migration.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../src/type/migration.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,9 +16,16 @@ export type QuerierPool<Q extends Querier = Querier, D extends AbstractDialect =
|
|
|
16
16
|
*/
|
|
17
17
|
readonly extra?: ExtraOptions;
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
19
|
+
* Default connection for application queries, transactions, and anything that should use the pool’s primary URL.
|
|
20
20
|
*/
|
|
21
21
|
getQuerier: () => Promise<Q>;
|
|
22
|
+
/**
|
|
23
|
+
* When omitted, migrations use {@link getQuerier} — same type (`Q`), same dialect, often the same physical connection
|
|
24
|
+
* (e.g. `:memory:` or a single remote URL). When set, **DDL and the migration journal** use this handle instead so they
|
|
25
|
+
* can target another server while the app keeps using the replica (LibSQL `file:` + `syncUrl`). Call sites use
|
|
26
|
+
* `acquireQuerierForMigrations` from `uql-orm/migrate`.
|
|
27
|
+
*/
|
|
28
|
+
getMigrationQuerier?: () => Promise<Q>;
|
|
22
29
|
/**
|
|
23
30
|
* get a querier from the pool and run the given callback inside a transaction.
|
|
24
31
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"querierPool.d.ts","sourceRoot":"","sources":["../../src/type/querierPool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAE9E;;;;;GAKG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,EAAE,CAAC,SAAS,eAAe,GAAG,eAAe,IAAI;IAClG;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IAE9B;;OAEG;IACH,UAAU,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAE7B;;OAEG;IACH,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAE5F;;OAEG;IACH,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAEjE;;OAEG;IACH,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACtB,CAAC;AAEF,0EAA0E;AAC1E,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAEpF,yCAAyC;AACzC,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAEpF;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAExF;;OAEG;IACH,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK,IAAI,CAAC;CACtE"}
|
|
1
|
+
{"version":3,"file":"querierPool.d.ts","sourceRoot":"","sources":["../../src/type/querierPool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAE9E;;;;;GAKG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,EAAE,CAAC,SAAS,eAAe,GAAG,eAAe,IAAI;IAClG;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IAE9B;;OAEG;IACH,UAAU,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAE7B;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAEvC;;OAEG;IACH,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAE5F;;OAEG;IACH,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAEjE;;OAEG;IACH,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACtB,CAAC;AAEF,0EAA0E;AAC1E,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAEpF,yCAAyC;AACzC,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAEpF;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAExF;;OAEG;IACH,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK,IAAI,CAAC;CACtE"}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"homepage": "https://uql-orm.dev",
|
|
4
4
|
"description": "Fast, type-safe TypeScript ORM — one API for every database",
|
|
5
5
|
"license": "MIT",
|
|
6
|
-
"version": "0.8.
|
|
6
|
+
"version": "0.8.3",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"sideEffects": false,
|
|
9
9
|
"main": "./dist/index.js",
|
|
@@ -156,5 +156,5 @@
|
|
|
156
156
|
"publishConfig": {
|
|
157
157
|
"access": "public"
|
|
158
158
|
},
|
|
159
|
-
"gitHead": "
|
|
159
|
+
"gitHead": "697c9271ac86f021b57816d22de39e1e76f7cee3"
|
|
160
160
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mongoSchemaGenerator-B1IameRz.js","sources":["../../src/dialect/abstractDialect.ts","../../src/mongo/mongoDialect.ts","../../src/migrate/generator/mongoSchemaGenerator.ts"],"sourcesContent":["import type { DialectFeatures, DialectName, EntityMeta, FieldOptions, NamingStrategy, Type } from '../type/index.js';\n\n/**\n * Options for initializing a dialect.\n */\nexport interface DialectOptions {\n readonly namingStrategy?: NamingStrategy;\n readonly driverCapabilities?: Partial<DialectFeatures>;\n}\n\n/**\n * Merge dialect capability defaults with optional overrides from {@link DialectOptions.driverCapabilities}.\n */\nexport function mergeDialectFeatures(defaults: DialectFeatures, patch?: Partial<DialectFeatures>): DialectFeatures {\n return patch ? { ...defaults, ...patch } : defaults;\n}\n\n/**\n * Base abstract class for all database dialects (SQL and NoSQL).\n */\nexport abstract class AbstractDialect {\n abstract readonly dialectName: DialectName;\n\n abstract readonly insertIdStrategy: 'first' | 'last';\n readonly namingStrategy: NamingStrategy | undefined;\n readonly features: DialectFeatures;\n\n constructor(\n featureDefaults: DialectFeatures,\n protected readonly options: DialectOptions = {},\n ) {\n this.namingStrategy = options.namingStrategy;\n this.features = mergeDialectFeatures(featureDefaults, options.driverCapabilities);\n }\n\n /**\n * Resolve the table name for an entity, applying naming strategy if necessary.\n */\n resolveTableName<E>(entity: Type<E>, meta: EntityMeta<E>): string {\n const name = meta.name ?? entity.name;\n if (name !== entity.name || !this.namingStrategy) {\n return name;\n }\n return this.namingStrategy.tableName(name);\n }\n\n /**\n * Resolve the column/field name for a property, applying naming strategy if necessary.\n */\n resolveColumnName(key: string, field: FieldOptions | undefined): string {\n if (!field || field.name !== key || !this.namingStrategy) {\n return field?.name ?? key;\n }\n return this.namingStrategy.columnName(field.name);\n }\n}\n","import { type Document, type Filter, ObjectId, type Sort } from 'mongodb';\nimport type { DialectOptions } from '../dialect/abstractDialect.js';\nimport { AbstractDialect } from '../dialect/abstractDialect.js';\nimport { getMeta } from '../entity/index.js';\nimport type { IndexType } from '../schema/types.js';\nimport type {\n DialectFeatures,\n EntityMeta,\n FieldValue,\n Query,\n QueryAggregate,\n QueryOptions,\n QuerySelect,\n QuerySortMap,\n QueryVectorSearch,\n QueryWhere,\n RelationKey,\n Type,\n} from '../type/index.js';\nimport {\n buildQueryWhereAsMap,\n buildSortMap,\n type CallbackKey,\n fillOnFields,\n filterFieldKeys,\n filterRelationKeys,\n getKeys,\n hasKeys,\n isVectorSearch,\n parseGroupMap,\n} from '../util/index.js';\n\nexport class MongoDialect extends AbstractDialect {\n /** Default {@link DialectFeatures} for MongoDB; shared by {@link MongoSchemaGenerator}. */\n static readonly defaultDialectFeatures: DialectFeatures = {\n explicitJsonCast: false,\n nativeArrays: false,\n supportsJsonb: false,\n returning: false,\n ifNotExists: false,\n indexIfNotExists: false,\n dropTableCascade: false,\n renameColumn: false,\n foreignKeyAlter: false,\n columnComment: false,\n vectorIndexStyle: 'create',\n vectorSupportsLength: false,\n supportsTimestamptz: false,\n defaultStringAsText: false,\n };\n\n readonly dialectName = 'mongodb';\n\n override readonly insertIdStrategy = 'last';\n\n constructor(options: DialectOptions = {}) {\n super(MongoDialect.defaultDialectFeatures, options);\n }\n\n private static readonly ID_KEY = '_id';\n private static readonly VECTOR_INDEX_TYPES = new Set<IndexType>(['vectorSearch', 'hnsw', 'ivfflat', 'vector']);\n\n private static readonly AGGREGATE_OP_MAP: Record<string, string> = {\n $count: '$sum',\n $sum: '$sum',\n $avg: '$avg',\n $min: '$min',\n $max: '$max',\n };\n\n public where<E extends Document>(\n entity: Type<E>,\n where: QueryWhere<E> = {},\n { softDelete }: QueryOptions = {},\n ): Filter<E> {\n const meta = getMeta(entity);\n const whereMap = buildQueryWhereAsMap(meta, where);\n\n if (meta.softDelete && (softDelete || softDelete === undefined) && !whereMap[meta.softDelete]) {\n const field = meta.fields[meta.softDelete];\n (whereMap as Record<string, unknown>)[this.resolveColumnName(meta.softDelete, field!)] = null;\n }\n\n const filter: Record<string, unknown> = {};\n for (const [rawKey, rawVal] of Object.entries(whereMap)) {\n let key = rawKey;\n let val: unknown = rawVal;\n if (key === '$and' || key === '$or') {\n filter[key] = (val as QueryWhere<E>[]).map((filterIt) => this.where(entity, filterIt));\n } else {\n const field = meta.fields[key];\n if (key === MongoDialect.ID_KEY || key === meta.id) {\n key = MongoDialect.ID_KEY;\n val = this.getIdValue(val as IdValue);\n } else if (field) {\n key = this.resolveColumnName(key, field);\n }\n if (\n val &&\n typeof val === 'object' &&\n !Array.isArray(val) &&\n this.hasOperatorKeys(val as Record<string, unknown>)\n ) {\n val = this.transformOperators(val as Record<string, unknown>);\n } else if (Array.isArray(val)) {\n val = { $in: val };\n }\n filter[key] = val;\n }\n }\n return filter as Filter<E>;\n }\n\n /**\n * Check if an object has operator keys (keys starting with $).\n */\n private hasOperatorKeys(obj: Record<string, unknown>): boolean {\n return Object.keys(obj).some((key) => key.startsWith('$'));\n }\n\n protected mapTableNameRow(row: { table_name: string }): string {\n return row.table_name;\n }\n\n /** String operators → { pattern: (v) => regex, caseInsensitive } */\n private static readonly REGEX_OP_MAP: Record<string, { wrap: (v: unknown) => string; ci: boolean }> = {\n $startsWith: { wrap: (v) => `^${v}`, ci: false },\n $istartsWith: { wrap: (v) => `^${v}`, ci: true },\n $endsWith: { wrap: (v) => `${v}$`, ci: false },\n $iendsWith: { wrap: (v) => `${v}$`, ci: true },\n $includes: { wrap: (v) => String(v), ci: false },\n $iincludes: { wrap: (v) => String(v), ci: true },\n $like: { wrap: (v) => String(v).replace(/%/g, '.*').replace(/_/g, '.'), ci: false },\n $ilike: { wrap: (v) => String(v).replace(/%/g, '.*').replace(/_/g, '.'), ci: true },\n };\n\n /** MongoDB native operators — pass through as-is. */\n private static readonly NATIVE_OPS = new Set([\n '$all',\n '$size',\n '$elemMatch',\n '$eq',\n '$ne',\n '$lt',\n '$lte',\n '$gt',\n '$gte',\n '$in',\n '$nin',\n '$regex',\n '$not',\n ]);\n\n /**\n * Transform UQL operators to MongoDB operators.\n */\n private transformOperators(ops: Record<string, unknown>): Record<string, unknown> {\n const result: Record<string, unknown> = {};\n for (const [op, val] of Object.entries(ops)) {\n // Native MongoDB operators — pass through directly\n if (MongoDialect.NATIVE_OPS.has(op)) {\n result[op] = val;\n continue;\n }\n // String/pattern → regex operators (8 variants including $like/$ilike)\n const regexEntry = MongoDialect.REGEX_OP_MAP[op];\n if (regexEntry) {\n result['$regex'] = regexEntry.wrap(val);\n if (regexEntry.ci) result['$options'] = 'i';\n continue;\n }\n // Structural transforms\n switch (op) {\n case '$between': {\n const [min, max] = val as [unknown, unknown];\n result['$gte'] = min;\n result['$lte'] = max;\n break;\n }\n case '$isNull':\n result[val ? '$eq' : '$ne'] = null;\n break;\n case '$isNotNull':\n result[val ? '$ne' : '$eq'] = null;\n break;\n case '$text':\n result['$text'] = { $search: val };\n break;\n default:\n result[op] = val;\n break;\n }\n }\n return result;\n }\n\n public select<E extends Document>(entity: Type<E>, select: QuerySelect<E>): QuerySelect<E> {\n return select;\n }\n\n public sort<E extends Document>(entity: Type<E>, sort: QuerySortMap<E>): Sort {\n const raw = buildSortMap(sort);\n const normalized: Record<string, 1 | -1> = {};\n for (const [key, dir] of Object.entries(raw)) {\n normalized[key] = dir === 'desc' || dir === -1 ? -1 : 1;\n }\n return normalized as Sort;\n }\n\n public aggregationPipeline<E extends Document>(entity: Type<E>, q: Query<E>): MongoAggregationPipelineEntry<E>[] {\n const meta = getMeta(entity);\n const where = this.where(entity, q.$where);\n const sort = this.sort(entity, q.$sort!);\n const firstPipelineEntry: MongoAggregationPipelineEntry<E> = {};\n\n if (hasKeys(where)) {\n firstPipelineEntry.$match = where;\n }\n if (hasKeys(sort)) {\n firstPipelineEntry.$sort = sort;\n }\n\n const pipeline: MongoAggregationPipelineEntry<E>[] = [];\n\n if (hasKeys(firstPipelineEntry)) {\n pipeline.push(firstPipelineEntry);\n }\n\n const relKeys = filterRelationKeys(meta, q.$select!);\n\n for (const relKey of relKeys) {\n const relOpts = meta.relations[relKey];\n if (!relOpts) continue;\n\n if (relOpts.cardinality === '1m' || relOpts.cardinality === 'mm') {\n // '1m' and 'mm' should be resolved in a higher layer because they will need multiple queries\n continue;\n }\n\n const relEntity = relOpts.entity!();\n const relMeta = getMeta(relEntity);\n\n if (relOpts.cardinality === 'm1') {\n const localField = meta.fields[relOpts.references![0].local];\n pipeline.push({\n $lookup: {\n from: this.resolveTableName(relEntity, relMeta),\n localField: this.resolveColumnName(relOpts.references![0].local, localField!),\n foreignField: '_id',\n as: relKey,\n },\n });\n } else {\n const foreignField = relMeta.fields[relOpts.references![0].foreign];\n const foreignFieldName = this.resolveColumnName(relOpts.references![0].foreign, foreignField!);\n const referenceWhere = this.where(relEntity, where);\n const referenceSort = this.sort(relEntity, q.$sort!);\n const _id = MongoDialect.ID_KEY;\n const referencePipelineEntry: MongoAggregationPipelineEntry<FieldValue<E>> = {\n $match: { [foreignFieldName]: referenceWhere[_id] },\n };\n if (hasKeys(referenceSort)) {\n referencePipelineEntry.$sort = referenceSort;\n }\n pipeline.push({\n $lookup: {\n from: this.resolveTableName(relEntity, relMeta),\n pipeline: [referencePipelineEntry],\n as: relKey,\n },\n });\n }\n\n pipeline.push({ $unwind: { path: `$${relKey}`, preserveNullAndEmptyArrays: true } });\n }\n\n return pipeline;\n }\n\n public normalizeIds<E extends Document>(meta: EntityMeta<E>, docs: E[] | undefined): E[] | undefined {\n return docs?.map((doc) => this.normalizeId(meta, doc)) as E[] | undefined;\n }\n\n public normalizeId<E extends Document>(meta: EntityMeta<E>, doc: E | undefined): E | undefined {\n if (!doc) {\n return doc;\n }\n\n const res = doc as unknown as Record<string, unknown>;\n const _id = MongoDialect.ID_KEY;\n\n if (res[_id]) {\n res[meta.id as string] = res[_id];\n if (meta.id !== _id) {\n delete res[_id];\n }\n }\n\n for (const key of getKeys(meta.fields)) {\n const field = meta.fields[key];\n const dbName = this.resolveColumnName(key, field!);\n if (dbName !== key && res[dbName] !== undefined) {\n res[key] = res[dbName];\n delete res[dbName];\n }\n }\n\n const relKeys = getKeys(meta.relations).filter((key) => res[key]) as RelationKey<E>[];\n\n for (const relKey of relKeys) {\n const relOpts = meta.relations[relKey];\n if (!relOpts) continue;\n const relMeta = getMeta(relOpts.entity!());\n res[relKey] = Array.isArray(res[relKey])\n ? this.normalizeIds(relMeta, res[relKey] as Document[])\n : this.normalizeId(relMeta, res[relKey] as Document);\n }\n\n return res as unknown as E;\n }\n\n public getIdValue<T extends IdValue>(value: T): T {\n if (value instanceof ObjectId) {\n return value;\n }\n try {\n return new ObjectId(value) as T;\n } catch (e) {\n return value;\n }\n }\n\n public getPersistable<E extends Document>(meta: EntityMeta<E>, payload: E, callbackKey: CallbackKey): Partial<E> {\n return this.getPersistables(meta, payload, callbackKey)[0];\n }\n\n public getPersistables<E extends Document>(\n meta: EntityMeta<E>,\n payload: E | E[],\n callbackKey: CallbackKey,\n ): Partial<E>[] {\n const payloads = fillOnFields(meta, payload, callbackKey);\n const persistableKeys = filterFieldKeys(meta, payloads[0], callbackKey);\n return payloads.map((it) =>\n persistableKeys.reduce<Partial<E>>(\n (acc, key) => {\n const field = meta.fields[key];\n (acc as Record<string, unknown>)[this.resolveColumnName(key, field!)] = it[key];\n return acc;\n },\n {} as Partial<E>,\n ),\n );\n }\n\n /**\n * Build MongoDB aggregation pipeline stages from a QueryAggregate.\n */\n public buildAggregateStages<E extends Document>(entity: Type<E>, q: QueryAggregate<E>): Record<string, unknown>[] {\n const pipeline: Record<string, unknown>[] = [];\n\n // $match stage (WHERE equivalent — before grouping)\n if (q.$where) {\n const filter = this.where(entity, q.$where);\n if (hasKeys(filter)) {\n pipeline.push({ $match: filter });\n }\n }\n\n // $group stage\n const groupId: Record<string, string> = {};\n const groupAccumulators: Record<string, Record<string, unknown>> = {};\n\n for (const entry of parseGroupMap(q.$group)) {\n if (entry.kind === 'key') {\n groupId[entry.alias] = `$${entry.alias}`;\n } else {\n const mongoOp = MongoDialect.AGGREGATE_OP_MAP[entry.op];\n groupAccumulators[entry.alias] = entry.op === '$count' ? { [mongoOp]: 1 } : { [mongoOp]: `$${entry.fieldRef}` };\n }\n }\n\n pipeline.push({ $group: { _id: hasKeys(groupId) ? groupId : null, ...groupAccumulators } });\n\n // Project stage — rename _id fields back to their original names\n if (hasKeys(groupId)) {\n const project: Record<string, unknown> = { _id: 0 };\n for (const alias of Object.keys(groupId)) {\n project[alias] = `$_id.${alias}`;\n }\n for (const alias of Object.keys(groupAccumulators)) {\n project[alias] = 1;\n }\n pipeline.push({ $project: project });\n }\n\n // $match stage for HAVING (post-group filtering)\n if (q.$having) {\n const havingFilter = this.buildHavingFilter(q.$having);\n if (hasKeys(havingFilter)) {\n pipeline.push({ $match: havingFilter });\n }\n }\n\n // $sort stage\n if (q.$sort) {\n const sort = this.sort(entity, q.$sort);\n if (hasKeys(sort)) {\n pipeline.push({ $sort: sort });\n }\n }\n\n // $skip and $limit stages\n if (q.$skip !== undefined) {\n pipeline.push({ $skip: q.$skip });\n }\n if (q.$limit !== undefined) {\n pipeline.push({ $limit: q.$limit });\n }\n\n return pipeline;\n }\n\n private buildHavingFilter(having: Record<string, unknown>): Record<string, unknown> {\n const filter: Record<string, unknown> = {};\n for (const [alias, condition] of Object.entries(having)) {\n if (condition === undefined) continue;\n if (typeof condition === 'number') {\n filter[alias] = condition;\n } else if (typeof condition === 'object' && condition !== null) {\n filter[alias] = this.transformOperators(condition as Record<string, unknown>);\n }\n }\n return filter;\n }\n\n /**\n * Separate vector sort entries from regular sort entries.\n * Returns `undefined` if no vector sort is present.\n */\n extractVectorSort<E extends Document>(sort: QuerySortMap<E> | undefined): ExtractedVectorSort<E> | undefined {\n if (!sort) return undefined;\n const raw = buildSortMap(sort);\n let vectorKey: string | undefined;\n let vectorSearch: QueryVectorSearch | undefined;\n const regularSort = {} as QuerySortMap<E>;\n\n for (const [key, value] of Object.entries(raw)) {\n if (isVectorSearch(value)) {\n vectorKey = key;\n vectorSearch = value;\n } else {\n (regularSort as Record<string, unknown>)[key] = value;\n }\n }\n\n if (!vectorKey || !vectorSearch) return undefined;\n\n return { vectorKey, vectorSearch, regularSort };\n }\n\n /**\n * Build a `$vectorSearch` aggregation pipeline stage.\n * Merges `$where` into `$vectorSearch.filter` for optimal pre-filtering.\n */\n buildVectorSearchStage<E extends Document>(\n entity: Type<E>,\n meta: EntityMeta<E>,\n key: string,\n search: QueryVectorSearch,\n where: QueryWhere<E> | undefined,\n limit: number,\n ): Record<string, unknown> {\n const field = meta.fields[key];\n if (!field) {\n throw new TypeError(`Field '${key}' not found in entity '${meta.name}'`);\n }\n const colName = this.resolveColumnName(key, field);\n\n // Resolve index name from @Index metadata, or fall back to convention\n const indexMeta = meta.indexes?.find(\n (idx) => idx.columns.includes(key) && MongoDialect.VECTOR_INDEX_TYPES.has(idx.type!),\n );\n const indexName = indexMeta?.name ?? `${colName}_index`;\n\n const stage: Record<string, unknown> = {\n index: indexName,\n path: colName,\n queryVector: [...search.$vector],\n numCandidates: limit * 10,\n limit,\n };\n\n // Pre-filter: merge $where into $vectorSearch.filter\n if (where) {\n const filter = this.where(entity, where);\n if (hasKeys(filter)) {\n stage['filter'] = filter;\n }\n }\n\n return { $vectorSearch: stage };\n }\n}\n\nexport type MongoAggregationPipelineEntry<E extends Document> = {\n $lookup?: MongoAggregationLookup<E>;\n $match?: Filter<E> | Record<string, unknown>;\n $sort?: Sort;\n $unwind?: MongoAggregationUnwind;\n $group?: Record<string, unknown>;\n $project?: Record<string, unknown>;\n $skip?: number;\n $limit?: number;\n};\n\ntype MongoAggregationLookup<E extends Document> = {\n readonly from?: string;\n readonly foreignField?: string;\n readonly localField?: string;\n readonly pipeline?: MongoAggregationPipelineEntry<FieldValue<E>>[];\n readonly as?: RelationKey<E>;\n};\n\ntype MongoAggregationUnwind = {\n readonly path?: string;\n readonly preserveNullAndEmptyArrays?: boolean;\n};\n\ntype IdValue = string | ObjectId;\n\nexport type ExtractedVectorSort<E> = {\n readonly vectorKey: string;\n readonly vectorSearch: QueryVectorSearch;\n readonly regularSort: QuerySortMap<E>;\n};\n","import { AbstractDialect } from '../../dialect/abstractDialect.js';\nimport { getMeta } from '../../entity/index.js';\nimport { MongoDialect } from '../../mongo/mongoDialect.js';\nimport type { ForeignKeyAction, IndexNode, TableNode } from '../../schema/types.js';\nimport type {\n DialectName,\n FieldOptions,\n IndexSchema,\n NamingStrategy,\n SchemaDiff,\n SchemaGenerator,\n Type,\n} from '../../type/index.js';\nimport { getKeys } from '../../util/index.js';\nimport type { TableDefinition } from '../builder/types.js';\n\nexport class MongoSchemaGenerator extends AbstractDialect implements SchemaGenerator {\n readonly dialectName = 'mongodb' satisfies DialectName;\n\n constructor(\n namingStrategy?: NamingStrategy,\n protected readonly defaultForeignKeyAction?: ForeignKeyAction,\n ) {\n super(MongoDialect.defaultDialectFeatures, { namingStrategy });\n }\n\n override readonly insertIdStrategy: 'first' | 'last' = 'last';\n\n generateCreateTable<E>(entity: Type<E>): string {\n const meta = getMeta(entity);\n const collectionName = this.resolveTableName(entity, meta);\n const indexes: IndexSchema[] = [];\n\n for (const key of getKeys(meta.fields)) {\n const field = meta.fields[key];\n if (field?.index) {\n const columnName = this.resolveColumnName(key, field);\n const indexName = typeof field.index === 'string' ? field.index : `idx_${collectionName}_${columnName}`;\n indexes.push({\n name: indexName,\n columns: [columnName],\n unique: !!field.unique,\n });\n }\n }\n\n return JSON.stringify({ action: 'createCollection', name: collectionName, indexes });\n }\n\n generateDropTable<E>(entity: Type<E>): string {\n const meta = getMeta(entity);\n const collectionName = this.resolveTableName(entity, meta);\n return JSON.stringify({ action: 'dropCollection', name: collectionName });\n }\n\n generateAlterTable(diff: SchemaDiff): string[] {\n const statements: string[] = [];\n if (diff.indexesToAdd?.length) {\n for (const index of diff.indexesToAdd) {\n statements.push(this.generateCreateIndex(diff.tableName, index));\n }\n }\n return statements;\n }\n\n generateAlterTableDown(diff: SchemaDiff): string[] {\n const statements: string[] = [];\n if (diff.indexesToAdd?.length) {\n for (const index of diff.indexesToAdd) {\n statements.push(this.generateDropIndex(diff.tableName, index.name));\n }\n }\n return statements;\n }\n\n generateCreateIndex(tableName: string, index: IndexSchema): string {\n const key: Record<string, number> = {};\n for (const col of index.columns) {\n key[col] = 1;\n }\n return JSON.stringify({\n action: 'createIndex',\n collection: tableName,\n name: index.name,\n key,\n options: { unique: index.unique, name: index.name },\n });\n }\n\n generateDropIndex(tableName: string, indexName: string): string {\n return JSON.stringify({\n action: 'dropIndex',\n collection: tableName,\n name: indexName,\n });\n }\n\n getSqlType(fieldOptions: FieldOptions, fieldType?: unknown): string {\n return '';\n }\n\n getBooleanType(): string {\n return '';\n }\n\n generateColumnDefinitions(): string[] {\n return [];\n }\n\n generateColumnDefinition(): string {\n return '';\n }\n\n generateColumnDefinitionFromSchema(): string {\n return '';\n }\n\n generateTableConstraints(): string[] {\n return [];\n }\n\n generateAlterColumnStatements(): string[] {\n return [];\n }\n\n getTableOptions(): string {\n return '';\n }\n\n generateColumnComment(): string {\n return '';\n }\n\n formatDefaultValue(): string {\n return '';\n }\n\n generateCreateTableFromNode(table: TableNode): string {\n return JSON.stringify({ action: 'createCollection', name: table.name });\n }\n\n generateCreateIndexFromNode(index: IndexNode): string {\n const key: Record<string, number> = {};\n for (const col of index.columns) {\n key[col.name] = 1;\n }\n return JSON.stringify({\n action: 'createIndex',\n collection: index.table.name,\n name: index.name,\n key,\n options: { unique: index.unique, name: index.name },\n });\n }\n\n generateDropTableFromNode(table: TableNode): string {\n return JSON.stringify({ action: 'dropCollection', name: table.name });\n }\n\n generateCreateTableFromDefinition(table: TableDefinition): string {\n return JSON.stringify({ action: 'createCollection', name: table.name });\n }\n\n generateDropTableSql(tableName: string): string {\n return JSON.stringify({ action: 'dropCollection', name: tableName });\n }\n\n generateRenameTableSql(oldName: string, newName: string): string {\n return JSON.stringify({ action: 'renameCollection', from: oldName, to: newName });\n }\n\n generateAddColumnSql(): string {\n return '';\n }\n\n generateDropColumnSql(): string {\n return '';\n }\n\n generateRenameColumnSql(): string {\n return '';\n }\n\n generateAlterColumnSql(): string {\n return '';\n }\n\n generateCreateIndexSql(tableName: string, index: IndexSchema): string {\n return this.generateCreateIndex(tableName, index);\n }\n\n generateDropIndexSql(tableName: string, indexName: string): string {\n return this.generateDropIndex(tableName, indexName);\n }\n\n generateAddForeignKeySql(): string {\n return '';\n }\n\n generateDropForeignKeySql(): string {\n return '';\n }\n\n diffSchema<E>(entity: Type<E>, currentTable: TableNode | undefined): SchemaDiff | undefined {\n const meta = getMeta(entity);\n const collectionName = this.resolveTableName(entity, meta);\n\n if (!currentTable) {\n return { tableName: collectionName, type: 'create' };\n }\n\n const indexesToAdd: IndexSchema[] = [];\n const existingIndexes = new Set(currentTable.indexes?.map((i) => i.name) ?? []);\n\n for (const key of getKeys(meta.fields)) {\n const field = meta.fields[key];\n if (field?.index) {\n const columnName = this.resolveColumnName(key, field);\n const indexName = typeof field.index === 'string' ? field.index : `idx_${collectionName}_${columnName}`;\n if (!existingIndexes.has(indexName)) {\n indexesToAdd.push({\n name: indexName,\n columns: [columnName],\n unique: !!field.unique,\n });\n }\n }\n }\n\n if (indexesToAdd.length === 0) {\n return undefined;\n }\n\n return {\n tableName: collectionName,\n type: 'alter',\n indexesToAdd,\n };\n }\n}\n"],"names":["mergeDialectFeatures","defaults","patch","AbstractDialect","featureDefaults","options","namingStrategy","features","driverCapabilities","resolveTableName","entity","meta","name","tableName","resolveColumnName","key","field","columnName","MongoDialect","defaultDialectFeatures","explicitJsonCast","nativeArrays","supportsJsonb","returning","ifNotExists","indexIfNotExists","dropTableCascade","renameColumn","foreignKeyAlter","columnComment","vectorIndexStyle","vectorSupportsLength","supportsTimestamptz","defaultStringAsText","dialectName","insertIdStrategy","ID_KEY","VECTOR_INDEX_TYPES","Set","AGGREGATE_OP_MAP","$count","$sum","$avg","$min","$max","where","softDelete","getMeta","whereMap","buildQueryWhereAsMap","undefined","fields","filter","rawKey","rawVal","Object","entries","val","map","filterIt","id","getIdValue","Array","isArray","hasOperatorKeys","transformOperators","$in","obj","keys","some","startsWith","mapTableNameRow","row","table_name","REGEX_OP_MAP","$startsWith","wrap","v","ci","$istartsWith","$endsWith","$iendsWith","$includes","String","$iincludes","$like","replace","$ilike","NATIVE_OPS","ops","result","op","has","regexEntry","min","max","$search","select","sort","raw","buildSortMap","normalized","dir","aggregationPipeline","q","$where","$sort","firstPipelineEntry","hasKeys","$match","pipeline","push","relKeys","filterRelationKeys","$select","relKey","relOpts","relations","cardinality","relEntity","relMeta","localField","references","local","$lookup","from","foreignField","as","foreign","foreignFieldName","referenceWhere","referenceSort","_id","referencePipelineEntry","$unwind","path","preserveNullAndEmptyArrays","normalizeIds","docs","doc","normalizeId","res","getKeys","dbName","value","ObjectId","e","getPersistable","payload","callbackKey","getPersistables","payloads","fillOnFields","persistableKeys","filterFieldKeys","it","reduce","acc","buildAggregateStages","groupId","groupAccumulators","entry","parseGroupMap","$group","kind","alias","mongoOp","fieldRef","project","$project","$having","havingFilter","buildHavingFilter","$skip","$limit","having","condition","extractVectorSort","vectorKey","vectorSearch","regularSort","isVectorSearch","buildVectorSearchStage","search","limit","TypeError","colName","indexMeta","indexes","find","idx","columns","includes","type","indexName","stage","index","queryVector","$vector","numCandidates","$vectorSearch","MongoSchemaGenerator","defaultForeignKeyAction","generateCreateTable","collectionName","unique","JSON","stringify","action","generateDropTable","generateAlterTable","diff","statements","indexesToAdd","length","generateCreateIndex","generateAlterTableDown","generateDropIndex","col","collection","getSqlType","fieldOptions","fieldType","getBooleanType","generateColumnDefinitions","generateColumnDefinition","generateColumnDefinitionFromSchema","generateTableConstraints","generateAlterColumnStatements","getTableOptions","generateColumnComment","formatDefaultValue","generateCreateTableFromNode","table","generateCreateIndexFromNode","generateDropTableFromNode","generateCreateTableFromDefinition","generateDropTableSql","generateRenameTableSql","oldName","newName","to","generateAddColumnSql","generateDropColumnSql","generateRenameColumnSql","generateAlterColumnSql","generateCreateIndexSql","generateDropIndexSql","generateAddForeignKeySql","generateDropForeignKeySql","diffSchema","currentTable","existingIndexes","i"],"mappings":"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"}
|