noormme 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import type { Kysely } from './kysely.js';
1
+ import { Kysely } from './kysely.js';
2
2
  import { NOORMConfig, SchemaInfo, Repository, SchemaChange } from './types/index.js';
3
3
  import { WatchOptions } from './watch/schema-watcher.js';
4
4
  /**
@@ -126,7 +126,7 @@ export declare class NOORMME {
126
126
  /**
127
127
  * Execute raw SQL
128
128
  */
129
- execute(sql: string, parameters?: unknown[]): Promise<unknown>;
129
+ execute(sqlString: string, parameters?: unknown[]): Promise<unknown>;
130
130
  private mergeConfig;
131
131
  /**
132
132
  * Parse connection string into NOORMConfig
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.NOORMME = void 0;
7
+ const kysely_js_1 = require("./kysely.js");
4
8
  const schema_discovery_js_1 = require("./schema/schema-discovery.js");
5
9
  const type_generator_js_1 = require("./types/type-generator.js");
6
10
  const repository_factory_js_1 = require("./repository/repository-factory.js");
@@ -14,6 +18,8 @@ const metrics_collector_js_1 = require("./performance/services/metrics-collector
14
18
  const sqlite_auto_optimizer_js_1 = require("./dialect/sqlite/sqlite-auto-optimizer.js");
15
19
  const sqlite_auto_indexer_js_1 = require("./dialect/sqlite/sqlite-auto-indexer.js");
16
20
  const sqlite_dialect_js_1 = require("./dialect/sqlite/sqlite-dialect.js");
21
+ const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
22
+ const compiled_query_js_1 = require("./query-compiler/compiled-query.js");
17
23
  // Global initialization lock to prevent concurrent initialization
18
24
  const globalInitLock = new Map();
19
25
  /**
@@ -67,7 +73,7 @@ class NOORMME {
67
73
  this.instanceId = `${this.config.dialect}-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
68
74
  // Initialize Kysely with the provided dialect
69
75
  this.dialect = this.createDialect();
70
- this.db = new (require('./kysely.js').Kysely)({
76
+ this.db = new kysely_js_1.Kysely({
71
77
  dialect: this.dialect,
72
78
  log: this.config.logging?.enabled ? this.logger.createKyselyLogger() : undefined
73
79
  });
@@ -480,9 +486,9 @@ class NOORMME {
480
486
  /**
481
487
  * Execute raw SQL
482
488
  */
483
- async execute(sql, parameters) {
484
- const { sql: rawSql } = require('./raw-builder/sql.js');
485
- return await this.db.executeQuery(rawSql(sql, parameters || []));
489
+ async execute(sqlString, parameters) {
490
+ const compiledQuery = compiled_query_js_1.CompiledQuery.raw(sqlString, parameters || []);
491
+ return await this.db.executeQuery(compiledQuery);
486
492
  }
487
493
  mergeConfig(config) {
488
494
  return {
@@ -574,9 +580,8 @@ class NOORMME {
574
580
  const { dialect, connection } = this.config;
575
581
  switch (dialect) {
576
582
  case 'sqlite':
577
- const Database = require('better-sqlite3');
578
583
  return new sqlite_dialect_js_1.SqliteDialect({
579
- database: new Database(connection.database)
584
+ database: new better_sqlite3_1.default(connection.database)
580
585
  });
581
586
  default:
582
587
  throw new Error(`Unsupported dialect: ${dialect}`);
@@ -1,5 +1,5 @@
1
1
  import { Kysely } from '../kysely';
2
- import { Logger } from '../logging/logger';
2
+ import { Logger } from '../logging/logger.js';
3
3
  import { SchemaInfo } from '../types';
4
4
  export interface QueryOptimizationOptions {
5
5
  enableQueryCache: boolean;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.QueryOptimizer = void 0;
4
4
  exports.createQueryOptimizer = createQueryOptimizer;
5
- const logger_1 = require("../logging/logger");
5
+ const logger_js_1 = require("../logging/logger.js");
6
6
  const query_parser_1 = require("./utils/query-parser");
7
7
  const cache_service_1 = require("./services/cache-service");
8
8
  const metrics_collector_1 = require("./services/metrics-collector");
@@ -20,7 +20,7 @@ class QueryOptimizer {
20
20
  constructor(db, schemaInfo, options = {}, logger) {
21
21
  this.db = db;
22
22
  this.schemaInfo = schemaInfo;
23
- this.logger = logger || new logger_1.Logger('QueryOptimizer');
23
+ this.logger = logger || new logger_js_1.Logger('QueryOptimizer');
24
24
  this.options = {
25
25
  enableQueryCache: true,
26
26
  enableIndexRecommendations: true,
@@ -1,4 +1,4 @@
1
- import { Logger } from '../../logging/logger';
1
+ import { Logger } from '../../logging/logger.js';
2
2
  export interface CacheEntry<T = any> {
3
3
  key: string;
4
4
  value: T;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.QueryCacheService = exports.CacheService = void 0;
4
4
  exports.createCacheService = createCacheService;
5
- const logger_1 = require("../../logging/logger");
5
+ const logger_js_1 = require("../../logging/logger.js");
6
6
  /**
7
7
  * Generic cache service with TTL, size limits, and metrics
8
8
  */
@@ -14,7 +14,7 @@ class CacheService {
14
14
  cleanupTimer;
15
15
  logger;
16
16
  constructor(config = {}, logger) {
17
- this.logger = logger || new logger_1.Logger('CacheService');
17
+ this.logger = logger || new logger_js_1.Logger('CacheService');
18
18
  this.config = {
19
19
  maxSize: 1000,
20
20
  defaultTtl: 300000, // 5 minutes
@@ -1,6 +1,6 @@
1
1
  import { NOORMME } from '../../noormme';
2
2
  import { NOORMConfig } from '../../types';
3
- import { Logger } from '../../logging/logger';
3
+ import { Logger } from '../../logging/logger.js';
4
4
  export interface ConnectionConfig extends NOORMConfig {
5
5
  id?: string;
6
6
  maxRetries?: number;
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ConnectionPoolManager = exports.ConnectionFactory = void 0;
4
4
  exports.createConnectionPool = createConnectionPool;
5
5
  const noormme_1 = require("../../noormme");
6
- const logger_1 = require("../../logging/logger");
6
+ const logger_js_1 = require("../../logging/logger.js");
7
7
  /**
8
8
  * Factory for creating and managing database connections
9
9
  */
@@ -12,7 +12,7 @@ class ConnectionFactory {
12
12
  stats;
13
13
  logger;
14
14
  constructor(logger) {
15
- this.logger = logger || new logger_1.Logger('ConnectionFactory');
15
+ this.logger = logger || new logger_js_1.Logger('ConnectionFactory');
16
16
  this.stats = {
17
17
  totalCreated: 0,
18
18
  totalDestroyed: 0,
@@ -278,7 +278,7 @@ class ConnectionPoolManager {
278
278
  logger;
279
279
  constructor(config, poolConfig = {}, logger) {
280
280
  this.config = config;
281
- this.logger = logger || new logger_1.Logger('ConnectionPoolManager');
281
+ this.logger = logger || new logger_js_1.Logger('ConnectionPoolManager');
282
282
  this.factory = new ConnectionFactory(this.logger);
283
283
  this.poolConfig = {
284
284
  minConnections: 2,
@@ -1,4 +1,4 @@
1
- import { Logger } from '../../logging/logger';
1
+ import { Logger } from '../../logging/logger.js';
2
2
  export interface QueryMetrics {
3
3
  query: string;
4
4
  executionTime: number;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MetricsCollector = void 0;
4
4
  exports.createMetricsCollector = createMetricsCollector;
5
- const logger_1 = require("../../logging/logger");
5
+ const logger_js_1 = require("../../logging/logger.js");
6
6
  /**
7
7
  * Service for collecting and analyzing performance metrics
8
8
  */
@@ -14,7 +14,7 @@ class MetricsCollector {
14
14
  logger;
15
15
  cleanupTimer;
16
16
  constructor(config = {}, logger) {
17
- this.logger = logger || new logger_1.Logger('MetricsCollector');
17
+ this.logger = logger || new logger_js_1.Logger('MetricsCollector');
18
18
  this.config = {
19
19
  enabled: process.env.NODE_ENV === 'development',
20
20
  slowQueryThreshold: 1000, // 1 second
@@ -1,4 +1,4 @@
1
- import type { Kysely } from './kysely.js';
1
+ import { Kysely } from './kysely.js';
2
2
  import { NOORMConfig, SchemaInfo, Repository, SchemaChange } from './types/index.js';
3
3
  import { WatchOptions } from './watch/schema-watcher.js';
4
4
  /**
@@ -126,7 +126,7 @@ export declare class NOORMME {
126
126
  /**
127
127
  * Execute raw SQL
128
128
  */
129
- execute(sql: string, parameters?: unknown[]): Promise<unknown>;
129
+ execute(sqlString: string, parameters?: unknown[]): Promise<unknown>;
130
130
  private mergeConfig;
131
131
  /**
132
132
  * Parse connection string into NOORMConfig
@@ -1,4 +1,5 @@
1
1
  /// <reference types="./noormme.d.ts" />
2
+ import { Kysely } from './kysely.js';
2
3
  import { SchemaDiscovery } from './schema/schema-discovery.js';
3
4
  import { TypeGenerator } from './types/type-generator.js';
4
5
  import { RepositoryFactory } from './repository/repository-factory.js';
@@ -12,6 +13,8 @@ import { MetricsCollector } from './performance/services/metrics-collector.js';
12
13
  import { SQLiteAutoOptimizer } from './dialect/sqlite/sqlite-auto-optimizer.js';
13
14
  import { SQLiteAutoIndexer } from './dialect/sqlite/sqlite-auto-indexer.js';
14
15
  import { SqliteDialect } from './dialect/sqlite/sqlite-dialect.js';
16
+ import Database from 'better-sqlite3';
17
+ import { CompiledQuery } from './query-compiler/compiled-query.js';
15
18
  // Global initialization lock to prevent concurrent initialization
16
19
  const globalInitLock = new Map();
17
20
  /**
@@ -65,7 +68,7 @@ export class NOORMME {
65
68
  this.instanceId = `${this.config.dialect}-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
66
69
  // Initialize Kysely with the provided dialect
67
70
  this.dialect = this.createDialect();
68
- this.db = new (require('./kysely.js').Kysely)({
71
+ this.db = new Kysely({
69
72
  dialect: this.dialect,
70
73
  log: this.config.logging?.enabled ? this.logger.createKyselyLogger() : undefined
71
74
  });
@@ -478,9 +481,9 @@ export class NOORMME {
478
481
  /**
479
482
  * Execute raw SQL
480
483
  */
481
- async execute(sql, parameters) {
482
- const { sql: rawSql } = require('./raw-builder/sql.js');
483
- return await this.db.executeQuery(rawSql(sql, parameters || []));
484
+ async execute(sqlString, parameters) {
485
+ const compiledQuery = CompiledQuery.raw(sqlString, parameters || []);
486
+ return await this.db.executeQuery(compiledQuery);
484
487
  }
485
488
  mergeConfig(config) {
486
489
  return {
@@ -572,7 +575,6 @@ export class NOORMME {
572
575
  const { dialect, connection } = this.config;
573
576
  switch (dialect) {
574
577
  case 'sqlite':
575
- const Database = require('better-sqlite3');
576
578
  return new SqliteDialect({
577
579
  database: new Database(connection.database)
578
580
  });
@@ -1,5 +1,5 @@
1
1
  import { Kysely } from '../kysely';
2
- import { Logger } from '../logging/logger';
2
+ import { Logger } from '../logging/logger.js';
3
3
  import { SchemaInfo } from '../types';
4
4
  export interface QueryOptimizationOptions {
5
5
  enableQueryCache: boolean;
@@ -1,5 +1,5 @@
1
1
  /// <reference types="./query-optimizer.d.ts" />
2
- import { Logger } from '../logging/logger';
2
+ import { Logger } from '../logging/logger.js';
3
3
  import { QueryParser } from './utils/query-parser';
4
4
  import { QueryCacheService } from './services/cache-service';
5
5
  import { MetricsCollector } from './services/metrics-collector';
@@ -1,4 +1,4 @@
1
- import { Logger } from '../../logging/logger';
1
+ import { Logger } from '../../logging/logger.js';
2
2
  export interface CacheEntry<T = any> {
3
3
  key: string;
4
4
  value: T;
@@ -1,5 +1,5 @@
1
1
  /// <reference types="./cache-service.d.ts" />
2
- import { Logger } from '../../logging/logger';
2
+ import { Logger } from '../../logging/logger.js';
3
3
  /**
4
4
  * Generic cache service with TTL, size limits, and metrics
5
5
  */
@@ -1,6 +1,6 @@
1
1
  import { NOORMME } from '../../noormme';
2
2
  import { NOORMConfig } from '../../types';
3
- import { Logger } from '../../logging/logger';
3
+ import { Logger } from '../../logging/logger.js';
4
4
  export interface ConnectionConfig extends NOORMConfig {
5
5
  id?: string;
6
6
  maxRetries?: number;
@@ -1,6 +1,6 @@
1
1
  /// <reference types="./connection-factory.d.ts" />
2
2
  import { NOORMME } from '../../noormme';
3
- import { Logger } from '../../logging/logger';
3
+ import { Logger } from '../../logging/logger.js';
4
4
  /**
5
5
  * Factory for creating and managing database connections
6
6
  */
@@ -1,4 +1,4 @@
1
- import { Logger } from '../../logging/logger';
1
+ import { Logger } from '../../logging/logger.js';
2
2
  export interface QueryMetrics {
3
3
  query: string;
4
4
  executionTime: number;
@@ -1,5 +1,5 @@
1
1
  /// <reference types="./metrics-collector.d.ts" />
2
- import { Logger } from '../../logging/logger';
2
+ import { Logger } from '../../logging/logger.js';
3
3
  /**
4
4
  * Service for collecting and analyzing performance metrics
5
5
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "noormme",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "NOORMME - The NO-ORM for Normies. SQLite automation so simple, even normies can use it.",
5
5
  "repository": {
6
6
  "type": "git",