@plyaz/db 0.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.
- package/README.md +169 -0
- package/dist/adapters/drizzle/DrizzleAdapter.d.ts +269 -0
- package/dist/adapters/drizzle/DrizzleAdapter.d.ts.map +1 -0
- package/dist/adapters/index.d.ts +20 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/sql/SQLAdapter.d.ts +282 -0
- package/dist/adapters/sql/SQLAdapter.d.ts.map +1 -0
- package/dist/adapters/supabase/SupabaseAdapter.d.ts +305 -0
- package/dist/adapters/supabase/SupabaseAdapter.d.ts.map +1 -0
- package/dist/advanced/backup/BackupService.d.ts +159 -0
- package/dist/advanced/backup/BackupService.d.ts.map +1 -0
- package/dist/advanced/backup/index.d.ts +2 -0
- package/dist/advanced/backup/index.d.ts.map +1 -0
- package/dist/advanced/caching/CacheEvict.decorator.d.ts +3 -0
- package/dist/advanced/caching/CacheEvict.decorator.d.ts.map +1 -0
- package/dist/advanced/caching/Cacheable.decorator.d.ts +99 -0
- package/dist/advanced/caching/Cacheable.decorator.d.ts.map +1 -0
- package/dist/advanced/caching/RedisCache.d.ts +417 -0
- package/dist/advanced/caching/RedisCache.d.ts.map +1 -0
- package/dist/advanced/caching/index.d.ts +4 -0
- package/dist/advanced/caching/index.d.ts.map +1 -0
- package/dist/advanced/connection-pool/DynamicPool.d.ts +234 -0
- package/dist/advanced/connection-pool/DynamicPool.d.ts.map +1 -0
- package/dist/advanced/connection-pool/index.d.ts +2 -0
- package/dist/advanced/connection-pool/index.d.ts.map +1 -0
- package/dist/advanced/index.d.ts +8 -0
- package/dist/advanced/index.d.ts.map +1 -0
- package/dist/advanced/monitoring/AlertManager.d.ts +72 -0
- package/dist/advanced/monitoring/AlertManager.d.ts.map +1 -0
- package/dist/advanced/monitoring/MetricsCollector.d.ts +81 -0
- package/dist/advanced/monitoring/MetricsCollector.d.ts.map +1 -0
- package/dist/advanced/monitoring/index.d.ts +3 -0
- package/dist/advanced/monitoring/index.d.ts.map +1 -0
- package/dist/advanced/multi-tenancy/TenantContext.d.ts +52 -0
- package/dist/advanced/multi-tenancy/TenantContext.d.ts.map +1 -0
- package/dist/advanced/multi-tenancy/TenantRepository.d.ts +292 -0
- package/dist/advanced/multi-tenancy/TenantRepository.d.ts.map +1 -0
- package/dist/advanced/multi-tenancy/index.d.ts +3 -0
- package/dist/advanced/multi-tenancy/index.d.ts.map +1 -0
- package/dist/advanced/read-replica/ReadReplicaAdapter.d.ts +516 -0
- package/dist/advanced/read-replica/ReadReplicaAdapter.d.ts.map +1 -0
- package/dist/advanced/read-replica/ReadReplicaManager.d.ts +68 -0
- package/dist/advanced/read-replica/ReadReplicaManager.d.ts.map +1 -0
- package/dist/advanced/read-replica/UseReplica.decorator.d.ts +24 -0
- package/dist/advanced/read-replica/UseReplica.decorator.d.ts.map +1 -0
- package/dist/advanced/read-replica/index.d.ts +3 -0
- package/dist/advanced/read-replica/index.d.ts.map +1 -0
- package/dist/advanced/sharding/ShardKey.d.ts +80 -0
- package/dist/advanced/sharding/ShardKey.d.ts.map +1 -0
- package/dist/advanced/sharding/ShardRouter.d.ts +66 -0
- package/dist/advanced/sharding/ShardRouter.d.ts.map +1 -0
- package/dist/advanced/sharding/index.d.ts +3 -0
- package/dist/advanced/sharding/index.d.ts.map +1 -0
- package/dist/builder/query/index.d.ts +7 -0
- package/dist/builder/query/index.d.ts.map +1 -0
- package/dist/builder/query/orm.d.ts +22 -0
- package/dist/builder/query/orm.d.ts.map +1 -0
- package/dist/builder/query/sql.d.ts +29 -0
- package/dist/builder/query/sql.d.ts.map +1 -0
- package/dist/extensions/AuditExtension.d.ts +468 -0
- package/dist/extensions/AuditExtension.d.ts.map +1 -0
- package/dist/extensions/CachingAdapter.d.ts +451 -0
- package/dist/extensions/CachingAdapter.d.ts.map +1 -0
- package/dist/extensions/EncryptionExtension.d.ts +95 -0
- package/dist/extensions/EncryptionExtension.d.ts.map +1 -0
- package/dist/extensions/ReadReplicaAdapter.d.ts +32 -0
- package/dist/extensions/ReadReplicaAdapter.d.ts.map +1 -0
- package/dist/extensions/SoftDeleteExtension.d.ts +430 -0
- package/dist/extensions/SoftDeleteExtension.d.ts.map +1 -0
- package/dist/extensions/index.d.ts +79 -0
- package/dist/extensions/index.d.ts.map +1 -0
- package/dist/factory/AdapterFactory.d.ts +111 -0
- package/dist/factory/AdapterFactory.d.ts.map +1 -0
- package/dist/factory/createDatabaseService.d.ts +121 -0
- package/dist/factory/createDatabaseService.d.ts.map +1 -0
- package/dist/index.cjs +8518 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.mjs +8480 -0
- package/dist/index.mjs.map +1 -0
- package/dist/repository/BaseRepository.d.ts +209 -0
- package/dist/repository/BaseRepository.d.ts.map +1 -0
- package/dist/repository/index.d.ts +80 -0
- package/dist/repository/index.d.ts.map +1 -0
- package/dist/security/index.cjs +118 -0
- package/dist/security/index.cjs.map +1 -0
- package/dist/security/index.d.ts +3 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.mjs +114 -0
- package/dist/security/index.mjs.map +1 -0
- package/dist/security/sanitizers/html.sanitizer.d.ts +31 -0
- package/dist/security/sanitizers/html.sanitizer.d.ts.map +1 -0
- package/dist/security/serializers/DataValidation.d.ts +34 -0
- package/dist/security/serializers/DataValidation.d.ts.map +1 -0
- package/dist/service/DatabaseService.d.ts +136 -0
- package/dist/service/DatabaseService.d.ts.map +1 -0
- package/dist/service/EventEmitter.d.ts +110 -0
- package/dist/service/EventEmitter.d.ts.map +1 -0
- package/dist/service/HealthManager.d.ts +166 -0
- package/dist/service/HealthManager.d.ts.map +1 -0
- package/dist/utils/ConfigMerger.d.ts +227 -0
- package/dist/utils/ConfigMerger.d.ts.map +1 -0
- package/dist/utils/databaseResultHelpers.d.ts +98 -0
- package/dist/utils/databaseResultHelpers.d.ts.map +1 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/normalizeDetails.d.ts +111 -0
- package/dist/utils/normalizeDetails.d.ts.map +1 -0
- package/dist/utils/pagination.d.ts +77 -0
- package/dist/utils/pagination.d.ts.map +1 -0
- package/dist/utils/regex.d.ts +199 -0
- package/dist/utils/regex.d.ts.map +1 -0
- package/dist/utils/typeGuards.d.ts +57 -0
- package/dist/utils/typeGuards.d.ts.map +1 -0
- package/dist/utils/validation.d.ts +146 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/package.json +156 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import type { ShardKey } from "@plyaz/types";
|
|
2
|
+
/**
|
|
3
|
+
* Manages shard key definitions and calculations.
|
|
4
|
+
* Provides utilities for determining which shard a record belongs to.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* const shardKeyManager = new ShardKeyManager();
|
|
9
|
+
*
|
|
10
|
+
* // Register a shard key for users table
|
|
11
|
+
* shardKeyManager.registerShardKey('users', {
|
|
12
|
+
* name: 'user_shard',
|
|
13
|
+
* type: 'hash',
|
|
14
|
+
* columns: ['id'],
|
|
15
|
+
* strategy: 'hash',
|
|
16
|
+
* shardCount: 4
|
|
17
|
+
* });
|
|
18
|
+
*
|
|
19
|
+
* // Calculate which shard a user belongs to
|
|
20
|
+
* const shardId = shardKeyManager.calculateShard('users', { id: 'user-123' });
|
|
21
|
+
* console.log(`User belongs to shard ${shardId}`);
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare class ShardKeyManager {
|
|
25
|
+
private shardKeys;
|
|
26
|
+
/**
|
|
27
|
+
* Registers a shard key for a table.
|
|
28
|
+
* @param table Table name
|
|
29
|
+
* @param shardKey Shard key configuration
|
|
30
|
+
*/
|
|
31
|
+
registerShardKey(table: string, shardKey: ShardKey): void;
|
|
32
|
+
/**
|
|
33
|
+
* Gets the shard key configuration for a table.
|
|
34
|
+
* @param table Table name
|
|
35
|
+
* @returns Shard key configuration or undefined
|
|
36
|
+
*/
|
|
37
|
+
getShardKey(table: string): ShardKey | undefined;
|
|
38
|
+
/**
|
|
39
|
+
* Calculates which shard a record belongs to.
|
|
40
|
+
* @param table Table name
|
|
41
|
+
* @param data Record data
|
|
42
|
+
* @returns Shard ID (0-based)
|
|
43
|
+
*/
|
|
44
|
+
calculateShard<T extends Record<string, string | number>>(table: string, data: T): number;
|
|
45
|
+
/**
|
|
46
|
+
* Extracts the shard key value from record data.
|
|
47
|
+
* @param data Record data
|
|
48
|
+
* @param shardKey Shard key configuration
|
|
49
|
+
* @returns Extracted key value
|
|
50
|
+
*/
|
|
51
|
+
private extractKeyValue;
|
|
52
|
+
/**
|
|
53
|
+
* Calculates shard ID using modulus strategy.
|
|
54
|
+
* @param keyValue Key value
|
|
55
|
+
* @param shardCount Number of shards
|
|
56
|
+
* @returns Shard ID
|
|
57
|
+
*/
|
|
58
|
+
private modulusShard;
|
|
59
|
+
/**
|
|
60
|
+
* Calculates shard ID using hash strategy.
|
|
61
|
+
* @param keyValue Key value
|
|
62
|
+
* @param shardCount Number of shards
|
|
63
|
+
* @returns Shard ID
|
|
64
|
+
*/
|
|
65
|
+
private hashShard;
|
|
66
|
+
/**
|
|
67
|
+
* Calculates shard ID using range strategy.
|
|
68
|
+
* @param keyValue Key value
|
|
69
|
+
* @param shardKey Shard key configuration
|
|
70
|
+
* @returns Shard ID
|
|
71
|
+
*/
|
|
72
|
+
private rangeShard;
|
|
73
|
+
/**
|
|
74
|
+
* Hashes a string to a numeric value.
|
|
75
|
+
* @param str String to hash
|
|
76
|
+
* @returns Hash value
|
|
77
|
+
*/
|
|
78
|
+
private hashString;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=ShardKey.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShardKey.d.ts","sourceRoot":"","sources":["../../../src/advanced/sharding/ShardKey.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,SAAS,CAAoC;IAErD;;;;OAIG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAIzD;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAIhD;;;;;OAKG;IACH,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EACtD,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,CAAC,GACN,MAAM;IAkCT;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAWvB;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IASpB;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IASjB;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAalB;;;;OAIG;IACH,OAAO,CAAC,UAAU;CASnB"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { ShardConfig, ShardKey } from "@plyaz/types";
|
|
2
|
+
/**
|
|
3
|
+
* Routes database operations to the appropriate shard based on shard keys.
|
|
4
|
+
* Provides shard-aware routing and management capabilities.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* const shardConfigs: ShardConfig[] = [
|
|
9
|
+
* { id: 0, connectionString: 'postgres://shard0:5432/db', isPrimary: false },
|
|
10
|
+
* { id: 1, connectionString: 'postgres://shard1:5432/db', isPrimary: false },
|
|
11
|
+
* { id: 2, connectionString: 'postgres://shard2:5432/db', isPrimary: true }
|
|
12
|
+
* ];
|
|
13
|
+
*
|
|
14
|
+
* const router = new ShardRouter(shardConfigs);
|
|
15
|
+
*
|
|
16
|
+
* // Route a record to the appropriate shard
|
|
17
|
+
* const userData = { id: 'user-456', name: 'Jane' };
|
|
18
|
+
* const shard = router.routeToShard('users', userData);
|
|
19
|
+
* console.log(`User should be stored on shard ${shard.id}`);
|
|
20
|
+
*
|
|
21
|
+
* // Get a specific shard
|
|
22
|
+
* const shard2 = router.getShardById(2);
|
|
23
|
+
*
|
|
24
|
+
* // Get all shards
|
|
25
|
+
* const allShards = router.getAllShards();
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export declare class ShardRouter {
|
|
29
|
+
private shards;
|
|
30
|
+
private shardKeyManager;
|
|
31
|
+
/**
|
|
32
|
+
* Creates a new ShardRouter instance.
|
|
33
|
+
* @param shardConfigs Array of shard configurations
|
|
34
|
+
*/
|
|
35
|
+
constructor(shardConfigs: ShardConfig[]);
|
|
36
|
+
/**
|
|
37
|
+
* Determines which shard a record should be routed to.
|
|
38
|
+
* @param table Table name
|
|
39
|
+
* @param data Record data
|
|
40
|
+
* @returns Shard configuration
|
|
41
|
+
*/
|
|
42
|
+
routeToShard(table: string, data: Record<string, string | number | boolean | Date>): ShardConfig;
|
|
43
|
+
/**
|
|
44
|
+
* Gets a shard configuration by ID.
|
|
45
|
+
* @param shardId Shard ID
|
|
46
|
+
* @returns Shard configuration or undefined
|
|
47
|
+
*/
|
|
48
|
+
getShardById(shardId: number): ShardConfig | undefined;
|
|
49
|
+
/**
|
|
50
|
+
* Gets all shard configurations.
|
|
51
|
+
* @returns Array of all shard configurations
|
|
52
|
+
*/
|
|
53
|
+
getAllShards(): ShardConfig[];
|
|
54
|
+
/**
|
|
55
|
+
* Gets the primary shard configuration.
|
|
56
|
+
* @returns Primary shard configuration or undefined
|
|
57
|
+
*/
|
|
58
|
+
getPrimaryShard(): ShardConfig | undefined;
|
|
59
|
+
/**
|
|
60
|
+
* Registers a shard key for a table.
|
|
61
|
+
* @param table Table name
|
|
62
|
+
* @param shardKey Shard key configuration
|
|
63
|
+
*/
|
|
64
|
+
registerShardKey(table: string, shardKey: ShardKey): void;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=ShardRouter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShardRouter.d.ts","sourceRoot":"","sources":["../../../src/advanced/sharding/ShardRouter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAuC;IACrD,OAAO,CAAC,eAAe,CAAkB;IAEzC;;;OAGG;gBACS,YAAY,EAAE,WAAW,EAAE;IAQvC;;;;;OAKG;IACH,YAAY,CACV,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,GACrD,WAAW;IAwBd;;;;OAIG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAItD;;;OAGG;IACH,YAAY,IAAI,WAAW,EAAE;IAI7B;;;OAGG;IACH,eAAe,IAAI,WAAW,GAAG,SAAS;IAI1C;;;;OAIG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;CAG1D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/advanced/sharding/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/builder/query/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,OAAO,CAAC;AACtB,cAAc,OAAO,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ORM Query builder utilities
|
|
3
|
+
*
|
|
4
|
+
* This module provides utilities for building ORM-specific queries.
|
|
5
|
+
* Currently a placeholder for future ORM implementations.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Builds a WHERE clause for ORM queries
|
|
9
|
+
* @throws Error - Not implemented yet
|
|
10
|
+
*/
|
|
11
|
+
export declare function buildWhereClauseORM(): Error;
|
|
12
|
+
/**
|
|
13
|
+
* Builds an ORDER BY clause for ORM queries
|
|
14
|
+
* @throws Error - Not implemented yet
|
|
15
|
+
*/
|
|
16
|
+
export declare function buildOrderClauseORM(): Error;
|
|
17
|
+
/**
|
|
18
|
+
* Builds pagination clauses for ORM queries
|
|
19
|
+
* @throws Error - Not implemented yet
|
|
20
|
+
*/
|
|
21
|
+
export declare function buildPaginationClauseORM(): Error;
|
|
22
|
+
//# sourceMappingURL=orm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orm.d.ts","sourceRoot":"","sources":["../../../src/builder/query/orm.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,KAAK,CAS3C;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,KAAK,CAS3C;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,KAAK,CAShD"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { PaginationOptions, SortOptions, Filter } from "@plyaz/types/db";
|
|
2
|
+
/**
|
|
3
|
+
* SQL query builder utilities
|
|
4
|
+
*
|
|
5
|
+
* Provides safe, parameterized SQL query generation.
|
|
6
|
+
* Works independently of any specific ORM or query engine.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Builds a WHERE clause from filters
|
|
10
|
+
* @param filters - Array of filter conditions
|
|
11
|
+
* @returns WHERE clause string
|
|
12
|
+
*/
|
|
13
|
+
export declare function buildWhereClause<T extends object = object>(filters?: Filter[]): string;
|
|
14
|
+
/**
|
|
15
|
+
* Builds an ORDER BY clause from sort options
|
|
16
|
+
* @param sortOptions - Array of sort options
|
|
17
|
+
* @returns ORDER BY clause string
|
|
18
|
+
*/
|
|
19
|
+
export declare function buildOrderClause(sortOptions?: SortOptions[]): string;
|
|
20
|
+
/**
|
|
21
|
+
* Builds LIMIT and OFFSET clauses from pagination options
|
|
22
|
+
* @param pagination - Pagination options
|
|
23
|
+
* @returns Object containing the clause string and parameters
|
|
24
|
+
*/
|
|
25
|
+
export declare function buildPaginationClause<T>(pagination?: PaginationOptions): {
|
|
26
|
+
clause: string;
|
|
27
|
+
params: T[];
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=sql.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../../../src/builder/query/sql.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAG9E;;;;;GAKG;AAEH;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EACxD,OAAO,CAAC,EAAE,MAAM,EAAE,GACjB,MAAM,CAuDR;AAsGD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,GAAG,MAAM,CAuCpE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,iBAAiB,GAAG;IACxE,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,CAAC,EAAE,CAAC;CACb,CAmBA"}
|