@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.
Files changed (118) hide show
  1. package/README.md +169 -0
  2. package/dist/adapters/drizzle/DrizzleAdapter.d.ts +269 -0
  3. package/dist/adapters/drizzle/DrizzleAdapter.d.ts.map +1 -0
  4. package/dist/adapters/index.d.ts +20 -0
  5. package/dist/adapters/index.d.ts.map +1 -0
  6. package/dist/adapters/sql/SQLAdapter.d.ts +282 -0
  7. package/dist/adapters/sql/SQLAdapter.d.ts.map +1 -0
  8. package/dist/adapters/supabase/SupabaseAdapter.d.ts +305 -0
  9. package/dist/adapters/supabase/SupabaseAdapter.d.ts.map +1 -0
  10. package/dist/advanced/backup/BackupService.d.ts +159 -0
  11. package/dist/advanced/backup/BackupService.d.ts.map +1 -0
  12. package/dist/advanced/backup/index.d.ts +2 -0
  13. package/dist/advanced/backup/index.d.ts.map +1 -0
  14. package/dist/advanced/caching/CacheEvict.decorator.d.ts +3 -0
  15. package/dist/advanced/caching/CacheEvict.decorator.d.ts.map +1 -0
  16. package/dist/advanced/caching/Cacheable.decorator.d.ts +99 -0
  17. package/dist/advanced/caching/Cacheable.decorator.d.ts.map +1 -0
  18. package/dist/advanced/caching/RedisCache.d.ts +417 -0
  19. package/dist/advanced/caching/RedisCache.d.ts.map +1 -0
  20. package/dist/advanced/caching/index.d.ts +4 -0
  21. package/dist/advanced/caching/index.d.ts.map +1 -0
  22. package/dist/advanced/connection-pool/DynamicPool.d.ts +234 -0
  23. package/dist/advanced/connection-pool/DynamicPool.d.ts.map +1 -0
  24. package/dist/advanced/connection-pool/index.d.ts +2 -0
  25. package/dist/advanced/connection-pool/index.d.ts.map +1 -0
  26. package/dist/advanced/index.d.ts +8 -0
  27. package/dist/advanced/index.d.ts.map +1 -0
  28. package/dist/advanced/monitoring/AlertManager.d.ts +72 -0
  29. package/dist/advanced/monitoring/AlertManager.d.ts.map +1 -0
  30. package/dist/advanced/monitoring/MetricsCollector.d.ts +81 -0
  31. package/dist/advanced/monitoring/MetricsCollector.d.ts.map +1 -0
  32. package/dist/advanced/monitoring/index.d.ts +3 -0
  33. package/dist/advanced/monitoring/index.d.ts.map +1 -0
  34. package/dist/advanced/multi-tenancy/TenantContext.d.ts +52 -0
  35. package/dist/advanced/multi-tenancy/TenantContext.d.ts.map +1 -0
  36. package/dist/advanced/multi-tenancy/TenantRepository.d.ts +292 -0
  37. package/dist/advanced/multi-tenancy/TenantRepository.d.ts.map +1 -0
  38. package/dist/advanced/multi-tenancy/index.d.ts +3 -0
  39. package/dist/advanced/multi-tenancy/index.d.ts.map +1 -0
  40. package/dist/advanced/read-replica/ReadReplicaAdapter.d.ts +516 -0
  41. package/dist/advanced/read-replica/ReadReplicaAdapter.d.ts.map +1 -0
  42. package/dist/advanced/read-replica/ReadReplicaManager.d.ts +68 -0
  43. package/dist/advanced/read-replica/ReadReplicaManager.d.ts.map +1 -0
  44. package/dist/advanced/read-replica/UseReplica.decorator.d.ts +24 -0
  45. package/dist/advanced/read-replica/UseReplica.decorator.d.ts.map +1 -0
  46. package/dist/advanced/read-replica/index.d.ts +3 -0
  47. package/dist/advanced/read-replica/index.d.ts.map +1 -0
  48. package/dist/advanced/sharding/ShardKey.d.ts +80 -0
  49. package/dist/advanced/sharding/ShardKey.d.ts.map +1 -0
  50. package/dist/advanced/sharding/ShardRouter.d.ts +66 -0
  51. package/dist/advanced/sharding/ShardRouter.d.ts.map +1 -0
  52. package/dist/advanced/sharding/index.d.ts +3 -0
  53. package/dist/advanced/sharding/index.d.ts.map +1 -0
  54. package/dist/builder/query/index.d.ts +7 -0
  55. package/dist/builder/query/index.d.ts.map +1 -0
  56. package/dist/builder/query/orm.d.ts +22 -0
  57. package/dist/builder/query/orm.d.ts.map +1 -0
  58. package/dist/builder/query/sql.d.ts +29 -0
  59. package/dist/builder/query/sql.d.ts.map +1 -0
  60. package/dist/extensions/AuditExtension.d.ts +468 -0
  61. package/dist/extensions/AuditExtension.d.ts.map +1 -0
  62. package/dist/extensions/CachingAdapter.d.ts +451 -0
  63. package/dist/extensions/CachingAdapter.d.ts.map +1 -0
  64. package/dist/extensions/EncryptionExtension.d.ts +95 -0
  65. package/dist/extensions/EncryptionExtension.d.ts.map +1 -0
  66. package/dist/extensions/ReadReplicaAdapter.d.ts +32 -0
  67. package/dist/extensions/ReadReplicaAdapter.d.ts.map +1 -0
  68. package/dist/extensions/SoftDeleteExtension.d.ts +430 -0
  69. package/dist/extensions/SoftDeleteExtension.d.ts.map +1 -0
  70. package/dist/extensions/index.d.ts +79 -0
  71. package/dist/extensions/index.d.ts.map +1 -0
  72. package/dist/factory/AdapterFactory.d.ts +111 -0
  73. package/dist/factory/AdapterFactory.d.ts.map +1 -0
  74. package/dist/factory/createDatabaseService.d.ts +121 -0
  75. package/dist/factory/createDatabaseService.d.ts.map +1 -0
  76. package/dist/index.cjs +8518 -0
  77. package/dist/index.cjs.map +1 -0
  78. package/dist/index.d.ts +19 -0
  79. package/dist/index.d.ts.map +1 -0
  80. package/dist/index.mjs +8480 -0
  81. package/dist/index.mjs.map +1 -0
  82. package/dist/repository/BaseRepository.d.ts +209 -0
  83. package/dist/repository/BaseRepository.d.ts.map +1 -0
  84. package/dist/repository/index.d.ts +80 -0
  85. package/dist/repository/index.d.ts.map +1 -0
  86. package/dist/security/index.cjs +118 -0
  87. package/dist/security/index.cjs.map +1 -0
  88. package/dist/security/index.d.ts +3 -0
  89. package/dist/security/index.d.ts.map +1 -0
  90. package/dist/security/index.mjs +114 -0
  91. package/dist/security/index.mjs.map +1 -0
  92. package/dist/security/sanitizers/html.sanitizer.d.ts +31 -0
  93. package/dist/security/sanitizers/html.sanitizer.d.ts.map +1 -0
  94. package/dist/security/serializers/DataValidation.d.ts +34 -0
  95. package/dist/security/serializers/DataValidation.d.ts.map +1 -0
  96. package/dist/service/DatabaseService.d.ts +136 -0
  97. package/dist/service/DatabaseService.d.ts.map +1 -0
  98. package/dist/service/EventEmitter.d.ts +110 -0
  99. package/dist/service/EventEmitter.d.ts.map +1 -0
  100. package/dist/service/HealthManager.d.ts +166 -0
  101. package/dist/service/HealthManager.d.ts.map +1 -0
  102. package/dist/utils/ConfigMerger.d.ts +227 -0
  103. package/dist/utils/ConfigMerger.d.ts.map +1 -0
  104. package/dist/utils/databaseResultHelpers.d.ts +98 -0
  105. package/dist/utils/databaseResultHelpers.d.ts.map +1 -0
  106. package/dist/utils/index.d.ts +7 -0
  107. package/dist/utils/index.d.ts.map +1 -0
  108. package/dist/utils/normalizeDetails.d.ts +111 -0
  109. package/dist/utils/normalizeDetails.d.ts.map +1 -0
  110. package/dist/utils/pagination.d.ts +77 -0
  111. package/dist/utils/pagination.d.ts.map +1 -0
  112. package/dist/utils/regex.d.ts +199 -0
  113. package/dist/utils/regex.d.ts.map +1 -0
  114. package/dist/utils/typeGuards.d.ts +57 -0
  115. package/dist/utils/typeGuards.d.ts.map +1 -0
  116. package/dist/utils/validation.d.ts +146 -0
  117. package/dist/utils/validation.d.ts.map +1 -0
  118. 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,3 @@
1
+ export { ShardKeyManager } from "./ShardKey";
2
+ export { ShardRouter } from "./ShardRouter";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -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,7 @@
1
+ /**
2
+ * Query builder index
3
+ * Exports all query builder utilities (SQL and ORM)
4
+ */
5
+ export * from "./sql";
6
+ export * from "./orm";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -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"}