@bhushanpawar/sqldb 1.0.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.
Files changed (175) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +811 -0
  3. package/dist/best-practice-example.d.ts +35 -0
  4. package/dist/best-practice-example.d.ts.map +1 -0
  5. package/dist/best-practice-example.js +171 -0
  6. package/dist/best-practice-example.js.map +1 -0
  7. package/dist/cache/cache-key-builder.d.ts +17 -0
  8. package/dist/cache/cache-key-builder.d.ts.map +1 -0
  9. package/dist/cache/cache-key-builder.js +100 -0
  10. package/dist/cache/cache-key-builder.js.map +1 -0
  11. package/dist/cache/cache-manager.d.ts +22 -0
  12. package/dist/cache/cache-manager.d.ts.map +1 -0
  13. package/dist/cache/cache-manager.js +124 -0
  14. package/dist/cache/cache-manager.js.map +1 -0
  15. package/dist/cache/invalidation.d.ts +15 -0
  16. package/dist/cache/invalidation.d.ts.map +1 -0
  17. package/dist/cache/invalidation.js +59 -0
  18. package/dist/cache/invalidation.js.map +1 -0
  19. package/dist/client.d.ts +40 -0
  20. package/dist/client.d.ts.map +1 -0
  21. package/dist/client.js +146 -0
  22. package/dist/client.js.map +1 -0
  23. package/dist/connection/mariadb.d.ts +17 -0
  24. package/dist/connection/mariadb.d.ts.map +1 -0
  25. package/dist/connection/mariadb.js +116 -0
  26. package/dist/connection/mariadb.js.map +1 -0
  27. package/dist/connection/redis.d.ts +20 -0
  28. package/dist/connection/redis.d.ts.map +1 -0
  29. package/dist/connection/redis.js +168 -0
  30. package/dist/connection/redis.js.map +1 -0
  31. package/dist/demo-debug.d.ts +2 -0
  32. package/dist/demo-debug.d.ts.map +1 -0
  33. package/dist/demo-debug.js +36 -0
  34. package/dist/demo-debug.js.map +1 -0
  35. package/dist/discovery/dependency-graph.d.ts +20 -0
  36. package/dist/discovery/dependency-graph.d.ts.map +1 -0
  37. package/dist/discovery/dependency-graph.js +89 -0
  38. package/dist/discovery/dependency-graph.js.map +1 -0
  39. package/dist/discovery/relationship-parser.d.ts +10 -0
  40. package/dist/discovery/relationship-parser.d.ts.map +1 -0
  41. package/dist/discovery/relationship-parser.js +40 -0
  42. package/dist/discovery/relationship-parser.js.map +1 -0
  43. package/dist/discovery/schema-reader.d.ts +15 -0
  44. package/dist/discovery/schema-reader.d.ts.map +1 -0
  45. package/dist/discovery/schema-reader.js +82 -0
  46. package/dist/discovery/schema-reader.js.map +1 -0
  47. package/dist/hooks/hooks-manager.d.ts +22 -0
  48. package/dist/hooks/hooks-manager.d.ts.map +1 -0
  49. package/dist/hooks/hooks-manager.js +117 -0
  50. package/dist/hooks/hooks-manager.js.map +1 -0
  51. package/dist/index.d.ts +20 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +52 -0
  54. package/dist/index.js.map +1 -0
  55. package/dist/query/operations.d.ts +31 -0
  56. package/dist/query/operations.d.ts.map +1 -0
  57. package/dist/query/operations.js +204 -0
  58. package/dist/query/operations.js.map +1 -0
  59. package/dist/query/query-builder.d.ts +15 -0
  60. package/dist/query/query-builder.d.ts.map +1 -0
  61. package/dist/query/query-builder.js +169 -0
  62. package/dist/query/query-builder.js.map +1 -0
  63. package/dist/query/query-tracker.d.ts +13 -0
  64. package/dist/query/query-tracker.d.ts.map +1 -0
  65. package/dist/query/query-tracker.js +84 -0
  66. package/dist/query/query-tracker.js.map +1 -0
  67. package/dist/query/table-proxy.d.ts +11 -0
  68. package/dist/query/table-proxy.d.ts.map +1 -0
  69. package/dist/query/table-proxy.js +25 -0
  70. package/dist/query/table-proxy.js.map +1 -0
  71. package/dist/smart-cache/cache/cache-key-builder.d.ts +17 -0
  72. package/dist/smart-cache/cache/cache-key-builder.d.ts.map +1 -0
  73. package/dist/smart-cache/cache/cache-key-builder.js +100 -0
  74. package/dist/smart-cache/cache/cache-key-builder.js.map +1 -0
  75. package/dist/smart-cache/cache/cache-manager.d.ts +22 -0
  76. package/dist/smart-cache/cache/cache-manager.d.ts.map +1 -0
  77. package/dist/smart-cache/cache/cache-manager.js +124 -0
  78. package/dist/smart-cache/cache/cache-manager.js.map +1 -0
  79. package/dist/smart-cache/cache/invalidation.d.ts +15 -0
  80. package/dist/smart-cache/cache/invalidation.d.ts.map +1 -0
  81. package/dist/smart-cache/cache/invalidation.js +59 -0
  82. package/dist/smart-cache/cache/invalidation.js.map +1 -0
  83. package/dist/smart-cache/client.d.ts +36 -0
  84. package/dist/smart-cache/client.d.ts.map +1 -0
  85. package/dist/smart-cache/client.js +138 -0
  86. package/dist/smart-cache/client.js.map +1 -0
  87. package/dist/smart-cache/connection/mariadb.d.ts +14 -0
  88. package/dist/smart-cache/connection/mariadb.d.ts.map +1 -0
  89. package/dist/smart-cache/connection/mariadb.js +82 -0
  90. package/dist/smart-cache/connection/mariadb.js.map +1 -0
  91. package/dist/smart-cache/connection/redis.d.ts +20 -0
  92. package/dist/smart-cache/connection/redis.d.ts.map +1 -0
  93. package/dist/smart-cache/connection/redis.js +168 -0
  94. package/dist/smart-cache/connection/redis.js.map +1 -0
  95. package/dist/smart-cache/discovery/dependency-graph.d.ts +20 -0
  96. package/dist/smart-cache/discovery/dependency-graph.d.ts.map +1 -0
  97. package/dist/smart-cache/discovery/dependency-graph.js +89 -0
  98. package/dist/smart-cache/discovery/dependency-graph.js.map +1 -0
  99. package/dist/smart-cache/discovery/relationship-parser.d.ts +10 -0
  100. package/dist/smart-cache/discovery/relationship-parser.d.ts.map +1 -0
  101. package/dist/smart-cache/discovery/relationship-parser.js +40 -0
  102. package/dist/smart-cache/discovery/relationship-parser.js.map +1 -0
  103. package/dist/smart-cache/discovery/schema-reader.d.ts +15 -0
  104. package/dist/smart-cache/discovery/schema-reader.d.ts.map +1 -0
  105. package/dist/smart-cache/discovery/schema-reader.js +82 -0
  106. package/dist/smart-cache/discovery/schema-reader.js.map +1 -0
  107. package/dist/smart-cache/examples/basic-usage.d.ts +3 -0
  108. package/dist/smart-cache/examples/basic-usage.d.ts.map +1 -0
  109. package/dist/smart-cache/examples/basic-usage.js +105 -0
  110. package/dist/smart-cache/examples/basic-usage.js.map +1 -0
  111. package/dist/smart-cache/examples/hooks-example.d.ts +3 -0
  112. package/dist/smart-cache/examples/hooks-example.d.ts.map +1 -0
  113. package/dist/smart-cache/examples/hooks-example.js +133 -0
  114. package/dist/smart-cache/examples/hooks-example.js.map +1 -0
  115. package/dist/smart-cache/examples/relationships-example.d.ts +3 -0
  116. package/dist/smart-cache/examples/relationships-example.d.ts.map +1 -0
  117. package/dist/smart-cache/examples/relationships-example.js +88 -0
  118. package/dist/smart-cache/examples/relationships-example.js.map +1 -0
  119. package/dist/smart-cache/hooks/hooks-manager.d.ts +22 -0
  120. package/dist/smart-cache/hooks/hooks-manager.d.ts.map +1 -0
  121. package/dist/smart-cache/hooks/hooks-manager.js +117 -0
  122. package/dist/smart-cache/hooks/hooks-manager.js.map +1 -0
  123. package/dist/smart-cache/index.d.ts +19 -0
  124. package/dist/smart-cache/index.d.ts.map +1 -0
  125. package/dist/smart-cache/index.js +49 -0
  126. package/dist/smart-cache/index.js.map +1 -0
  127. package/dist/smart-cache/query/operations.d.ts +31 -0
  128. package/dist/smart-cache/query/operations.d.ts.map +1 -0
  129. package/dist/smart-cache/query/operations.js +187 -0
  130. package/dist/smart-cache/query/operations.js.map +1 -0
  131. package/dist/smart-cache/query/query-builder.d.ts +15 -0
  132. package/dist/smart-cache/query/query-builder.d.ts.map +1 -0
  133. package/dist/smart-cache/query/query-builder.js +169 -0
  134. package/dist/smart-cache/query/query-builder.js.map +1 -0
  135. package/dist/smart-cache/query/table-proxy.d.ts +11 -0
  136. package/dist/smart-cache/query/table-proxy.d.ts.map +1 -0
  137. package/dist/smart-cache/query/table-proxy.js +25 -0
  138. package/dist/smart-cache/query/table-proxy.js.map +1 -0
  139. package/dist/smart-cache/types/cache.d.ts +29 -0
  140. package/dist/smart-cache/types/cache.d.ts.map +1 -0
  141. package/dist/smart-cache/types/cache.js +10 -0
  142. package/dist/smart-cache/types/cache.js.map +1 -0
  143. package/dist/smart-cache/types/config.d.ts +47 -0
  144. package/dist/smart-cache/types/config.d.ts.map +1 -0
  145. package/dist/smart-cache/types/config.js +27 -0
  146. package/dist/smart-cache/types/config.js.map +1 -0
  147. package/dist/smart-cache/types/query.d.ts +36 -0
  148. package/dist/smart-cache/types/query.d.ts.map +1 -0
  149. package/dist/smart-cache/types/query.js +3 -0
  150. package/dist/smart-cache/types/query.js.map +1 -0
  151. package/dist/smart-cache/types/schema.d.ts +25 -0
  152. package/dist/smart-cache/types/schema.d.ts.map +1 -0
  153. package/dist/smart-cache/types/schema.js +3 -0
  154. package/dist/smart-cache/types/schema.js.map +1 -0
  155. package/dist/trial.d.ts +7 -0
  156. package/dist/trial.d.ts.map +1 -0
  157. package/dist/trial.js +30 -0
  158. package/dist/trial.js.map +1 -0
  159. package/dist/types/cache.d.ts +29 -0
  160. package/dist/types/cache.d.ts.map +1 -0
  161. package/dist/types/cache.js +10 -0
  162. package/dist/types/cache.js.map +1 -0
  163. package/dist/types/config.d.ts +47 -0
  164. package/dist/types/config.d.ts.map +1 -0
  165. package/dist/types/config.js +27 -0
  166. package/dist/types/config.js.map +1 -0
  167. package/dist/types/query.d.ts +55 -0
  168. package/dist/types/query.d.ts.map +1 -0
  169. package/dist/types/query.js +3 -0
  170. package/dist/types/query.js.map +1 -0
  171. package/dist/types/schema.d.ts +25 -0
  172. package/dist/types/schema.d.ts.map +1 -0
  173. package/dist/types/schema.js +3 -0
  174. package/dist/types/schema.js.map +1 -0
  175. package/package.json +71 -0
@@ -0,0 +1,25 @@
1
+ export interface ColumnInfo {
2
+ columnName: string;
3
+ dataType: string;
4
+ isNullable: boolean;
5
+ columnKey: string;
6
+ columnDefault: string | null;
7
+ extra: string;
8
+ }
9
+ export interface TableSchema {
10
+ tableName: string;
11
+ columns: ColumnInfo[];
12
+ primaryKey?: string;
13
+ }
14
+ export interface TableRelationship {
15
+ constraintName: string;
16
+ fromTable: string;
17
+ fromColumn: string;
18
+ toTable: string;
19
+ toColumn: string;
20
+ }
21
+ export interface SchemaDiscoveryResult {
22
+ tables: TableSchema[];
23
+ relationships: TableRelationship[];
24
+ }
25
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/smart-cache/types/schema.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,aAAa,EAAE,iBAAiB,EAAE,CAAC;CACpC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/smart-cache/types/schema.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { MariaDBCache } from ".";
2
+ export declare class Trial {
3
+ mariadbConn: MariaDBCache;
4
+ constructor();
5
+ queryData(): Promise<void>;
6
+ }
7
+ //# sourceMappingURL=trial.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trial.d.ts","sourceRoot":"","sources":["../src/trial.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,CAAC;AAKjC,qBAAa,KAAK;IACd,WAAW,eAQR;;IAMU,SAAS;CAQzB"}
package/dist/trial.js ADDED
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Trial = void 0;
4
+ const _1 = require(".");
5
+ const db = { "connectionLimit": 10, "database": "dev_she_careers", "host": "qa-she-careers-mariadb.c9ott5sa9myf.us-east-2.rds.amazonaws.com", "logging": "true", "password": "Kx9mL2pN5tR8sQ3vW6yH1jG4fD7eC0bA_uZ.xK-mL9pN2tR5sQ8vW", "port": 3306, "type": "mysql", "username": "appuser" };
6
+ class Trial {
7
+ constructor() {
8
+ this.mariadbConn = new _1.MariaDBCache({
9
+ "connectionLimit": 10,
10
+ "database": "dev_she_careers",
11
+ "host": "qa-she-careers-mariadb.c9ott5sa9myf.us-east-2.rds.amazonaws.com",
12
+ "password": "Kx9mL2pN5tR8sQ3vW6yH1jG4fD7eC0bA_uZ.xK-mL9pN2tR5sQ8vW",
13
+ "port": 3306,
14
+ "user": "appuser"
15
+ });
16
+ this.mariadbConn.createPool();
17
+ }
18
+ async queryData() {
19
+ try {
20
+ const rows = await this.mariadbConn.query('SELECT * FROM user limit 4');
21
+ console.log(rows);
22
+ }
23
+ finally {
24
+ await this.mariadbConn.end();
25
+ }
26
+ }
27
+ }
28
+ exports.Trial = Trial;
29
+ new Trial().queryData();
30
+ //# sourceMappingURL=trial.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trial.js","sourceRoot":"","sources":["../src/trial.ts"],"names":[],"mappings":";;;AAAA,wBAAiC;AACjC,MAAM,EAAE,GAAG,EAAE,iBAAiB,EAAE,EAAE,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,EAAE,iEAAiE,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,uDAAuD,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAA;AAI5R,MAAa,KAAK;IAWd;QAVA,gBAAW,GAAG,IAAI,eAAY,CAAC;YAC3B,iBAAiB,EAAE,EAAE;YACrB,UAAU,EAAE,iBAAiB;YAC7B,MAAM,EAAE,iEAAiE;YAEzE,UAAU,EAAE,uDAAuD;YACnE,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,SAAS;SACpB,CAAC,CAAC;QAGC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;IAClC,CAAC;IAEM,KAAK,CAAC,SAAS;QAClB,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;YACxE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;gBAAS,CAAC;YACP,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;QACjC,CAAC;IACL,CAAC;CACJ;AAvBD,sBAuBC;AAGD,IAAI,KAAK,EAAE,CAAC,SAAS,EAAE,CAAC"}
@@ -0,0 +1,29 @@
1
+ export interface CacheKey {
2
+ prefix: string;
3
+ table: string;
4
+ operation: string;
5
+ hash: string;
6
+ }
7
+ export interface CacheEntry {
8
+ data: any;
9
+ timestamp: number;
10
+ ttl: number;
11
+ }
12
+ export interface CacheStats {
13
+ hits: number;
14
+ misses: number;
15
+ evictions: number;
16
+ size: number;
17
+ hitRate: string;
18
+ }
19
+ export declare enum InvalidationStrategy {
20
+ IMMEDIATE = "immediate",
21
+ LAZY = "lazy",
22
+ TTL_ONLY = "ttl_only"
23
+ }
24
+ export interface InvalidationOptions {
25
+ strategy?: InvalidationStrategy;
26
+ cascade?: boolean;
27
+ tables?: string[];
28
+ }
29
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/types/cache.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,GAAG,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,oBAAY,oBAAoB;IAC9B,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,QAAQ,aAAa;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InvalidationStrategy = void 0;
4
+ var InvalidationStrategy;
5
+ (function (InvalidationStrategy) {
6
+ InvalidationStrategy["IMMEDIATE"] = "immediate";
7
+ InvalidationStrategy["LAZY"] = "lazy";
8
+ InvalidationStrategy["TTL_ONLY"] = "ttl_only";
9
+ })(InvalidationStrategy || (exports.InvalidationStrategy = InvalidationStrategy = {}));
10
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/types/cache.ts"],"names":[],"mappings":";;;AAqBA,IAAY,oBAIX;AAJD,WAAY,oBAAoB;IAC9B,+CAAuB,CAAA;IACvB,qCAAa,CAAA;IACb,6CAAqB,CAAA;AACvB,CAAC,EAJW,oBAAoB,oCAApB,oBAAoB,QAI/B"}
@@ -0,0 +1,47 @@
1
+ import { RedisOptions } from 'ioredis';
2
+ export interface MariaDBConfig {
3
+ host: string;
4
+ port?: number;
5
+ user: string;
6
+ password: string;
7
+ database: string;
8
+ connectionLimit?: number;
9
+ [key: string]: any;
10
+ }
11
+ export interface RedisConfig {
12
+ host: string;
13
+ port?: number;
14
+ password?: string;
15
+ db?: number;
16
+ keyPrefix?: string;
17
+ options?: RedisOptions;
18
+ }
19
+ export interface CacheConfig {
20
+ enabled?: boolean;
21
+ defaultTTL?: number;
22
+ maxKeys?: number;
23
+ invalidateOnWrite?: boolean;
24
+ cascadeInvalidation?: boolean;
25
+ }
26
+ export interface DiscoveryConfig {
27
+ autoDiscover?: boolean;
28
+ refreshInterval?: number;
29
+ includeTables?: string[];
30
+ excludeTables?: string[];
31
+ maxGraphDepth?: number;
32
+ }
33
+ export interface LoggingConfig {
34
+ level?: 'debug' | 'info' | 'warn' | 'error' | 'none';
35
+ logger?: (level: string, message: string, meta?: any) => void;
36
+ }
37
+ export interface SmartDBConfig {
38
+ mariadb: MariaDBConfig;
39
+ redis: RedisConfig;
40
+ cache?: CacheConfig;
41
+ discovery?: DiscoveryConfig;
42
+ logging?: LoggingConfig;
43
+ }
44
+ export declare const DEFAULT_CACHE_CONFIG: Required<CacheConfig>;
45
+ export declare const DEFAULT_DISCOVERY_CONFIG: Required<DiscoveryConfig>;
46
+ export declare const DEFAULT_LOGGING_CONFIG: Required<LoggingConfig>;
47
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IACrD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;CAC/D;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,aAAa,CAAC;IACvB,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAGD,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,WAAW,CAMtD,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,eAAe,CAM9D,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,aAAa,CAO1D,CAAC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_LOGGING_CONFIG = exports.DEFAULT_DISCOVERY_CONFIG = exports.DEFAULT_CACHE_CONFIG = void 0;
4
+ // Default configurations
5
+ exports.DEFAULT_CACHE_CONFIG = {
6
+ enabled: true,
7
+ defaultTTL: 60, // 60 seconds
8
+ maxKeys: 10000,
9
+ invalidateOnWrite: true,
10
+ cascadeInvalidation: true,
11
+ };
12
+ exports.DEFAULT_DISCOVERY_CONFIG = {
13
+ autoDiscover: true,
14
+ refreshInterval: 0, // manual only by default
15
+ includeTables: [],
16
+ excludeTables: [],
17
+ maxGraphDepth: 3,
18
+ };
19
+ exports.DEFAULT_LOGGING_CONFIG = {
20
+ level: 'info',
21
+ logger: (level, message, meta) => {
22
+ const timestamp = new Date().toISOString();
23
+ const metaStr = meta ? ` ${JSON.stringify(meta)}` : '';
24
+ console.log(`[${timestamp}] [${level.toUpperCase()}] ${message}${metaStr}`);
25
+ },
26
+ };
27
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":";;;AAmDA,yBAAyB;AACZ,QAAA,oBAAoB,GAA0B;IACzD,OAAO,EAAE,IAAI;IACb,UAAU,EAAE,EAAE,EAAE,aAAa;IAC7B,OAAO,EAAE,KAAK;IACd,iBAAiB,EAAE,IAAI;IACvB,mBAAmB,EAAE,IAAI;CAC1B,CAAC;AAEW,QAAA,wBAAwB,GAA8B;IACjE,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,CAAC,EAAE,yBAAyB;IAC7C,aAAa,EAAE,EAAE;IACjB,aAAa,EAAE,EAAE;IACjB,aAAa,EAAE,CAAC;CACjB,CAAC;AAEW,QAAA,sBAAsB,GAA4B;IAC7D,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,CAAC,KAAa,EAAE,OAAe,EAAE,IAAU,EAAE,EAAE;QACrD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,IAAI,SAAS,MAAM,KAAK,CAAC,WAAW,EAAE,KAAK,OAAO,GAAG,OAAO,EAAE,CAAC,CAAC;IAC9E,CAAC;CACF,CAAC"}
@@ -0,0 +1,55 @@
1
+ export type WhereClause<T = any> = Partial<T> & {
2
+ [key: string]: any;
3
+ };
4
+ export interface OrderByOption {
5
+ column: string;
6
+ direction: 'ASC' | 'DESC';
7
+ }
8
+ export interface FindOptions {
9
+ limit?: number;
10
+ offset?: number;
11
+ orderBy?: string | OrderByOption | OrderByOption[];
12
+ select?: string[];
13
+ skipCache?: boolean;
14
+ correlationId?: string;
15
+ }
16
+ export interface TableOperations<T = any> {
17
+ findOne(where: WhereClause<T>, options?: FindOptions): Promise<T | null>;
18
+ findMany(where?: WhereClause<T>, options?: FindOptions): Promise<T[]>;
19
+ findById(id: string | number, correlationId?: string): Promise<T | null>;
20
+ count(where?: WhereClause<T>, correlationId?: string): Promise<number>;
21
+ insertOne(data: Omit<T, 'id'>, correlationId?: string): Promise<T>;
22
+ insertMany(data: Omit<T, 'id'>[], correlationId?: string): Promise<T[]>;
23
+ updateOne(where: WhereClause<T>, data: Partial<T>, correlationId?: string): Promise<T | null>;
24
+ updateMany(where: WhereClause<T>, data: Partial<T>, correlationId?: string): Promise<number>;
25
+ updateById(id: string | number, data: Partial<T>, correlationId?: string): Promise<T | null>;
26
+ deleteOne(where: WhereClause<T>, correlationId?: string): Promise<boolean>;
27
+ deleteMany(where: WhereClause<T>, correlationId?: string): Promise<number>;
28
+ deleteById(id: string | number, correlationId?: string): Promise<boolean>;
29
+ raw<R = any>(sql: string, params?: any[], correlationId?: string): Promise<R>;
30
+ invalidateCache(): Promise<void>;
31
+ warmCache(where?: WhereClause<T>, correlationId?: string): Promise<void>;
32
+ }
33
+ export interface QueryResult {
34
+ sql: string;
35
+ params: any[];
36
+ }
37
+ export interface QueryMetadata {
38
+ queryId: string;
39
+ correlationId?: string;
40
+ sql: string;
41
+ params?: any[];
42
+ startTime: number;
43
+ endTime?: number;
44
+ executionTimeMs?: number;
45
+ resultCount?: number;
46
+ tableName?: string;
47
+ operation?: string;
48
+ error?: string;
49
+ }
50
+ export interface QueryTracker {
51
+ trackQuery(metadata: QueryMetadata): void;
52
+ getQueries(correlationId?: string): QueryMetadata[];
53
+ clearQueries(correlationId?: string): void;
54
+ }
55
+ //# sourceMappingURL=query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/types/query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/types/query.ts"],"names":[],"mappings":""}
@@ -0,0 +1,25 @@
1
+ export interface ColumnInfo {
2
+ columnName: string;
3
+ dataType: string;
4
+ isNullable: boolean;
5
+ columnKey: string;
6
+ columnDefault: string | null;
7
+ extra: string;
8
+ }
9
+ export interface TableSchema {
10
+ tableName: string;
11
+ columns: ColumnInfo[];
12
+ primaryKey?: string;
13
+ }
14
+ export interface TableRelationship {
15
+ constraintName: string;
16
+ fromTable: string;
17
+ fromColumn: string;
18
+ toTable: string;
19
+ toColumn: string;
20
+ }
21
+ export interface SchemaDiscoveryResult {
22
+ tables: TableSchema[];
23
+ relationships: TableRelationship[];
24
+ }
25
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/types/schema.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,aAAa,EAAE,iBAAiB,EAAE,CAAC;CACpC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/types/schema.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,71 @@
1
+ {
2
+ "name": "@bhushanpawar/sqldb",
3
+ "version": "1.0.0",
4
+ "description": "An intelligent MariaDB client with Redis-backed caching, automatic schema discovery, relationship mapping, and smart cache invalidation",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "scripts": {
8
+ "build": "tsc",
9
+ "prepare": "npm run build",
10
+ "usage": "ts-node examples/usage.ts",
11
+ "perf": "ts-node examples/usage.ts perf",
12
+ "test": "jest",
13
+ "test:watch": "jest --watch",
14
+ "test:coverage": "jest --coverage",
15
+ "test:performance": "mocha -r ts-node/register tests/performance.test.ts --timeout 120000",
16
+ "test:perf": "npm run test:performance"
17
+ },
18
+ "keywords": [
19
+ "mariadb",
20
+ "mysql",
21
+ "redis",
22
+ "cache",
23
+ "database",
24
+ "query-cache",
25
+ "performance",
26
+ "orm",
27
+ "schema-discovery",
28
+ "smart-cache",
29
+ "sqldb"
30
+ ],
31
+ "author": "Bhushan Pawar <bhushanp.cz@gmail.com>",
32
+ "license": "MIT",
33
+ "files": [
34
+ "dist",
35
+ "README.md",
36
+ "LICENSE"
37
+ ],
38
+ "peerDependencies": {
39
+ "mariadb": "^3.0.0"
40
+ },
41
+ "dependencies": {
42
+ "ioredis": "^5.8.2"
43
+ },
44
+ "devDependencies": {
45
+ "@types/chai": "^4.3.0",
46
+ "@types/ioredis": "^4.28.10",
47
+ "@types/jest": "^29.5.0",
48
+ "@types/mocha": "^10.0.0",
49
+ "@types/node": "^20.0.0",
50
+ "chai": "^4.3.0",
51
+ "dotenv": "^16.0.0",
52
+ "jest": "^29.7.0",
53
+ "mariadb": "^3.0.0",
54
+ "mocha": "^10.0.0",
55
+ "mysql2": "^3.0.0",
56
+ "ts-jest": "^29.1.0",
57
+ "ts-node": "^10.9.0",
58
+ "typescript": "^5.3.0"
59
+ },
60
+ "repository": {
61
+ "type": "git",
62
+ "url": "https://github.com/erBhushanPawar/sqldb"
63
+ },
64
+ "bugs": {
65
+ "url": "https://github.com/erBhushanPawar/sqldb/issues"
66
+ },
67
+ "homepage": "https://github.com/erBhushanPawar/sqldb#readme",
68
+ "engines": {
69
+ "node": ">=14.0.0"
70
+ }
71
+ }