uql-orm 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +521 -0
- package/LICENSE.md +22 -0
- package/README.md +560 -0
- package/dist/browser/cc-BEf4wTUm.js +535 -0
- package/dist/browser/cc-BEf4wTUm.js.map +1 -0
- package/dist/browser/http/bus.d.ts +4 -0
- package/dist/browser/http/bus.d.ts.map +1 -0
- package/dist/browser/http/bus.js +14 -0
- package/dist/browser/http/bus.js.map +1 -0
- package/dist/browser/http/http.d.ts +7 -0
- package/dist/browser/http/http.d.ts.map +1 -0
- package/dist/browser/http/http.js +45 -0
- package/dist/browser/http/http.js.map +1 -0
- package/dist/browser/http/index.d.ts +3 -0
- package/dist/browser/http/index.d.ts.map +1 -0
- package/dist/browser/http/index.js +3 -0
- package/dist/browser/http/index.js.map +1 -0
- package/dist/browser/index.d.ts +5 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +5 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/options.d.ts +5 -0
- package/dist/browser/options.d.ts.map +1 -0
- package/dist/browser/options.js +14 -0
- package/dist/browser/options.js.map +1 -0
- package/dist/browser/querier/httpQuerier.d.ts +20 -0
- package/dist/browser/querier/httpQuerier.d.ts.map +1 -0
- package/dist/browser/querier/httpQuerier.js +68 -0
- package/dist/browser/querier/httpQuerier.js.map +1 -0
- package/dist/browser/querier/index.d.ts +3 -0
- package/dist/browser/querier/index.d.ts.map +1 -0
- package/dist/browser/querier/index.js +3 -0
- package/dist/browser/querier/index.js.map +1 -0
- package/dist/browser/querier/querier.util.d.ts +3 -0
- package/dist/browser/querier/querier.util.d.ts.map +1 -0
- package/dist/browser/querier/querier.util.js +17 -0
- package/dist/browser/querier/querier.util.js.map +1 -0
- package/dist/browser/type/clientQuerier.d.ts +24 -0
- package/dist/browser/type/clientQuerier.d.ts.map +1 -0
- package/dist/browser/type/clientQuerier.js +2 -0
- package/dist/browser/type/clientQuerier.js.map +1 -0
- package/dist/browser/type/clientQuerierPool.d.ts +5 -0
- package/dist/browser/type/clientQuerierPool.d.ts.map +1 -0
- package/dist/browser/type/clientQuerierPool.js +2 -0
- package/dist/browser/type/clientQuerierPool.js.map +1 -0
- package/dist/browser/type/index.d.ts +4 -0
- package/dist/browser/type/index.d.ts.map +1 -0
- package/dist/browser/type/index.js +4 -0
- package/dist/browser/type/index.js.map +1 -0
- package/dist/browser/type/request.d.ts +29 -0
- package/dist/browser/type/request.d.ts.map +1 -0
- package/dist/browser/type/request.js +2 -0
- package/dist/browser/type/request.js.map +1 -0
- package/dist/browser/uql-browser.min.js +4818 -0
- package/dist/browser/uql-browser.min.js.map +1 -0
- package/dist/d1/d1Querier.d.ts +45 -0
- package/dist/d1/d1Querier.d.ts.map +1 -0
- package/dist/d1/d1Querier.js +31 -0
- package/dist/d1/d1Querier.js.map +1 -0
- package/dist/d1/d1QuerierPool.d.ts +10 -0
- package/dist/d1/d1QuerierPool.d.ts.map +1 -0
- package/dist/d1/d1QuerierPool.js +16 -0
- package/dist/d1/d1QuerierPool.js.map +1 -0
- package/dist/d1/index.d.ts +3 -0
- package/dist/d1/index.d.ts.map +1 -0
- package/dist/d1/index.js +3 -0
- package/dist/d1/index.js.map +1 -0
- package/dist/dialect/abstractDialect.d.ts +22 -0
- package/dist/dialect/abstractDialect.d.ts.map +1 -0
- package/dist/dialect/abstractDialect.js +37 -0
- package/dist/dialect/abstractDialect.js.map +1 -0
- package/dist/dialect/abstractSqlDialect.d.ts +140 -0
- package/dist/dialect/abstractSqlDialect.d.ts.map +1 -0
- package/dist/dialect/abstractSqlDialect.js +957 -0
- package/dist/dialect/abstractSqlDialect.js.map +1 -0
- package/dist/dialect/dialectConfig.d.ts +23 -0
- package/dist/dialect/dialectConfig.d.ts.map +1 -0
- package/dist/dialect/dialectConfig.js +96 -0
- package/dist/dialect/dialectConfig.js.map +1 -0
- package/dist/dialect/index.d.ts +5 -0
- package/dist/dialect/index.d.ts.map +1 -0
- package/dist/dialect/index.js +5 -0
- package/dist/dialect/index.js.map +1 -0
- package/dist/dialect/queryContext.d.ts +49 -0
- package/dist/dialect/queryContext.d.ts.map +1 -0
- package/dist/dialect/queryContext.js +65 -0
- package/dist/dialect/queryContext.js.map +1 -0
- package/dist/entity/decorator/definition.d.ts +11 -0
- package/dist/entity/decorator/definition.d.ts.map +1 -0
- package/dist/entity/decorator/definition.js +247 -0
- package/dist/entity/decorator/definition.js.map +1 -0
- package/dist/entity/decorator/entity.d.ts +3 -0
- package/dist/entity/decorator/entity.d.ts.map +1 -0
- package/dist/entity/decorator/entity.js +7 -0
- package/dist/entity/decorator/entity.js.map +1 -0
- package/dist/entity/decorator/field.d.ts +3 -0
- package/dist/entity/decorator/field.d.ts.map +1 -0
- package/dist/entity/decorator/field.js +8 -0
- package/dist/entity/decorator/field.js.map +1 -0
- package/dist/entity/decorator/hook.d.ts +8 -0
- package/dist/entity/decorator/hook.d.ts.map +1 -0
- package/dist/entity/decorator/hook.js +15 -0
- package/dist/entity/decorator/hook.js.map +1 -0
- package/dist/entity/decorator/id.d.ts +3 -0
- package/dist/entity/decorator/id.d.ts.map +1 -0
- package/dist/entity/decorator/id.js +8 -0
- package/dist/entity/decorator/id.js.map +1 -0
- package/dist/entity/decorator/index-decorator.d.ts +36 -0
- package/dist/entity/decorator/index-decorator.d.ts.map +1 -0
- package/dist/entity/decorator/index-decorator.js +52 -0
- package/dist/entity/decorator/index-decorator.js.map +1 -0
- package/dist/entity/decorator/index.d.ts +8 -0
- package/dist/entity/decorator/index.d.ts.map +1 -0
- package/dist/entity/decorator/index.js +8 -0
- package/dist/entity/decorator/index.js.map +1 -0
- package/dist/entity/decorator/relation.d.ts +9 -0
- package/dist/entity/decorator/relation.d.ts.map +1 -0
- package/dist/entity/decorator/relation.js +20 -0
- package/dist/entity/decorator/relation.js.map +1 -0
- package/dist/entity/index.d.ts +2 -0
- package/dist/entity/index.d.ts.map +1 -0
- package/dist/entity/index.js +2 -0
- package/dist/entity/index.js.map +1 -0
- package/dist/express/index.d.ts +3 -0
- package/dist/express/index.d.ts.map +1 -0
- package/dist/express/index.js +3 -0
- package/dist/express/index.js.map +1 -0
- package/dist/express/querierMiddleware.d.ts +26 -0
- package/dist/express/querierMiddleware.d.ts.map +1 -0
- package/dist/express/querierMiddleware.js +149 -0
- package/dist/express/querierMiddleware.js.map +1 -0
- package/dist/express/query.util.d.ts +7 -0
- package/dist/express/query.util.d.ts.map +1 -0
- package/dist/express/query.util.js +28 -0
- package/dist/express/query.util.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/libsql/index.d.ts +3 -0
- package/dist/libsql/index.d.ts.map +1 -0
- package/dist/libsql/index.js +3 -0
- package/dist/libsql/index.js.map +1 -0
- package/dist/libsql/libsqlQuerier.d.ts +17 -0
- package/dist/libsql/libsqlQuerier.d.ts.map +1 -0
- package/dist/libsql/libsqlQuerier.js +71 -0
- package/dist/libsql/libsqlQuerier.js.map +1 -0
- package/dist/libsql/libsqlQuerierPool.d.ts +12 -0
- package/dist/libsql/libsqlQuerierPool.d.ts.map +1 -0
- package/dist/libsql/libsqlQuerierPool.js +19 -0
- package/dist/libsql/libsqlQuerierPool.js.map +1 -0
- package/dist/maria/index.d.ts +4 -0
- package/dist/maria/index.d.ts.map +1 -0
- package/dist/maria/index.js +4 -0
- package/dist/maria/index.js.map +1 -0
- package/dist/maria/mariaDialect.d.ts +10 -0
- package/dist/maria/mariaDialect.d.ts.map +1 -0
- package/dist/maria/mariaDialect.js +41 -0
- package/dist/maria/mariaDialect.js.map +1 -0
- package/dist/maria/mariadbQuerier.d.ts +10 -0
- package/dist/maria/mariadbQuerier.d.ts.map +1 -0
- package/dist/maria/mariadbQuerier.js +20 -0
- package/dist/maria/mariadbQuerier.js.map +1 -0
- package/dist/maria/mariadbQuerierPool.d.ts +11 -0
- package/dist/maria/mariadbQuerierPool.d.ts.map +1 -0
- package/dist/maria/mariadbQuerierPool.js +17 -0
- package/dist/maria/mariadbQuerierPool.js.map +1 -0
- package/dist/migrate/bin.d.ts +3 -0
- package/dist/migrate/bin.d.ts.map +1 -0
- package/dist/migrate/bin.js +7 -0
- package/dist/migrate/bin.js.map +1 -0
- package/dist/migrate/builder/columnBuilder.d.ts +79 -0
- package/dist/migrate/builder/columnBuilder.d.ts.map +1 -0
- package/dist/migrate/builder/columnBuilder.js +159 -0
- package/dist/migrate/builder/columnBuilder.js.map +1 -0
- package/dist/migrate/builder/expressions.d.ts +87 -0
- package/dist/migrate/builder/expressions.d.ts.map +1 -0
- package/dist/migrate/builder/expressions.js +150 -0
- package/dist/migrate/builder/expressions.js.map +1 -0
- package/dist/migrate/builder/index.d.ts +6 -0
- package/dist/migrate/builder/index.d.ts.map +1 -0
- package/dist/migrate/builder/index.js +6 -0
- package/dist/migrate/builder/index.js.map +1 -0
- package/dist/migrate/builder/migrationBuilder.d.ts +109 -0
- package/dist/migrate/builder/migrationBuilder.d.ts.map +1 -0
- package/dist/migrate/builder/migrationBuilder.js +463 -0
- package/dist/migrate/builder/migrationBuilder.js.map +1 -0
- package/dist/migrate/builder/tableBuilder.d.ts +51 -0
- package/dist/migrate/builder/tableBuilder.d.ts.map +1 -0
- package/dist/migrate/builder/tableBuilder.js +291 -0
- package/dist/migrate/builder/tableBuilder.js.map +1 -0
- package/dist/migrate/builder/types.d.ts +466 -0
- package/dist/migrate/builder/types.d.ts.map +1 -0
- package/dist/migrate/builder/types.js +8 -0
- package/dist/migrate/builder/types.js.map +1 -0
- package/dist/migrate/cli-config.d.ts +3 -0
- package/dist/migrate/cli-config.d.ts.map +1 -0
- package/dist/migrate/cli-config.js +35 -0
- package/dist/migrate/cli-config.js.map +1 -0
- package/dist/migrate/cli.d.ts +16 -0
- package/dist/migrate/cli.d.ts.map +1 -0
- package/dist/migrate/cli.js +394 -0
- package/dist/migrate/cli.js.map +1 -0
- package/dist/migrate/codegen/entityCodeGenerator.d.ts +137 -0
- package/dist/migrate/codegen/entityCodeGenerator.d.ts.map +1 -0
- package/dist/migrate/codegen/entityCodeGenerator.js +405 -0
- package/dist/migrate/codegen/entityCodeGenerator.js.map +1 -0
- package/dist/migrate/codegen/entityMerger.d.ts +115 -0
- package/dist/migrate/codegen/entityMerger.d.ts.map +1 -0
- package/dist/migrate/codegen/entityMerger.js +294 -0
- package/dist/migrate/codegen/entityMerger.js.map +1 -0
- package/dist/migrate/codegen/index.d.ts +10 -0
- package/dist/migrate/codegen/index.d.ts.map +1 -0
- package/dist/migrate/codegen/index.js +14 -0
- package/dist/migrate/codegen/index.js.map +1 -0
- package/dist/migrate/codegen/migrationCodeGenerator.d.ts +62 -0
- package/dist/migrate/codegen/migrationCodeGenerator.d.ts.map +1 -0
- package/dist/migrate/codegen/migrationCodeGenerator.js +356 -0
- package/dist/migrate/codegen/migrationCodeGenerator.js.map +1 -0
- package/dist/migrate/codegen/smartRelationDetector.d.ts +48 -0
- package/dist/migrate/codegen/smartRelationDetector.d.ts.map +1 -0
- package/dist/migrate/codegen/smartRelationDetector.js +135 -0
- package/dist/migrate/codegen/smartRelationDetector.js.map +1 -0
- package/dist/migrate/drift/driftDetector.d.ts +81 -0
- package/dist/migrate/drift/driftDetector.d.ts.map +1 -0
- package/dist/migrate/drift/driftDetector.js +248 -0
- package/dist/migrate/drift/driftDetector.js.map +1 -0
- package/dist/migrate/drift/index.d.ts +7 -0
- package/dist/migrate/drift/index.d.ts.map +1 -0
- package/dist/migrate/drift/index.js +7 -0
- package/dist/migrate/drift/index.js.map +1 -0
- package/dist/migrate/generator/index.d.ts +3 -0
- package/dist/migrate/generator/index.d.ts.map +1 -0
- package/dist/migrate/generator/index.js +3 -0
- package/dist/migrate/generator/index.js.map +1 -0
- package/dist/migrate/generator/mongoSchemaGenerator.d.ts +39 -0
- package/dist/migrate/generator/mongoSchemaGenerator.d.ts.map +1 -0
- package/dist/migrate/generator/mongoSchemaGenerator.js +183 -0
- package/dist/migrate/generator/mongoSchemaGenerator.js.map +1 -0
- package/dist/migrate/index.d.ts +13 -0
- package/dist/migrate/index.d.ts.map +1 -0
- package/dist/migrate/index.js +20 -0
- package/dist/migrate/index.js.map +1 -0
- package/dist/migrate/introspection/abstractSqlSchemaIntrospector.d.ts +77 -0
- package/dist/migrate/introspection/abstractSqlSchemaIntrospector.d.ts.map +1 -0
- package/dist/migrate/introspection/abstractSqlSchemaIntrospector.js +156 -0
- package/dist/migrate/introspection/abstractSqlSchemaIntrospector.js.map +1 -0
- package/dist/migrate/introspection/baseSqlIntrospector.d.ts +28 -0
- package/dist/migrate/introspection/baseSqlIntrospector.d.ts.map +1 -0
- package/dist/migrate/introspection/baseSqlIntrospector.js +135 -0
- package/dist/migrate/introspection/baseSqlIntrospector.js.map +1 -0
- package/dist/migrate/introspection/index.d.ts +6 -0
- package/dist/migrate/introspection/index.d.ts.map +1 -0
- package/dist/migrate/introspection/index.js +6 -0
- package/dist/migrate/introspection/index.js.map +1 -0
- package/dist/migrate/introspection/mongoIntrospector.d.ts +15 -0
- package/dist/migrate/introspection/mongoIntrospector.d.ts.map +1 -0
- package/dist/migrate/introspection/mongoIntrospector.js +100 -0
- package/dist/migrate/introspection/mongoIntrospector.js.map +1 -0
- package/dist/migrate/introspection/mysqlIntrospector.d.ts +59 -0
- package/dist/migrate/introspection/mysqlIntrospector.d.ts.map +1 -0
- package/dist/migrate/introspection/mysqlIntrospector.js +175 -0
- package/dist/migrate/introspection/mysqlIntrospector.js.map +1 -0
- package/dist/migrate/introspection/postgresIntrospector.d.ts +55 -0
- package/dist/migrate/introspection/postgresIntrospector.d.ts.map +1 -0
- package/dist/migrate/introspection/postgresIntrospector.js +226 -0
- package/dist/migrate/introspection/postgresIntrospector.js.map +1 -0
- package/dist/migrate/introspection/sqliteIntrospector.d.ts +60 -0
- package/dist/migrate/introspection/sqliteIntrospector.d.ts.map +1 -0
- package/dist/migrate/introspection/sqliteIntrospector.js +180 -0
- package/dist/migrate/introspection/sqliteIntrospector.js.map +1 -0
- package/dist/migrate/migrator.d.ts +176 -0
- package/dist/migrate/migrator.d.ts.map +1 -0
- package/dist/migrate/migrator.js +624 -0
- package/dist/migrate/migrator.js.map +1 -0
- package/dist/migrate/schemaGenerator.d.ts +132 -0
- package/dist/migrate/schemaGenerator.d.ts.map +1 -0
- package/dist/migrate/schemaGenerator.js +628 -0
- package/dist/migrate/schemaGenerator.js.map +1 -0
- package/dist/migrate/storage/databaseStorage.d.ts +25 -0
- package/dist/migrate/storage/databaseStorage.d.ts.map +1 -0
- package/dist/migrate/storage/databaseStorage.js +77 -0
- package/dist/migrate/storage/databaseStorage.js.map +1 -0
- package/dist/migrate/storage/index.d.ts +3 -0
- package/dist/migrate/storage/index.d.ts.map +1 -0
- package/dist/migrate/storage/index.js +3 -0
- package/dist/migrate/storage/index.js.map +1 -0
- package/dist/migrate/storage/jsonStorage.d.ts +16 -0
- package/dist/migrate/storage/jsonStorage.d.ts.map +1 -0
- package/dist/migrate/storage/jsonStorage.js +43 -0
- package/dist/migrate/storage/jsonStorage.js.map +1 -0
- package/dist/migrate/sync/index.d.ts +7 -0
- package/dist/migrate/sync/index.d.ts.map +1 -0
- package/dist/migrate/sync/index.js +7 -0
- package/dist/migrate/sync/index.js.map +1 -0
- package/dist/migrate/sync/schemaSync.d.ts +132 -0
- package/dist/migrate/sync/schemaSync.d.ts.map +1 -0
- package/dist/migrate/sync/schemaSync.js +260 -0
- package/dist/migrate/sync/schemaSync.js.map +1 -0
- package/dist/mongo/index.d.ts +4 -0
- package/dist/mongo/index.d.ts.map +1 -0
- package/dist/mongo/index.js +4 -0
- package/dist/mongo/index.js.map +1 -0
- package/dist/mongo/mongoDialect.d.ts +47 -0
- package/dist/mongo/mongoDialect.d.ts.map +1 -0
- package/dist/mongo/mongoDialect.js +299 -0
- package/dist/mongo/mongoDialect.js.map +1 -0
- package/dist/mongo/mongodbQuerier.d.ts +32 -0
- package/dist/mongo/mongodbQuerier.d.ts.map +1 -0
- package/dist/mongo/mongodbQuerier.js +267 -0
- package/dist/mongo/mongodbQuerier.js.map +1 -0
- package/dist/mongo/mongodbQuerierPool.d.ts +11 -0
- package/dist/mongo/mongodbQuerierPool.d.ts.map +1 -0
- package/dist/mongo/mongodbQuerierPool.js +20 -0
- package/dist/mongo/mongodbQuerierPool.js.map +1 -0
- package/dist/mysql/index.d.ts +4 -0
- package/dist/mysql/index.d.ts.map +1 -0
- package/dist/mysql/index.js +4 -0
- package/dist/mysql/index.js.map +1 -0
- package/dist/mysql/mysql2Querier.d.ts +14 -0
- package/dist/mysql/mysql2Querier.d.ts.map +1 -0
- package/dist/mysql/mysql2Querier.js +25 -0
- package/dist/mysql/mysql2Querier.js.map +1 -0
- package/dist/mysql/mysql2QuerierPool.d.ts +11 -0
- package/dist/mysql/mysql2QuerierPool.d.ts.map +1 -0
- package/dist/mysql/mysql2QuerierPool.js +17 -0
- package/dist/mysql/mysql2QuerierPool.js.map +1 -0
- package/dist/mysql/mysqlDialect.d.ts +19 -0
- package/dist/mysql/mysqlDialect.d.ts.map +1 -0
- package/dist/mysql/mysqlDialect.js +97 -0
- package/dist/mysql/mysqlDialect.js.map +1 -0
- package/dist/namingStrategy/defaultNamingStrategy.d.ts +10 -0
- package/dist/namingStrategy/defaultNamingStrategy.d.ts.map +1 -0
- package/dist/namingStrategy/defaultNamingStrategy.js +15 -0
- package/dist/namingStrategy/defaultNamingStrategy.js.map +1 -0
- package/dist/namingStrategy/index.d.ts +3 -0
- package/dist/namingStrategy/index.d.ts.map +1 -0
- package/dist/namingStrategy/index.js +3 -0
- package/dist/namingStrategy/index.js.map +1 -0
- package/dist/namingStrategy/snakeCaseNamingStrategy.d.ts +9 -0
- package/dist/namingStrategy/snakeCaseNamingStrategy.d.ts.map +1 -0
- package/dist/namingStrategy/snakeCaseNamingStrategy.js +14 -0
- package/dist/namingStrategy/snakeCaseNamingStrategy.js.map +1 -0
- package/dist/neon/index.d.ts +3 -0
- package/dist/neon/index.d.ts.map +1 -0
- package/dist/neon/index.js +3 -0
- package/dist/neon/index.js.map +1 -0
- package/dist/neon/neonQuerier.d.ts +10 -0
- package/dist/neon/neonQuerier.d.ts.map +1 -0
- package/dist/neon/neonQuerier.js +20 -0
- package/dist/neon/neonQuerier.js.map +1 -0
- package/dist/neon/neonQuerierPool.d.ts +11 -0
- package/dist/neon/neonQuerierPool.d.ts.map +1 -0
- package/dist/neon/neonQuerierPool.js +17 -0
- package/dist/neon/neonQuerierPool.js.map +1 -0
- package/dist/options.d.ts +5 -0
- package/dist/options.d.ts.map +1 -0
- package/dist/options.js +14 -0
- package/dist/options.js.map +1 -0
- package/dist/postgres/index.d.ts +4 -0
- package/dist/postgres/index.d.ts.map +1 -0
- package/dist/postgres/index.js +4 -0
- package/dist/postgres/index.js.map +1 -0
- package/dist/postgres/pgQuerier.d.ts +10 -0
- package/dist/postgres/pgQuerier.d.ts.map +1 -0
- package/dist/postgres/pgQuerier.js +20 -0
- package/dist/postgres/pgQuerier.js.map +1 -0
- package/dist/postgres/pgQuerierPool.d.ts +11 -0
- package/dist/postgres/pgQuerierPool.d.ts.map +1 -0
- package/dist/postgres/pgQuerierPool.js +17 -0
- package/dist/postgres/pgQuerierPool.js.map +1 -0
- package/dist/postgres/postgresDialect.d.ts +36 -0
- package/dist/postgres/postgresDialect.d.ts.map +1 -0
- package/dist/postgres/postgresDialect.js +201 -0
- package/dist/postgres/postgresDialect.js.map +1 -0
- package/dist/querier/abstractPoolQuerier.d.ts +13 -0
- package/dist/querier/abstractPoolQuerier.d.ts.map +1 -0
- package/dist/querier/abstractPoolQuerier.js +25 -0
- package/dist/querier/abstractPoolQuerier.js.map +1 -0
- package/dist/querier/abstractQuerier.d.ts +109 -0
- package/dist/querier/abstractQuerier.d.ts.map +1 -0
- package/dist/querier/abstractQuerier.js +378 -0
- package/dist/querier/abstractQuerier.js.map +1 -0
- package/dist/querier/abstractQuerierPool.d.ts +23 -0
- package/dist/querier/abstractQuerierPool.d.ts.map +1 -0
- package/dist/querier/abstractQuerierPool.js +28 -0
- package/dist/querier/abstractQuerierPool.js.map +1 -0
- package/dist/querier/abstractSqlQuerier.d.ts +38 -0
- package/dist/querier/abstractSqlQuerier.d.ts.map +1 -0
- package/dist/querier/abstractSqlQuerier.js +169 -0
- package/dist/querier/abstractSqlQuerier.js.map +1 -0
- package/dist/querier/decorator/index.d.ts +5 -0
- package/dist/querier/decorator/index.d.ts.map +1 -0
- package/dist/querier/decorator/index.js +5 -0
- package/dist/querier/decorator/index.js.map +1 -0
- package/dist/querier/decorator/injectQuerier.d.ts +4 -0
- package/dist/querier/decorator/injectQuerier.d.ts.map +1 -0
- package/dist/querier/decorator/injectQuerier.js +33 -0
- package/dist/querier/decorator/injectQuerier.js.map +1 -0
- package/dist/querier/decorator/log.d.ts +7 -0
- package/dist/querier/decorator/log.d.ts.map +1 -0
- package/dist/querier/decorator/log.js +27 -0
- package/dist/querier/decorator/log.js.map +1 -0
- package/dist/querier/decorator/serialized.d.ts +7 -0
- package/dist/querier/decorator/serialized.d.ts.map +1 -0
- package/dist/querier/decorator/serialized.js +14 -0
- package/dist/querier/decorator/serialized.js.map +1 -0
- package/dist/querier/decorator/transactional.d.ts +6 -0
- package/dist/querier/decorator/transactional.d.ts.map +1 -0
- package/dist/querier/decorator/transactional.js +48 -0
- package/dist/querier/decorator/transactional.js.map +1 -0
- package/dist/querier/index.d.ts +5 -0
- package/dist/querier/index.d.ts.map +1 -0
- package/dist/querier/index.js +5 -0
- package/dist/querier/index.js.map +1 -0
- package/dist/schema/canonicalType.d.ts +42 -0
- package/dist/schema/canonicalType.d.ts.map +1 -0
- package/dist/schema/canonicalType.js +524 -0
- package/dist/schema/canonicalType.js.map +1 -0
- package/dist/schema/index.d.ts +28 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +29 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/schemaAST.d.ts +155 -0
- package/dist/schema/schemaAST.d.ts.map +1 -0
- package/dist/schema/schemaAST.js +496 -0
- package/dist/schema/schemaAST.js.map +1 -0
- package/dist/schema/schemaASTBuilder.d.ts +58 -0
- package/dist/schema/schemaASTBuilder.d.ts.map +1 -0
- package/dist/schema/schemaASTBuilder.js +224 -0
- package/dist/schema/schemaASTBuilder.js.map +1 -0
- package/dist/schema/schemaASTDiffer.d.ts +84 -0
- package/dist/schema/schemaASTDiffer.d.ts.map +1 -0
- package/dist/schema/schemaASTDiffer.js +431 -0
- package/dist/schema/schemaASTDiffer.js.map +1 -0
- package/dist/schema/types.d.ts +347 -0
- package/dist/schema/types.d.ts.map +1 -0
- package/dist/schema/types.js +11 -0
- package/dist/schema/types.js.map +1 -0
- package/dist/sqlite/abstractSqliteQuerier.d.ts +6 -0
- package/dist/sqlite/abstractSqliteQuerier.d.ts.map +1 -0
- package/dist/sqlite/abstractSqliteQuerier.js +13 -0
- package/dist/sqlite/abstractSqliteQuerier.js.map +1 -0
- package/dist/sqlite/index.d.ts +4 -0
- package/dist/sqlite/index.d.ts.map +1 -0
- package/dist/sqlite/index.js +4 -0
- package/dist/sqlite/index.js.map +1 -0
- package/dist/sqlite/sqliteDialect.d.ts +42 -0
- package/dist/sqlite/sqliteDialect.d.ts.map +1 -0
- package/dist/sqlite/sqliteDialect.js +129 -0
- package/dist/sqlite/sqliteDialect.js.map +1 -0
- package/dist/sqlite/sqliteQuerier.d.ts +12 -0
- package/dist/sqlite/sqliteQuerier.d.ts.map +1 -0
- package/dist/sqlite/sqliteQuerier.js +25 -0
- package/dist/sqlite/sqliteQuerier.js.map +1 -0
- package/dist/sqlite/sqliteQuerierPool.d.ts +13 -0
- package/dist/sqlite/sqliteQuerierPool.d.ts.map +1 -0
- package/dist/sqlite/sqliteQuerierPool.js +34 -0
- package/dist/sqlite/sqliteQuerierPool.js.map +1 -0
- package/dist/type/config.d.ts +46 -0
- package/dist/type/config.d.ts.map +1 -0
- package/dist/type/config.js +2 -0
- package/dist/type/config.js.map +1 -0
- package/dist/type/entity.d.ts +289 -0
- package/dist/type/entity.d.ts.map +1 -0
- package/dist/type/entity.js +5 -0
- package/dist/type/entity.js.map +1 -0
- package/dist/type/index.d.ts +11 -0
- package/dist/type/index.d.ts.map +1 -0
- package/dist/type/index.js +11 -0
- package/dist/type/index.js.map +1 -0
- package/dist/type/logger.d.ts +61 -0
- package/dist/type/logger.d.ts.map +1 -0
- package/dist/type/logger.js +2 -0
- package/dist/type/logger.js.map +1 -0
- package/dist/type/migration.d.ts +268 -0
- package/dist/type/migration.d.ts.map +1 -0
- package/dist/type/migration.js +2 -0
- package/dist/type/migration.js.map +1 -0
- package/dist/type/namingStrategy.d.ts +18 -0
- package/dist/type/namingStrategy.d.ts.map +1 -0
- package/dist/type/namingStrategy.js +2 -0
- package/dist/type/namingStrategy.js.map +1 -0
- package/dist/type/querier.d.ts +154 -0
- package/dist/type/querier.d.ts.map +1 -0
- package/dist/type/querier.js +11 -0
- package/dist/type/querier.js.map +1 -0
- package/dist/type/querierPool.d.ts +31 -0
- package/dist/type/querierPool.d.ts.map +1 -0
- package/dist/type/querierPool.js +2 -0
- package/dist/type/querierPool.js.map +1 -0
- package/dist/type/query.d.ts +475 -0
- package/dist/type/query.d.ts.map +1 -0
- package/dist/type/query.js +11 -0
- package/dist/type/query.js.map +1 -0
- package/dist/type/universalQuerier.d.ts +120 -0
- package/dist/type/universalQuerier.d.ts.map +1 -0
- package/dist/type/universalQuerier.js +2 -0
- package/dist/type/universalQuerier.js.map +1 -0
- package/dist/type/utility.d.ts +33 -0
- package/dist/type/utility.d.ts.map +1 -0
- package/dist/type/utility.js +2 -0
- package/dist/type/utility.js.map +1 -0
- package/dist/util/dialect.util.d.ts +13 -0
- package/dist/util/dialect.util.d.ts.map +1 -0
- package/dist/util/dialect.util.js +82 -0
- package/dist/util/dialect.util.js.map +1 -0
- package/dist/util/field.util.d.ts +14 -0
- package/dist/util/field.util.d.ts.map +1 -0
- package/dist/util/field.util.js +57 -0
- package/dist/util/field.util.js.map +1 -0
- package/dist/util/hook.util.d.ts +15 -0
- package/dist/util/hook.util.d.ts.map +1 -0
- package/dist/util/hook.util.js +20 -0
- package/dist/util/hook.util.js.map +1 -0
- package/dist/util/index.d.ts +9 -0
- package/dist/util/index.d.ts.map +1 -0
- package/dist/util/index.js +9 -0
- package/dist/util/index.js.map +1 -0
- package/dist/util/logger.d.ts +34 -0
- package/dist/util/logger.d.ts.map +1 -0
- package/dist/util/logger.js +129 -0
- package/dist/util/logger.js.map +1 -0
- package/dist/util/object.util.d.ts +8 -0
- package/dist/util/object.util.d.ts.map +1 -0
- package/dist/util/object.util.js +19 -0
- package/dist/util/object.util.js.map +1 -0
- package/dist/util/raw.d.ts +9 -0
- package/dist/util/raw.d.ts.map +1 -0
- package/dist/util/raw.js +11 -0
- package/dist/util/raw.js.map +1 -0
- package/dist/util/sql.util.d.ts +22 -0
- package/dist/util/sql.util.d.ts.map +1 -0
- package/dist/util/sql.util.js +88 -0
- package/dist/util/sql.util.js.map +1 -0
- package/dist/util/string.util.d.ts +29 -0
- package/dist/util/string.util.d.ts.map +1 -0
- package/dist/util/string.util.js +91 -0
- package/dist/util/string.util.js.map +1 -0
- package/package.json +146 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utility.js","sourceRoot":"","sources":["../../src/type/utility.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type CascadeType, type EntityMeta, type FieldKey, type FieldOptions, type OnFieldCallback, QueryRaw, type QuerySelect, type QuerySortMap, type QueryWhere, type QueryWhereMap, type RelationKey } from '../type/index.js';
|
|
2
|
+
export type CallbackKey = keyof Pick<FieldOptions, 'onInsert' | 'onUpdate' | 'onDelete'>;
|
|
3
|
+
export declare function filterFieldKeys<E>(meta: EntityMeta<E>, payload: E, callbackKey: CallbackKey): FieldKey<E>[];
|
|
4
|
+
export declare function getFieldCallbackValue(val: OnFieldCallback): import("../type/utility.js").Scalar | QueryRaw;
|
|
5
|
+
export declare function fillOnFields<E>(meta: EntityMeta<E>, payload: E | E[], callbackKey: CallbackKey): E[];
|
|
6
|
+
export declare function filterPersistableRelationKeys<E>(meta: EntityMeta<E>, payload: E, action: CascadeType): RelationKey<E>[];
|
|
7
|
+
export declare function isCascadable(action: CascadeType, configuration?: boolean | CascadeType): boolean;
|
|
8
|
+
export declare function filterRelationKeys<E>(meta: EntityMeta<E>, select?: QuerySelect<E>): RelationKey<E>[];
|
|
9
|
+
export declare function isSelectingRelations<E>(meta: EntityMeta<E>, select?: QuerySelect<E>): boolean;
|
|
10
|
+
export declare function buildSortMap<E>(sort: QuerySortMap<E> | undefined): QuerySortMap<E>;
|
|
11
|
+
export declare function augmentWhere<E>(meta: EntityMeta<E>, target?: QueryWhere<E>, source?: QueryWhere<E>): QueryWhere<E>;
|
|
12
|
+
export declare function buildQueryWhereAsMap<E>(meta: EntityMeta<E>, filter?: QueryWhere<E>): QueryWhereMap<E>;
|
|
13
|
+
//# sourceMappingURL=dialect.util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialect.util.d.ts","sourceRoot":"","sources":["../../src/util/dialect.util.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,YAAY,EAIjB,KAAK,eAAe,EACpB,QAAQ,EACR,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,WAAW,EACjB,MAAM,kBAAkB,CAAC;AAG1B,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,UAAU,GAAG,UAAU,GAAG,UAAU,CAAC,CAAC;AAEzF,wBAAgB,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAM3G;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,eAAe,kDAEzD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,WAAW,EAAE,WAAW,GAAG,CAAC,EAAE,CAWpG;AAED,wBAAgB,6BAA6B,CAAC,CAAC,EAC7C,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EACnB,OAAO,EAAE,CAAC,EACV,MAAM,EAAE,WAAW,GAClB,WAAW,CAAC,CAAC,CAAC,EAAE,CAMlB;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,OAAO,CAKhG;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,CAGpG;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAG7F;AASD,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,CAElF;AAED,wBAAgB,YAAY,CAAC,CAAC,EAC5B,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EACnB,MAAM,GAAE,UAAU,CAAC,CAAC,CAAM,EAC1B,MAAM,GAAE,UAAU,CAAC,CAAC,CAAM,GACzB,UAAU,CAAC,CAAC,CAAC,CAOf;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,GAAE,UAAU,CAAC,CAAC,CAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAUzG"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { QueryRaw, } from '../type/index.js';
|
|
2
|
+
import { getKeys } from './object.util.js';
|
|
3
|
+
export function filterFieldKeys(meta, payload, callbackKey) {
|
|
4
|
+
const persistableKeys = Object.keys(payload).filter((key) => {
|
|
5
|
+
const fieldOpts = meta.fields[key];
|
|
6
|
+
return fieldOpts && !fieldOpts.virtual && (callbackKey !== 'onUpdate' || (fieldOpts.updatable ?? true));
|
|
7
|
+
});
|
|
8
|
+
return persistableKeys;
|
|
9
|
+
}
|
|
10
|
+
export function getFieldCallbackValue(val) {
|
|
11
|
+
return typeof val === 'function' ? val() : val;
|
|
12
|
+
}
|
|
13
|
+
export function fillOnFields(meta, payload, callbackKey) {
|
|
14
|
+
const payloads = Array.isArray(payload) ? payload : [payload];
|
|
15
|
+
const keys = getKeys(meta.fields).filter((key) => meta.fields[key]?.[callbackKey]);
|
|
16
|
+
return payloads.map((it) => {
|
|
17
|
+
for (const key of keys) {
|
|
18
|
+
if (it[key] === undefined) {
|
|
19
|
+
it[key] = getFieldCallbackValue(meta.fields[key][callbackKey]);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return it;
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
export function filterPersistableRelationKeys(meta, payload, action) {
|
|
26
|
+
const keys = Object.keys(payload);
|
|
27
|
+
return keys.filter((key) => {
|
|
28
|
+
const relOpts = meta.relations[key];
|
|
29
|
+
return relOpts && isCascadable(action, relOpts.cascade);
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
export function isCascadable(action, configuration) {
|
|
33
|
+
if (typeof configuration === 'boolean') {
|
|
34
|
+
return configuration;
|
|
35
|
+
}
|
|
36
|
+
return configuration === action;
|
|
37
|
+
}
|
|
38
|
+
export function filterRelationKeys(meta, select) {
|
|
39
|
+
const keys = filterPositiveKeys(select);
|
|
40
|
+
return keys.filter((key) => key in meta.relations);
|
|
41
|
+
}
|
|
42
|
+
export function isSelectingRelations(meta, select) {
|
|
43
|
+
const keys = filterPositiveKeys(select);
|
|
44
|
+
return keys.some((key) => key in meta.relations);
|
|
45
|
+
}
|
|
46
|
+
function filterPositiveKeys(select) {
|
|
47
|
+
if (!select) {
|
|
48
|
+
return [];
|
|
49
|
+
}
|
|
50
|
+
return getKeys(select).filter((key) => select[key]);
|
|
51
|
+
}
|
|
52
|
+
export function buildSortMap(sort) {
|
|
53
|
+
return (sort ?? {});
|
|
54
|
+
}
|
|
55
|
+
export function augmentWhere(meta, target = {}, source = {}) {
|
|
56
|
+
const targetComparison = buildQueryWhereAsMap(meta, target);
|
|
57
|
+
const sourceComparison = buildQueryWhereAsMap(meta, source);
|
|
58
|
+
return {
|
|
59
|
+
...targetComparison,
|
|
60
|
+
...sourceComparison,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
export function buildQueryWhereAsMap(meta, filter = {}) {
|
|
64
|
+
if (filter instanceof QueryRaw) {
|
|
65
|
+
return { $and: [filter] };
|
|
66
|
+
}
|
|
67
|
+
if (isIdValue(filter)) {
|
|
68
|
+
return {
|
|
69
|
+
[meta.id]: filter,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
return filter;
|
|
73
|
+
}
|
|
74
|
+
function isIdValue(filter) {
|
|
75
|
+
const type = typeof filter;
|
|
76
|
+
return (type === 'string' ||
|
|
77
|
+
type === 'number' ||
|
|
78
|
+
type === 'bigint' ||
|
|
79
|
+
typeof filter.toHexString === 'function' ||
|
|
80
|
+
Array.isArray(filter));
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=dialect.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialect.util.js","sourceRoot":"","sources":["../../src/util/dialect.util.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { FieldOptions } from '../type/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Checks if a field type is numeric (Number, BigInt, or explicit numeric logical types)
|
|
4
|
+
*/
|
|
5
|
+
export declare function isNumericType(type: unknown): boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Checks if a field type is JSON
|
|
8
|
+
*/
|
|
9
|
+
export declare function isJsonType(type: unknown): boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Checks if a field should be treated as auto-incrementing.
|
|
12
|
+
*/
|
|
13
|
+
export declare function isAutoIncrement(field: FieldOptions, isPrimaryKey: boolean): boolean;
|
|
14
|
+
//# sourceMappingURL=field.util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field.util.d.ts","sourceRoot":"","sources":["../../src/util/field.util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAqC,MAAM,kBAAkB,CAAC;AA0BxF;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAMpD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAKjD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO,CASnF"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
const NUMERIC_COLUMN_TYPES = {
|
|
2
|
+
int: true,
|
|
3
|
+
integer: true,
|
|
4
|
+
tinyint: true,
|
|
5
|
+
smallint: true,
|
|
6
|
+
bigint: true,
|
|
7
|
+
float: true,
|
|
8
|
+
float4: true,
|
|
9
|
+
float8: true,
|
|
10
|
+
double: true,
|
|
11
|
+
'double precision': true,
|
|
12
|
+
decimal: true,
|
|
13
|
+
numeric: true,
|
|
14
|
+
real: true,
|
|
15
|
+
serial: true,
|
|
16
|
+
smallserial: true,
|
|
17
|
+
bigserial: true,
|
|
18
|
+
};
|
|
19
|
+
const JSON_COLUMN_TYPES = {
|
|
20
|
+
json: true,
|
|
21
|
+
jsonb: true,
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Checks if a field type is numeric (Number, BigInt, or explicit numeric logical types)
|
|
25
|
+
*/
|
|
26
|
+
export function isNumericType(type) {
|
|
27
|
+
if (type === Number || type === BigInt)
|
|
28
|
+
return true;
|
|
29
|
+
if (typeof type === 'string') {
|
|
30
|
+
return type.toLowerCase() in NUMERIC_COLUMN_TYPES;
|
|
31
|
+
}
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Checks if a field type is JSON
|
|
36
|
+
*/
|
|
37
|
+
export function isJsonType(type) {
|
|
38
|
+
if (typeof type === 'string') {
|
|
39
|
+
return type.toLowerCase() in JSON_COLUMN_TYPES;
|
|
40
|
+
}
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Checks if a field should be treated as auto-incrementing.
|
|
45
|
+
*/
|
|
46
|
+
export function isAutoIncrement(field, isPrimaryKey) {
|
|
47
|
+
if (field.autoIncrement === false)
|
|
48
|
+
return false;
|
|
49
|
+
if (field.autoIncrement)
|
|
50
|
+
return true;
|
|
51
|
+
const colType = field.columnType?.toLowerCase();
|
|
52
|
+
if (colType === 'serial' || colType === 'smallserial' || colType === 'bigserial')
|
|
53
|
+
return true;
|
|
54
|
+
const isNumeric = isNumericType(field.type);
|
|
55
|
+
return isPrimaryKey && isNumeric && !field.onInsert && !field.columnType;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=field.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field.util.js","sourceRoot":"","sources":["../../src/util/field.util.ts"],"names":[],"mappings":"AAEA,MAAM,oBAAoB,GAAG;IAC3B,GAAG,EAAE,IAAI;IACT,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,kBAAkB,EAAE,IAAI;IACxB,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,IAAI;IACZ,WAAW,EAAE,IAAI;IACjB,SAAS,EAAE,IAAI;CACmC,CAAC;AAErD,MAAM,iBAAiB,GAAG;IACxB,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,IAAI;CACoC,CAAC;AAElD;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAa;IACzC,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACpD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,WAAW,EAAE,IAAI,oBAAoB,CAAC;IACpD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,IAAa;IACtC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,WAAW,EAAE,IAAI,iBAAiB,CAAC;IACjD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAmB,EAAE,YAAqB;IACxE,IAAI,KAAK,CAAC,aAAa,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IAChD,IAAI,KAAK,CAAC,aAAa;QAAE,OAAO,IAAI,CAAC;IAErC,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC;IAChD,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,aAAa,IAAI,OAAO,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAE9F,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5C,OAAO,YAAY,IAAI,SAAS,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;AAC3E,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { HookEvent, Querier, Type } from '../type/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Context passed to lifecycle hooks, providing access to the active querier
|
|
4
|
+
* so hooks can perform DB operations within the same transaction.
|
|
5
|
+
*/
|
|
6
|
+
export type HookContext = {
|
|
7
|
+
readonly querier: Querier;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Run all registered hooks for the given event on each payload.
|
|
11
|
+
* Hooks are invoked with `this` bound to the payload via `call`,
|
|
12
|
+
* so mutations go directly to the original object.
|
|
13
|
+
*/
|
|
14
|
+
export declare function runHooks<E extends object>(entity: Type<E>, event: HookEvent, payloads: E[], ctx: HookContext): Promise<void>;
|
|
15
|
+
//# sourceMappingURL=hook.util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook.util.d.ts","sourceRoot":"","sources":["../../src/util/hook.util.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEjE;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,CAAC,SAAS,MAAM,EAC7C,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EACf,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,CAAC,EAAE,EACb,GAAG,EAAE,WAAW,GACf,OAAO,CAAC,IAAI,CAAC,CAWf"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { getMeta } from '../entity/decorator/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Run all registered hooks for the given event on each payload.
|
|
4
|
+
* Hooks are invoked with `this` bound to the payload via `call`,
|
|
5
|
+
* so mutations go directly to the original object.
|
|
6
|
+
*/
|
|
7
|
+
export async function runHooks(entity, event, payloads, ctx) {
|
|
8
|
+
const meta = getMeta(entity);
|
|
9
|
+
const registrations = meta.hooks?.[event];
|
|
10
|
+
if (!registrations?.length)
|
|
11
|
+
return;
|
|
12
|
+
for (const payload of payloads) {
|
|
13
|
+
for (const { methodName } of registrations) {
|
|
14
|
+
const result = entity.prototype[methodName].call(payload, ctx);
|
|
15
|
+
if (result instanceof Promise)
|
|
16
|
+
await result;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=hook.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook.util.js","sourceRoot":"","sources":["../../src/util/hook.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAWvD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,MAAe,EACf,KAAgB,EAChB,QAAa,EACb,GAAgB;IAEhB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,CAAC,aAAa,EAAE,MAAM;QAAE,OAAO;IAEnC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,KAAK,MAAM,EAAE,UAAU,EAAE,IAAI,aAAa,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC/D,IAAI,MAAM,YAAY,OAAO;gBAAE,MAAM,MAAM,CAAC;QAC9C,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './dialect.util.js';
|
|
2
|
+
export * from './field.util.js';
|
|
3
|
+
export * from './hook.util.js';
|
|
4
|
+
export * from './logger.js';
|
|
5
|
+
export * from './object.util.js';
|
|
6
|
+
export * from './raw.js';
|
|
7
|
+
export * from './sql.util.js';
|
|
8
|
+
export * from './string.util.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './dialect.util.js';
|
|
2
|
+
export * from './field.util.js';
|
|
3
|
+
export * from './hook.util.js';
|
|
4
|
+
export * from './logger.js';
|
|
5
|
+
export * from './object.util.js';
|
|
6
|
+
export * from './raw.js';
|
|
7
|
+
export * from './sql.util.js';
|
|
8
|
+
export * from './string.util.js';
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Logger, LoggingOptions } from '../type/logger.js';
|
|
2
|
+
import type { SlowQueryOptions } from '../type/querier.js';
|
|
3
|
+
/**
|
|
4
|
+
* Default implementation of the Logger interface using console methods.
|
|
5
|
+
*/
|
|
6
|
+
export declare class DefaultLogger implements Logger {
|
|
7
|
+
logQuery(query: string, values?: unknown[], duration?: number): void;
|
|
8
|
+
logSlowQuery(query: string, values?: unknown[], duration?: number, logParams?: boolean): void;
|
|
9
|
+
logWarn(message: string): void;
|
|
10
|
+
logError(message: string, error?: unknown): void;
|
|
11
|
+
logInfo(message: string): void;
|
|
12
|
+
logSchema(message: string): void;
|
|
13
|
+
logMigration(message: string): void;
|
|
14
|
+
logSkippedMigration(message: string): void;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* A wrapper class that implements the Logger interface and handles different logging options.
|
|
18
|
+
*/
|
|
19
|
+
export declare class LoggerWrapper implements Logger {
|
|
20
|
+
private readonly slowQuery?;
|
|
21
|
+
private readonly levels;
|
|
22
|
+
private readonly logger?;
|
|
23
|
+
private readonly loggerFunction?;
|
|
24
|
+
constructor(options: LoggingOptions, slowQuery?: SlowQueryOptions | undefined);
|
|
25
|
+
logQuery(query: string, values?: unknown[], duration?: number): void;
|
|
26
|
+
logWarn(message: string): void;
|
|
27
|
+
logError(message: string, error?: unknown): void;
|
|
28
|
+
logInfo(message: string): void;
|
|
29
|
+
logSchema(message: string): void;
|
|
30
|
+
logMigration(message: string): void;
|
|
31
|
+
logSkippedMigration(message: string): void;
|
|
32
|
+
private log;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/util/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAkB,cAAc,EAAY,MAAM,mBAAmB,CAAC;AAC1F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAY3D;;GAEG;AACH,qBAAa,aAAc,YAAW,MAAM;IAC1C,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAMpE,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,UAAO,GAAG,IAAI;IAM1F,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI9B,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAIhD,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI9B,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIhC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAInC,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAG3C;AAED;;GAEG;AACH,qBAAa,aAAc,YAAW,MAAM;IAOxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;IAN7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAiB;gBAG/C,OAAO,EAAE,cAAc,EACN,SAAS,CAAC,EAAE,gBAAgB,YAAA;IAuB/C,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAwBpE,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI9B,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAIhD,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI9B,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIhC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAInC,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI1C,OAAO,CAAC,GAAG;CAYZ"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
const DEFAULT_LOG_LEVELS = [
|
|
2
|
+
'query',
|
|
3
|
+
'info',
|
|
4
|
+
'warn',
|
|
5
|
+
'error',
|
|
6
|
+
'schema',
|
|
7
|
+
'migration',
|
|
8
|
+
'skippedMigration',
|
|
9
|
+
];
|
|
10
|
+
/**
|
|
11
|
+
* Default implementation of the Logger interface using console methods.
|
|
12
|
+
*/
|
|
13
|
+
export class DefaultLogger {
|
|
14
|
+
logQuery(query, values, duration) {
|
|
15
|
+
const time = duration !== undefined ? ` [${duration}ms]` : '';
|
|
16
|
+
const params = values?.length ? ` -- ${JSON.stringify(values)}` : '';
|
|
17
|
+
console.log(`\x1b[36mquery:\x1b[0m ${query}${params}\x1b[32m${time}\x1b[0m`);
|
|
18
|
+
}
|
|
19
|
+
logSlowQuery(query, values, duration, logParams = true) {
|
|
20
|
+
const time = duration !== undefined ? ` [${duration}ms]` : '';
|
|
21
|
+
const params = logParams && values?.length ? ` -- ${JSON.stringify(values)}` : '';
|
|
22
|
+
console.warn(`\x1b[33mslow query:\x1b[0m ${query}${params}\x1b[31m${time}\x1b[0m`);
|
|
23
|
+
}
|
|
24
|
+
logWarn(message) {
|
|
25
|
+
console.warn(`\x1b[33mwarn:\x1b[0m ${message}`);
|
|
26
|
+
}
|
|
27
|
+
logError(message, error) {
|
|
28
|
+
console.error(`\x1b[31merror:\x1b[0m ${message}`, error);
|
|
29
|
+
}
|
|
30
|
+
logInfo(message) {
|
|
31
|
+
console.info(`\x1b[34minfo:\x1b[0m ${message}`);
|
|
32
|
+
}
|
|
33
|
+
logSchema(message) {
|
|
34
|
+
console.log(`\x1b[35mschema:\x1b[0m ${message}`);
|
|
35
|
+
}
|
|
36
|
+
logMigration(message) {
|
|
37
|
+
console.log(`\x1b[32mmigration:\x1b[0m ${message}`);
|
|
38
|
+
}
|
|
39
|
+
logSkippedMigration(message) {
|
|
40
|
+
console.info(`\x1b[33mskipped migration:\x1b[0m ${message}`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* A wrapper class that implements the Logger interface and handles different logging options.
|
|
45
|
+
*/
|
|
46
|
+
export class LoggerWrapper {
|
|
47
|
+
slowQuery;
|
|
48
|
+
levels;
|
|
49
|
+
logger;
|
|
50
|
+
loggerFunction;
|
|
51
|
+
constructor(options, slowQuery) {
|
|
52
|
+
this.slowQuery = slowQuery;
|
|
53
|
+
this.levels = new Set();
|
|
54
|
+
if (options === true) {
|
|
55
|
+
this.levels = new Set(DEFAULT_LOG_LEVELS);
|
|
56
|
+
this.logger = new DefaultLogger();
|
|
57
|
+
}
|
|
58
|
+
else if (Array.isArray(options)) {
|
|
59
|
+
this.levels = new Set(options);
|
|
60
|
+
this.logger = new DefaultLogger();
|
|
61
|
+
}
|
|
62
|
+
else if (typeof options === 'function') {
|
|
63
|
+
this.levels = new Set(DEFAULT_LOG_LEVELS);
|
|
64
|
+
this.loggerFunction = options;
|
|
65
|
+
}
|
|
66
|
+
else if (options && typeof options === 'object') {
|
|
67
|
+
this.levels = new Set(DEFAULT_LOG_LEVELS);
|
|
68
|
+
this.logger = options;
|
|
69
|
+
}
|
|
70
|
+
if (slowQuery !== undefined && !this.logger && !this.loggerFunction) {
|
|
71
|
+
this.logger = new DefaultLogger();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
logQuery(query, values, duration) {
|
|
75
|
+
if (this.slowQuery !== undefined && duration !== undefined && duration >= this.slowQuery.threshold) {
|
|
76
|
+
const logParams = this.slowQuery.logParams !== false;
|
|
77
|
+
if (this.logger?.logSlowQuery) {
|
|
78
|
+
this.logger.logSlowQuery(query, values, duration, logParams);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
if (this.loggerFunction) {
|
|
82
|
+
this.loggerFunction(query, logParams ? values : undefined, duration);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
// If slowQuery threshold is met but no specific slowQuery logger exists,
|
|
86
|
+
// it falls through to the standard logQuery below.
|
|
87
|
+
}
|
|
88
|
+
if (this.levels.has('query')) {
|
|
89
|
+
if (this.logger?.logQuery) {
|
|
90
|
+
this.logger.logQuery(query, values, duration);
|
|
91
|
+
}
|
|
92
|
+
else if (this.loggerFunction) {
|
|
93
|
+
this.loggerFunction(query, values, duration);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
logWarn(message) {
|
|
98
|
+
this.log('warn', message);
|
|
99
|
+
}
|
|
100
|
+
logError(message, error) {
|
|
101
|
+
this.log('error', message, error);
|
|
102
|
+
}
|
|
103
|
+
logInfo(message) {
|
|
104
|
+
this.log('info', message);
|
|
105
|
+
}
|
|
106
|
+
logSchema(message) {
|
|
107
|
+
this.log('schema', message);
|
|
108
|
+
}
|
|
109
|
+
logMigration(message) {
|
|
110
|
+
this.log('migration', message);
|
|
111
|
+
}
|
|
112
|
+
logSkippedMigration(message) {
|
|
113
|
+
this.log('skippedMigration', message);
|
|
114
|
+
}
|
|
115
|
+
log(level, message, error) {
|
|
116
|
+
if (this.levels.has(level)) {
|
|
117
|
+
const method = `log${level.charAt(0).toUpperCase()}${level.slice(1)}`;
|
|
118
|
+
const args = error !== undefined ? [message, error] : [message];
|
|
119
|
+
if (this.logger?.[method]) {
|
|
120
|
+
const logFn = this.logger[method];
|
|
121
|
+
logFn(...args);
|
|
122
|
+
}
|
|
123
|
+
else if (this.loggerFunction) {
|
|
124
|
+
this.loggerFunction(...args);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/util/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { FieldKey, FieldOptions } from '../type/index.js';
|
|
2
|
+
export declare function clone<T>(value: T): T;
|
|
3
|
+
export declare function hasKeys(obj: unknown): boolean;
|
|
4
|
+
export declare function getKeys<T extends object>(obj: T): (keyof T & string)[];
|
|
5
|
+
export declare function getFieldKeys<E>(fields: {
|
|
6
|
+
[K in FieldKey<E>]?: FieldOptions;
|
|
7
|
+
}): FieldKey<E>[];
|
|
8
|
+
//# sourceMappingURL=object.util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object.util.d.ts","sourceRoot":"","sources":["../../src/util/object.util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE/D,wBAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAQpC;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAE7C;AAED,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,CAEtE;AAED,wBAAgB,YAAY,CAAC,CAAC,EAC5B,MAAM,EAAE;KACL,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY;CAClC,GACA,QAAQ,CAAC,CAAC,CAAC,EAAE,CAEf"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export function clone(value) {
|
|
2
|
+
if (typeof value !== 'object' || value === null) {
|
|
3
|
+
return value;
|
|
4
|
+
}
|
|
5
|
+
if (Array.isArray(value)) {
|
|
6
|
+
return value.map((it) => clone(it));
|
|
7
|
+
}
|
|
8
|
+
return { ...value };
|
|
9
|
+
}
|
|
10
|
+
export function hasKeys(obj) {
|
|
11
|
+
return typeof obj === 'object' && obj !== null ? Object.keys(obj).length > 0 : false;
|
|
12
|
+
}
|
|
13
|
+
export function getKeys(obj) {
|
|
14
|
+
return obj ? Object.keys(obj) : [];
|
|
15
|
+
}
|
|
16
|
+
export function getFieldKeys(fields) {
|
|
17
|
+
return getKeys(fields).filter((field) => fields[field].eager ?? true);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=object.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object.util.js","sourceRoot":"","sources":["../../src/util/object.util.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,KAAK,CAAI,KAAQ;IAC/B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAiB,CAAC;IACtD,CAAC;IACD,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,GAAY;IAClC,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,OAAO,CAAmB,GAAM;IAC9C,OAAO,GAAG,CAAC,CAAC,CAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,MAEC;IAED,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAE,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;AACzE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type QueryRawFn, type Scalar } from '../type/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Allow using any raw value that shouldn't be automatically escaped by the ORM.
|
|
4
|
+
* @param value the raw value
|
|
5
|
+
* @param alias optional alias
|
|
6
|
+
* @returns a QueryRaw instance
|
|
7
|
+
*/
|
|
8
|
+
export declare function raw(value: Scalar | QueryRawFn, alias?: string): any;
|
|
9
|
+
//# sourceMappingURL=raw.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raw.d.ts","sourceRoot":"","sources":["../../src/util/raw.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,UAAU,EAAE,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1E;;;;;GAKG;AACH,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,GAAG,CAEnE"}
|
package/dist/util/raw.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { QueryRaw } from '../type/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Allow using any raw value that shouldn't be automatically escaped by the ORM.
|
|
4
|
+
* @param value the raw value
|
|
5
|
+
* @param alias optional alias
|
|
6
|
+
* @returns a QueryRaw instance
|
|
7
|
+
*/
|
|
8
|
+
export function raw(value, alias) {
|
|
9
|
+
return new QueryRaw(value, alias);
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=raw.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raw.js","sourceRoot":"","sources":["../../src/util/raw.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAgC,MAAM,kBAAkB,CAAC;AAE1E;;;;;GAKG;AACH,MAAM,UAAU,GAAG,CAAC,KAA0B,EAAE,KAAc;IAC5D,OAAO,IAAI,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { QueryUpdateResult, RawRow } from '../type/index.js';
|
|
2
|
+
export declare function flatObject<E extends object>(obj: E, pre?: string): E;
|
|
3
|
+
export declare function unflatObjects<T extends object>(objects: RawRow[]): T[];
|
|
4
|
+
export declare function obtainAttrsPaths<T extends object>(row: T): {
|
|
5
|
+
[k: string]: string[];
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Escape a SQL identifier (table name, column name, etc.)
|
|
9
|
+
* @param val the identifier to escape
|
|
10
|
+
* @param escapeIdChar the escape character to use (e.g. ` or ")
|
|
11
|
+
* @param forbidQualified whether to forbid qualified identifiers (containing dots)
|
|
12
|
+
* @param addDot whether to add a dot suffix
|
|
13
|
+
*/
|
|
14
|
+
export declare function escapeSqlId(val: string, escapeIdChar?: '`' | '"', forbidQualified?: boolean, addDot?: boolean): string;
|
|
15
|
+
/**
|
|
16
|
+
* Extract INSERT result IDs from raw database rows.
|
|
17
|
+
*
|
|
18
|
+
* UQL's SQL dialect always aliases the entity's ID column to `id` in RETURNING clauses,
|
|
19
|
+
* so the result rows always contain an `id` property regardless of the entity's @Id() key name.
|
|
20
|
+
*/
|
|
21
|
+
export declare function extractInsertResult(rows: RawRow[], changes?: number): QueryUpdateResult;
|
|
22
|
+
//# sourceMappingURL=sql.util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql.util.d.ts","sourceRoot":"","sources":["../../src/util/sql.util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,iBAAiB,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAGnF,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAKpE;AASD,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,CAqCtE;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC;;EAexD;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,MAAM,EACX,YAAY,GAAE,GAAG,GAAG,GAAS,EAC7B,eAAe,CAAC,EAAE,OAAO,EACzB,MAAM,CAAC,EAAE,OAAO,GACf,MAAM,CAkBR;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAGvF"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { getKeys, hasKeys } from './object.util.js';
|
|
2
|
+
export function flatObject(obj, pre) {
|
|
3
|
+
return getKeys(obj).reduce((acc, key) => flatObjectEntry(acc, key, obj[key], typeof obj[key] === 'object' ? '' : pre), {});
|
|
4
|
+
}
|
|
5
|
+
function flatObjectEntry(map, key, val, pre) {
|
|
6
|
+
const prefix = pre ? `${pre}.${key}` : key;
|
|
7
|
+
return typeof val === 'object'
|
|
8
|
+
? getKeys(val).reduce((acc, prop) => flatObjectEntry(acc, prop, val[prop], prefix), map)
|
|
9
|
+
: { ...map, [prefix]: val };
|
|
10
|
+
}
|
|
11
|
+
export function unflatObjects(objects) {
|
|
12
|
+
if (!Array.isArray(objects) || !objects.length) {
|
|
13
|
+
return objects;
|
|
14
|
+
}
|
|
15
|
+
const attrsPaths = obtainAttrsPaths(objects[0]);
|
|
16
|
+
if (!hasKeys(attrsPaths)) {
|
|
17
|
+
return objects;
|
|
18
|
+
}
|
|
19
|
+
return objects.map((row) => {
|
|
20
|
+
const dto = {};
|
|
21
|
+
for (const col in row) {
|
|
22
|
+
if (row[col] === null) {
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
const attrPath = attrsPaths[col];
|
|
26
|
+
if (attrPath) {
|
|
27
|
+
const target = attrPath.slice(0, -1).reduce((acc, key) => {
|
|
28
|
+
if (typeof acc[key] !== 'object') {
|
|
29
|
+
acc[key] = {};
|
|
30
|
+
}
|
|
31
|
+
return acc[key];
|
|
32
|
+
}, dto);
|
|
33
|
+
target[attrPath[attrPath.length - 1]] = row[col];
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
dto[col] = row[col];
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return dto;
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
export function obtainAttrsPaths(row) {
|
|
43
|
+
return getKeys(row).reduce((acc, col) => {
|
|
44
|
+
// Support both dot notation (legacy) and underscore notation (new)
|
|
45
|
+
if (col.includes('.')) {
|
|
46
|
+
acc[col] = col.split('.');
|
|
47
|
+
}
|
|
48
|
+
else if (col.includes('_') && col !== col.toUpperCase()) {
|
|
49
|
+
// Convert underscore to dot notation for nested paths
|
|
50
|
+
// Skip all-uppercase (like UPPER_CASE constants)
|
|
51
|
+
acc[col] = col.split('_');
|
|
52
|
+
}
|
|
53
|
+
return acc;
|
|
54
|
+
}, {});
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Escape a SQL identifier (table name, column name, etc.)
|
|
58
|
+
* @param val the identifier to escape
|
|
59
|
+
* @param escapeIdChar the escape character to use (e.g. ` or ")
|
|
60
|
+
* @param forbidQualified whether to forbid qualified identifiers (containing dots)
|
|
61
|
+
* @param addDot whether to add a dot suffix
|
|
62
|
+
*/
|
|
63
|
+
export function escapeSqlId(val, escapeIdChar = '`', forbidQualified, addDot) {
|
|
64
|
+
if (!val) {
|
|
65
|
+
return '';
|
|
66
|
+
}
|
|
67
|
+
if (!forbidQualified && val.includes('.')) {
|
|
68
|
+
const result = val
|
|
69
|
+
.split('.')
|
|
70
|
+
.map((it) => escapeSqlId(it, escapeIdChar, true))
|
|
71
|
+
.join('.');
|
|
72
|
+
return addDot ? result + '.' : result;
|
|
73
|
+
}
|
|
74
|
+
const escaped = escapeIdChar + val.replace(new RegExp(escapeIdChar, 'g'), escapeIdChar + escapeIdChar) + escapeIdChar;
|
|
75
|
+
const suffix = addDot ? '.' : '';
|
|
76
|
+
return escaped + suffix;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Extract INSERT result IDs from raw database rows.
|
|
80
|
+
*
|
|
81
|
+
* UQL's SQL dialect always aliases the entity's ID column to `id` in RETURNING clauses,
|
|
82
|
+
* so the result rows always contain an `id` property regardless of the entity's @Id() key name.
|
|
83
|
+
*/
|
|
84
|
+
export function extractInsertResult(rows, changes) {
|
|
85
|
+
const ids = rows.map((r) => r['id']);
|
|
86
|
+
return { changes, ids, firstId: ids?.[0] };
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=sql.util.js.map
|