linkgress-orm 0.0.1

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 (147) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +196 -0
  3. package/dist/database/database-client.interface.d.ts +45 -0
  4. package/dist/database/database-client.interface.d.ts.map +1 -0
  5. package/dist/database/database-client.interface.js +20 -0
  6. package/dist/database/database-client.interface.js.map +1 -0
  7. package/dist/database/index.d.ts +5 -0
  8. package/dist/database/index.d.ts.map +1 -0
  9. package/dist/database/index.js +10 -0
  10. package/dist/database/index.js.map +1 -0
  11. package/dist/database/pg-client.d.ts +30 -0
  12. package/dist/database/pg-client.d.ts.map +1 -0
  13. package/dist/database/pg-client.js +76 -0
  14. package/dist/database/pg-client.js.map +1 -0
  15. package/dist/database/postgres-client.d.ts +44 -0
  16. package/dist/database/postgres-client.d.ts.map +1 -0
  17. package/dist/database/postgres-client.js +111 -0
  18. package/dist/database/postgres-client.js.map +1 -0
  19. package/dist/database/types.d.ts +200 -0
  20. package/dist/database/types.d.ts.map +1 -0
  21. package/dist/database/types.js +8 -0
  22. package/dist/database/types.js.map +1 -0
  23. package/dist/entity/base-entity.d.ts +21 -0
  24. package/dist/entity/base-entity.d.ts.map +1 -0
  25. package/dist/entity/base-entity.js +27 -0
  26. package/dist/entity/base-entity.js.map +1 -0
  27. package/dist/entity/db-column.d.ts +61 -0
  28. package/dist/entity/db-column.d.ts.map +1 -0
  29. package/dist/entity/db-column.js +35 -0
  30. package/dist/entity/db-column.js.map +1 -0
  31. package/dist/entity/db-context.d.ts +665 -0
  32. package/dist/entity/db-context.d.ts.map +1 -0
  33. package/dist/entity/db-context.js +1463 -0
  34. package/dist/entity/db-context.js.map +1 -0
  35. package/dist/entity/entity-base.d.ts +76 -0
  36. package/dist/entity/entity-base.d.ts.map +1 -0
  37. package/dist/entity/entity-base.js +42 -0
  38. package/dist/entity/entity-base.js.map +1 -0
  39. package/dist/entity/entity-builder.d.ts +171 -0
  40. package/dist/entity/entity-builder.d.ts.map +1 -0
  41. package/dist/entity/entity-builder.js +376 -0
  42. package/dist/entity/entity-builder.js.map +1 -0
  43. package/dist/entity/model-config.d.ts +18 -0
  44. package/dist/entity/model-config.d.ts.map +1 -0
  45. package/dist/entity/model-config.js +157 -0
  46. package/dist/entity/model-config.js.map +1 -0
  47. package/dist/index.d.ts +27 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +142 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/migration/db-schema-manager.d.ts +228 -0
  52. package/dist/migration/db-schema-manager.d.ts.map +1 -0
  53. package/dist/migration/db-schema-manager.js +1055 -0
  54. package/dist/migration/db-schema-manager.js.map +1 -0
  55. package/dist/migration/enum-migrator.d.ts +29 -0
  56. package/dist/migration/enum-migrator.d.ts.map +1 -0
  57. package/dist/migration/enum-migrator.js +137 -0
  58. package/dist/migration/enum-migrator.js.map +1 -0
  59. package/dist/query/collection-strategy.factory.d.ts +16 -0
  60. package/dist/query/collection-strategy.factory.d.ts.map +1 -0
  61. package/dist/query/collection-strategy.factory.js +37 -0
  62. package/dist/query/collection-strategy.factory.js.map +1 -0
  63. package/dist/query/collection-strategy.interface.d.ts +146 -0
  64. package/dist/query/collection-strategy.interface.d.ts.map +1 -0
  65. package/dist/query/collection-strategy.interface.js +3 -0
  66. package/dist/query/collection-strategy.interface.js.map +1 -0
  67. package/dist/query/conditions.d.ts +222 -0
  68. package/dist/query/conditions.d.ts.map +1 -0
  69. package/dist/query/conditions.js +446 -0
  70. package/dist/query/conditions.js.map +1 -0
  71. package/dist/query/cte-builder.d.ts +95 -0
  72. package/dist/query/cte-builder.d.ts.map +1 -0
  73. package/dist/query/cte-builder.js +172 -0
  74. package/dist/query/cte-builder.js.map +1 -0
  75. package/dist/query/grouped-query.d.ts +186 -0
  76. package/dist/query/grouped-query.d.ts.map +1 -0
  77. package/dist/query/grouped-query.js +588 -0
  78. package/dist/query/grouped-query.js.map +1 -0
  79. package/dist/query/join-builder.d.ts +106 -0
  80. package/dist/query/join-builder.d.ts.map +1 -0
  81. package/dist/query/join-builder.js +275 -0
  82. package/dist/query/join-builder.js.map +1 -0
  83. package/dist/query/query-builder.d.ts +543 -0
  84. package/dist/query/query-builder.d.ts.map +1 -0
  85. package/dist/query/query-builder.js +2649 -0
  86. package/dist/query/query-builder.js.map +1 -0
  87. package/dist/query/strategies/jsonb-collection-strategy.d.ts +51 -0
  88. package/dist/query/strategies/jsonb-collection-strategy.d.ts.map +1 -0
  89. package/dist/query/strategies/jsonb-collection-strategy.js +210 -0
  90. package/dist/query/strategies/jsonb-collection-strategy.js.map +1 -0
  91. package/dist/query/strategies/temptable-collection-strategy.d.ts +95 -0
  92. package/dist/query/strategies/temptable-collection-strategy.d.ts.map +1 -0
  93. package/dist/query/strategies/temptable-collection-strategy.js +456 -0
  94. package/dist/query/strategies/temptable-collection-strategy.js.map +1 -0
  95. package/dist/query/subquery.d.ts +152 -0
  96. package/dist/query/subquery.d.ts.map +1 -0
  97. package/dist/query/subquery.js +206 -0
  98. package/dist/query/subquery.js.map +1 -0
  99. package/dist/schema/column-builder.d.ts +127 -0
  100. package/dist/schema/column-builder.d.ts.map +1 -0
  101. package/dist/schema/column-builder.js +184 -0
  102. package/dist/schema/column-builder.js.map +1 -0
  103. package/dist/schema/inference.d.ts +26 -0
  104. package/dist/schema/inference.d.ts.map +1 -0
  105. package/dist/schema/inference.js +3 -0
  106. package/dist/schema/inference.js.map +1 -0
  107. package/dist/schema/navigation.d.ts +215 -0
  108. package/dist/schema/navigation.d.ts.map +1 -0
  109. package/dist/schema/navigation.js +233 -0
  110. package/dist/schema/navigation.js.map +1 -0
  111. package/dist/schema/row-type.d.ts +26 -0
  112. package/dist/schema/row-type.d.ts.map +1 -0
  113. package/dist/schema/row-type.js +3 -0
  114. package/dist/schema/row-type.js.map +1 -0
  115. package/dist/schema/sequence-builder.d.ts +87 -0
  116. package/dist/schema/sequence-builder.d.ts.map +1 -0
  117. package/dist/schema/sequence-builder.js +123 -0
  118. package/dist/schema/sequence-builder.js.map +1 -0
  119. package/dist/schema/table-builder.d.ts +122 -0
  120. package/dist/schema/table-builder.d.ts.map +1 -0
  121. package/dist/schema/table-builder.js +132 -0
  122. package/dist/schema/table-builder.js.map +1 -0
  123. package/dist/schema/typed-schema.d.ts +22 -0
  124. package/dist/schema/typed-schema.d.ts.map +1 -0
  125. package/dist/schema/typed-schema.js +28 -0
  126. package/dist/schema/typed-schema.js.map +1 -0
  127. package/dist/types/column-types.d.ts +20 -0
  128. package/dist/types/column-types.d.ts.map +1 -0
  129. package/dist/types/column-types.js +14 -0
  130. package/dist/types/column-types.js.map +1 -0
  131. package/dist/types/custom-types.d.ts +85 -0
  132. package/dist/types/custom-types.d.ts.map +1 -0
  133. package/dist/types/custom-types.js +132 -0
  134. package/dist/types/custom-types.js.map +1 -0
  135. package/dist/types/enum-builder.d.ts +31 -0
  136. package/dist/types/enum-builder.d.ts.map +1 -0
  137. package/dist/types/enum-builder.js +46 -0
  138. package/dist/types/enum-builder.js.map +1 -0
  139. package/dist/types/metadata.d.ts +67 -0
  140. package/dist/types/metadata.d.ts.map +1 -0
  141. package/dist/types/metadata.js +57 -0
  142. package/dist/types/metadata.js.map +1 -0
  143. package/dist/types/type-mapper.d.ts +49 -0
  144. package/dist/types/type-mapper.d.ts.map +1 -0
  145. package/dist/types/type-mapper.js +49 -0
  146. package/dist/types/type-mapper.js.map +1 -0
  147. package/package.json +77 -0
@@ -0,0 +1,200 @@
1
+ /**
2
+ * Configuration types for database clients
3
+ * These are based on the actual pg and postgres libraries but defined here
4
+ * to avoid requiring the packages at compile time.
5
+ */
6
+ /**
7
+ * Connection pool configuration for node-postgres (pg) library
8
+ * @see https://node-postgres.com/apis/pool
9
+ */
10
+ export interface PoolConfig {
11
+ /**
12
+ * Database host (default: localhost)
13
+ */
14
+ host?: string;
15
+ /**
16
+ * Database server port (default: 5432)
17
+ */
18
+ port?: number;
19
+ /**
20
+ * Database name
21
+ */
22
+ database?: string;
23
+ /**
24
+ * Database user
25
+ */
26
+ user?: string;
27
+ /**
28
+ * Database password
29
+ */
30
+ password?: string;
31
+ /**
32
+ * Connection string (alternative to individual options)
33
+ * Format: postgres://user:password@host:port/database
34
+ */
35
+ connectionString?: string;
36
+ /**
37
+ * Maximum number of clients in the pool (default: 10)
38
+ */
39
+ max?: number;
40
+ /**
41
+ * Minimum number of clients in the pool (default: 0)
42
+ */
43
+ min?: number;
44
+ /**
45
+ * Number of milliseconds to wait before timing out when connecting a new client (default: 0 - no timeout)
46
+ */
47
+ connectionTimeoutMillis?: number;
48
+ /**
49
+ * Number of milliseconds a client must sit idle in the pool before being closed (default: 10000)
50
+ */
51
+ idleTimeoutMillis?: number;
52
+ /**
53
+ * Maximum number of milliseconds to wait for a query to complete (default: 0 - no timeout)
54
+ */
55
+ query_timeout?: number;
56
+ /**
57
+ * Maximum number of milliseconds to wait for a connection (default: 0 - no timeout)
58
+ */
59
+ statement_timeout?: number;
60
+ /**
61
+ * Number of milliseconds before a query will time out (default: 0 - no timeout)
62
+ */
63
+ idle_in_transaction_session_timeout?: number;
64
+ /**
65
+ * Application name for logging (default: undefined)
66
+ */
67
+ application_name?: string;
68
+ /**
69
+ * Whether to use SSL (default: false)
70
+ */
71
+ ssl?: boolean | {
72
+ rejectUnauthorized?: boolean;
73
+ ca?: string;
74
+ key?: string;
75
+ cert?: string;
76
+ };
77
+ /**
78
+ * Custom types parser
79
+ */
80
+ types?: any;
81
+ /**
82
+ * Whether to allow exiting the pool (default: true)
83
+ */
84
+ allowExitOnIdle?: boolean;
85
+ }
86
+ /**
87
+ * Connection options for postgres.js library
88
+ * @see https://github.com/porsager/postgres
89
+ */
90
+ export interface PostgresOptions {
91
+ /**
92
+ * Database host (default: localhost)
93
+ */
94
+ host?: string;
95
+ /**
96
+ * Database server port (default: 5432)
97
+ */
98
+ port?: number;
99
+ /**
100
+ * Database name
101
+ */
102
+ database?: string;
103
+ /**
104
+ * Database user (default: process.env.USER)
105
+ */
106
+ user?: string;
107
+ /**
108
+ * Username (alias for user)
109
+ */
110
+ username?: string;
111
+ /**
112
+ * Database password
113
+ */
114
+ password?: string;
115
+ /**
116
+ * Pass phrase for encrypted key
117
+ */
118
+ pass?: string;
119
+ /**
120
+ * Maximum number of connections (default: 10)
121
+ */
122
+ max?: number;
123
+ /**
124
+ * Minimum number of idle connections (default: 0)
125
+ */
126
+ min?: number;
127
+ /**
128
+ * Idle connection timeout in seconds (default: undefined)
129
+ */
130
+ idle_timeout?: number;
131
+ /**
132
+ * Connection timeout in seconds (default: undefined)
133
+ */
134
+ connect_timeout?: number;
135
+ /**
136
+ * Max lifetime of a connection in seconds (default: 3600)
137
+ */
138
+ max_lifetime?: number;
139
+ /**
140
+ * Timeout for queries in seconds (default: undefined)
141
+ */
142
+ timeout?: number;
143
+ /**
144
+ * SSL configuration (default: false)
145
+ */
146
+ ssl?: boolean | 'require' | 'allow' | 'prefer' | 'verify-full' | {
147
+ rejectUnauthorized?: boolean;
148
+ ca?: string;
149
+ key?: string;
150
+ cert?: string;
151
+ };
152
+ /**
153
+ * Whether to use prepared statements (default: true)
154
+ */
155
+ prepare?: boolean;
156
+ /**
157
+ * Transform column names (default: undefined)
158
+ */
159
+ transform?: {
160
+ column?: (column: string) => string;
161
+ value?: (value: any) => any;
162
+ row?: (row: any) => any;
163
+ };
164
+ /**
165
+ * Custom types mapping
166
+ */
167
+ types?: any;
168
+ /**
169
+ * Connection properties
170
+ */
171
+ connection?: {
172
+ application_name?: string;
173
+ [key: string]: any;
174
+ };
175
+ /**
176
+ * Called when connection is established
177
+ */
178
+ onnotice?: (notice: any) => void;
179
+ /**
180
+ * Called when connection is closed
181
+ */
182
+ onclose?: (connectionId: number) => void;
183
+ /**
184
+ * Called for query logging
185
+ */
186
+ debug?: boolean | ((connection: number, query: string, params: any[], types: any[]) => void);
187
+ /**
188
+ * Fetch array mode (default: false)
189
+ */
190
+ fetch_types?: boolean;
191
+ /**
192
+ * Publications for logical replication
193
+ */
194
+ publications?: string;
195
+ /**
196
+ * Target session attributes (default: any)
197
+ */
198
+ target_session_attrs?: 'any' | 'read-write' | 'read-only' | 'primary' | 'standby' | 'prefer-standby';
199
+ }
200
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/database/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAEjC;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,mCAAmC,CAAC,EAAE,MAAM,CAAC;IAE7C;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,GAAG,CAAC,EAAE,OAAO,GAAG;QACd,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAEF;;OAEG;IACH,KAAK,CAAC,EAAE,GAAG,CAAC;IAEZ;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,GAAG,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,aAAa,GAAG;QAC/D,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAEF;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,SAAS,CAAC,EAAE;QACV,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;QACpC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;QAC5B,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC;KACzB,CAAC;IAEF;;OAEG;IACH,KAAK,CAAC,EAAE,GAAG,CAAC;IAEZ;;OAEG;IACH,UAAU,CAAC,EAAE;QACX,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;IAEF;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IAEjC;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAEzC;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC;IAE7F;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,oBAAoB,CAAC,EAAE,KAAK,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,gBAAgB,CAAC;CACtG"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ /**
3
+ * Configuration types for database clients
4
+ * These are based on the actual pg and postgres libraries but defined here
5
+ * to avoid requiring the packages at compile time.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/database/types.ts"],"names":[],"mappings":";AAAA;;;;GAIG"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Base class for all entities
3
+ * Provides common functionality and ensures proper type handling
4
+ */
5
+ export declare abstract class DbEntity {
6
+ /** @internal */
7
+ static readonly __isEntity = true;
8
+ /** @internal */
9
+ static __tableName?: string;
10
+ /** @internal */
11
+ static __tableBuilder?: any;
12
+ /**
13
+ * Converts entity to plain object
14
+ */
15
+ toJSON(): Record<string, any>;
16
+ /**
17
+ * Creates entity from plain object
18
+ */
19
+ static fromJSON<T extends DbEntity>(this: new () => T, data: Record<string, any>): T;
20
+ }
21
+ //# sourceMappingURL=base-entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-entity.d.ts","sourceRoot":"","sources":["../../src/entity/base-entity.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,8BAAsB,QAAQ;IAC5B,gBAAgB;IAChB,MAAM,CAAC,QAAQ,CAAC,UAAU,QAAQ;IAElC,gBAAgB;IAChB,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE5B,gBAAgB;IAChB,MAAM,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC;IAE5B;;OAEG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAI7B;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC;CAKrF"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DbEntity = void 0;
4
+ /**
5
+ * Base class for all entities
6
+ * Provides common functionality and ensures proper type handling
7
+ */
8
+ class DbEntity {
9
+ /**
10
+ * Converts entity to plain object
11
+ */
12
+ toJSON() {
13
+ return { ...this };
14
+ }
15
+ /**
16
+ * Creates entity from plain object
17
+ */
18
+ static fromJSON(data) {
19
+ const instance = new this();
20
+ Object.assign(instance, data);
21
+ return instance;
22
+ }
23
+ }
24
+ exports.DbEntity = DbEntity;
25
+ /** @internal */
26
+ DbEntity.__isEntity = true;
27
+ //# sourceMappingURL=base-entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-entity.js","sourceRoot":"","sources":["../../src/entity/base-entity.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,MAAsB,QAAQ;IAU5B;;OAEG;IACH,MAAM;QACJ,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAwC,IAAyB;QAC9E,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;QAC5B,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC9B,OAAO,QAAQ,CAAC;IAClB,CAAC;;AAxBH,4BAyBC;AAxBC,gBAAgB;AACA,mBAAU,GAAG,IAAI,CAAC"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Database column wrapper that provides type-safe query operations
3
+ * while automatically unwrapping to the underlying type in results
4
+ *
5
+ * DbColumn implements the FieldRef interface so it can be used in conditions
6
+ */
7
+ export declare class DbColumn<TValue> {
8
+ /** @internal */
9
+ readonly __isDbColumn = true;
10
+ /** @internal */
11
+ readonly __fieldName: string;
12
+ /** @internal */
13
+ readonly __dbColumnName: string;
14
+ /** @internal */
15
+ readonly __valueType: TValue;
16
+ constructor(
17
+ /** @internal */
18
+ columnName: string);
19
+ /**
20
+ * This is a compile-time only type - at runtime this is never called
21
+ * The actual value is returned by the query execution
22
+ */
23
+ valueOf(): TValue;
24
+ }
25
+ /**
26
+ * Type helper to unwrap DbColumn types to their underlying values
27
+ */
28
+ export type UnwrapDbColumns<T> = T extends DbColumn<infer V> ? V : T extends object ? {
29
+ [K in keyof T]: T[K] extends DbColumn<infer V> ? V : T[K] extends (infer U)[] | undefined ? U extends DbEntity ? UnwrapDbColumns<U>[] : T[K] : T[K] extends DbEntity | undefined ? UnwrapDbColumns<NonNullable<T[K]>> : T[K];
30
+ } : T;
31
+ /**
32
+ * Helper to check if a type includes DbColumn
33
+ */
34
+ type IncludesDbColumn<T> = T extends DbColumn<any> ? true : T extends DbColumn<any> | undefined ? true : T extends undefined | DbColumn<any> ? true : false;
35
+ /**
36
+ * Helper to unwrap DbColumn from potentially optional type
37
+ */
38
+ type UnwrapOptionalDbColumn<T> = T extends DbColumn<infer V> | undefined ? V : T extends DbColumn<infer V> ? V : never;
39
+ /**
40
+ * Type helper to extract only DbColumn properties from an entity
41
+ * This is used for insert/update operations where only actual columns are needed,
42
+ * excluding navigation properties
43
+ */
44
+ export type ExtractDbColumns<T> = {
45
+ [K in keyof T as IncludesDbColumn<T[K]> extends true ? K : never]: UnwrapOptionalDbColumn<T[K]>;
46
+ };
47
+ /**
48
+ * Type for insert data - only includes DbColumn properties, unwrapped to their values
49
+ */
50
+ export type InsertData<TEntity> = Partial<ExtractDbColumns<TEntity>>;
51
+ /**
52
+ * Marker to indicate DbEntity type (imported to avoid circular dependency)
53
+ */
54
+ interface DbEntity {
55
+ }
56
+ /**
57
+ * Check if a value is a DbColumn
58
+ */
59
+ export declare function isDbColumn(value: any): value is DbColumn<any>;
60
+ export {};
61
+ //# sourceMappingURL=db-column.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-column.d.ts","sourceRoot":"","sources":["../../src/entity/db-column.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,qBAAa,QAAQ,CAAC,MAAM;IAC1B,gBAAgB;IAChB,QAAQ,CAAC,YAAY,QAAQ;IAE7B,gBAAgB;IAChB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,gBAAgB;IAChB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAEhC,gBAAgB;IAChB,QAAQ,CAAC,WAAW,EAAG,MAAM,CAAC;;IAG5B,gBAAgB;IAChB,UAAU,EAAE,MAAM;IAMpB;;;OAGG;IACH,OAAO,IAAI,MAAM;CAGlB;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,CAAC,GACxD,CAAC,GACD,CAAC,SAAS,MAAM,GAChB;KACG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,CAAC,GAC1C,CAAC,GACD,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,SAAS,GACpC,CAAC,SAAS,QAAQ,GAChB,eAAe,CAAC,CAAC,CAAC,EAAE,GACpB,CAAC,CAAC,CAAC,CAAC,GACN,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,GAAG,SAAS,GACjC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAClC,CAAC,CAAC,CAAC,CAAC;CACT,GACD,CAAC,CAAC;AAEN;;GAEG;AACH,KAAK,gBAAgB,CAAC,CAAC,IACrB,CAAC,SAAS,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,GAC9B,CAAC,SAAS,QAAQ,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,GAC1C,CAAC,SAAS,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,GAC1C,KAAK,CAAC;AAER;;GAEG;AACH,KAAK,sBAAsB,CAAC,CAAC,IAC3B,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,GAC3C,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAC/B,KAAK,CAAC;AAER;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;KAC/B,CAAC,IAAI,MAAM,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,GAAG,KAAK,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAChG,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,OAAO,IAAI,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;AAErE;;GAEG;AACH,UAAU,QAAQ;CAEjB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,QAAQ,CAAC,GAAG,CAAC,CAE7D"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DbColumn = void 0;
4
+ exports.isDbColumn = isDbColumn;
5
+ /**
6
+ * Database column wrapper that provides type-safe query operations
7
+ * while automatically unwrapping to the underlying type in results
8
+ *
9
+ * DbColumn implements the FieldRef interface so it can be used in conditions
10
+ */
11
+ class DbColumn {
12
+ constructor(
13
+ /** @internal */
14
+ columnName) {
15
+ /** @internal */
16
+ this.__isDbColumn = true;
17
+ this.__fieldName = columnName;
18
+ this.__dbColumnName = columnName;
19
+ }
20
+ /**
21
+ * This is a compile-time only type - at runtime this is never called
22
+ * The actual value is returned by the query execution
23
+ */
24
+ valueOf() {
25
+ throw new Error('DbColumn.valueOf() should never be called at runtime');
26
+ }
27
+ }
28
+ exports.DbColumn = DbColumn;
29
+ /**
30
+ * Check if a value is a DbColumn
31
+ */
32
+ function isDbColumn(value) {
33
+ return value && typeof value === 'object' && value.__isDbColumn === true;
34
+ }
35
+ //# sourceMappingURL=db-column.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-column.js","sourceRoot":"","sources":["../../src/entity/db-column.ts"],"names":[],"mappings":";;;AAgGA,gCAEC;AAlGD;;;;;GAKG;AACH,MAAa,QAAQ;IAanB;IACE,gBAAgB;IAChB,UAAkB;QAdpB,gBAAgB;QACP,iBAAY,GAAG,IAAI,CAAC;QAe3B,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC;IACnC,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;CACF;AA5BD,4BA4BC;AA2DD;;GAEG;AACH,SAAgB,UAAU,CAAC,KAAU;IACnC,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI,CAAC;AAC3E,CAAC"}