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,132 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.interval = exports.vector = exports.point = exports.enumType = exports.array = exports.json = exports.CustomTypeBuilder = void 0;
4
+ exports.customType = customType;
5
+ /**
6
+ * Custom type builder
7
+ */
8
+ class CustomTypeBuilder {
9
+ constructor(config) {
10
+ this.config = config;
11
+ }
12
+ /**
13
+ * Gets the custom type definition
14
+ */
15
+ getType() {
16
+ return {
17
+ dataType: this.config.dataType,
18
+ toDriver: this.config.toDriver,
19
+ fromDriver: this.config.fromDriver,
20
+ };
21
+ }
22
+ /**
23
+ * Gets the PostgreSQL type name
24
+ */
25
+ get dataType() {
26
+ return this.config.dataType;
27
+ }
28
+ }
29
+ exports.CustomTypeBuilder = CustomTypeBuilder;
30
+ /**
31
+ * Creates a custom type
32
+ */
33
+ function customType(config) {
34
+ return new CustomTypeBuilder(config);
35
+ }
36
+ /**
37
+ * Common custom types
38
+ */
39
+ /**
40
+ * JSON type with automatic serialization
41
+ */
42
+ const json = () => customType({
43
+ dataType: 'jsonb',
44
+ toDriver: (value) => JSON.stringify(value),
45
+ fromDriver: (value) => JSON.parse(value),
46
+ });
47
+ exports.json = json;
48
+ /**
49
+ * Array type
50
+ */
51
+ const array = (itemType) => customType({
52
+ dataType: `${itemType}[]`,
53
+ toDriver: (value) => JSON.stringify(value),
54
+ fromDriver: (value) => JSON.parse(value),
55
+ });
56
+ exports.array = array;
57
+ /**
58
+ * Enum type
59
+ */
60
+ const enumType = (enumName, values) => customType({
61
+ dataType: enumName,
62
+ toDriver: (value) => value,
63
+ fromDriver: (value) => value,
64
+ });
65
+ exports.enumType = enumType;
66
+ const point = () => customType({
67
+ dataType: 'point',
68
+ toDriver: (value) => `(${value.x},${value.y})`,
69
+ fromDriver: (value) => {
70
+ const match = value.match(/\((-?\d+\.?\d*),(-?\d+\.?\d*)\)/);
71
+ if (!match)
72
+ throw new Error(`Invalid point format: ${value}`);
73
+ return { x: parseFloat(match[1]), y: parseFloat(match[2]) };
74
+ },
75
+ });
76
+ exports.point = point;
77
+ /**
78
+ * Vector type (for pgvector extension)
79
+ */
80
+ const vector = (dimensions) => customType({
81
+ dataType: `vector(${dimensions})`,
82
+ toDriver: (value) => `[${value.join(',')}]`,
83
+ fromDriver: (value) => {
84
+ const match = value.match(/\[(.*)\]/);
85
+ if (!match)
86
+ throw new Error(`Invalid vector format: ${value}`);
87
+ return match[1].split(',').map(parseFloat);
88
+ },
89
+ });
90
+ exports.vector = vector;
91
+ const interval = () => customType({
92
+ dataType: 'interval',
93
+ toDriver: (value) => {
94
+ const parts = [];
95
+ if (value.years)
96
+ parts.push(`${value.years} years`);
97
+ if (value.months)
98
+ parts.push(`${value.months} months`);
99
+ if (value.days)
100
+ parts.push(`${value.days} days`);
101
+ if (value.hours)
102
+ parts.push(`${value.hours} hours`);
103
+ if (value.minutes)
104
+ parts.push(`${value.minutes} minutes`);
105
+ if (value.seconds)
106
+ parts.push(`${value.seconds} seconds`);
107
+ return parts.join(' ');
108
+ },
109
+ fromDriver: (value) => {
110
+ const interval = {};
111
+ const parts = value.split(' ');
112
+ for (let i = 0; i < parts.length; i += 2) {
113
+ const num = parseFloat(parts[i]);
114
+ const unit = parts[i + 1];
115
+ if (unit.startsWith('year'))
116
+ interval.years = num;
117
+ else if (unit.startsWith('mon'))
118
+ interval.months = num;
119
+ else if (unit.startsWith('day'))
120
+ interval.days = num;
121
+ else if (unit.startsWith('hour'))
122
+ interval.hours = num;
123
+ else if (unit.startsWith('min'))
124
+ interval.minutes = num;
125
+ else if (unit.startsWith('sec'))
126
+ interval.seconds = num;
127
+ }
128
+ return interval;
129
+ },
130
+ });
131
+ exports.interval = interval;
132
+ //# sourceMappingURL=custom-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-types.js","sourceRoot":"","sources":["../../src/types/custom-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * PostgreSQL ENUM type builder
3
+ */
4
+ export interface EnumTypeDefinition {
5
+ name: string;
6
+ values: string[];
7
+ }
8
+ /**
9
+ * Registry to store all enum types defined in the schema
10
+ */
11
+ export declare class EnumTypeRegistry {
12
+ private static enums;
13
+ static register(name: string, values: string[]): void;
14
+ static get(name: string): EnumTypeDefinition | undefined;
15
+ static getAll(): Map<string, EnumTypeDefinition>;
16
+ static clear(): void;
17
+ static has(name: string): boolean;
18
+ }
19
+ /**
20
+ * Create a PostgreSQL ENUM type
21
+ *
22
+ * @example
23
+ * const statusEnum = pgEnum('order_status', ['pending', 'processing', 'completed', 'cancelled']);
24
+ * entity.property(e => e.status).hasType(enumColumn('status', statusEnum));
25
+ */
26
+ export declare function pgEnum<T extends readonly string[]>(name: string, values: T): EnumTypeDefinition;
27
+ /**
28
+ * Type helper to extract enum values as a union type
29
+ */
30
+ export type EnumValues<T extends EnumTypeDefinition> = T['values'][number];
31
+ //# sourceMappingURL=enum-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enum-builder.d.ts","sourceRoot":"","sources":["../../src/types/enum-builder.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAyC;IAE7D,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IAIrD,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAIxD,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC;IAIhD,MAAM,CAAC,KAAK,IAAI,IAAI;IAIpB,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAGlC;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,SAAS,MAAM,EAAE,EAChD,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,CAAC,GACR,kBAAkB,CAUpB;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,kBAAkB,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ /**
3
+ * PostgreSQL ENUM type builder
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.EnumTypeRegistry = void 0;
7
+ exports.pgEnum = pgEnum;
8
+ /**
9
+ * Registry to store all enum types defined in the schema
10
+ */
11
+ class EnumTypeRegistry {
12
+ static register(name, values) {
13
+ this.enums.set(name, { name, values });
14
+ }
15
+ static get(name) {
16
+ return this.enums.get(name);
17
+ }
18
+ static getAll() {
19
+ return new Map(this.enums);
20
+ }
21
+ static clear() {
22
+ this.enums.clear();
23
+ }
24
+ static has(name) {
25
+ return this.enums.has(name);
26
+ }
27
+ }
28
+ exports.EnumTypeRegistry = EnumTypeRegistry;
29
+ EnumTypeRegistry.enums = new Map();
30
+ /**
31
+ * Create a PostgreSQL ENUM type
32
+ *
33
+ * @example
34
+ * const statusEnum = pgEnum('order_status', ['pending', 'processing', 'completed', 'cancelled']);
35
+ * entity.property(e => e.status).hasType(enumColumn('status', statusEnum));
36
+ */
37
+ function pgEnum(name, values) {
38
+ const enumDef = {
39
+ name,
40
+ values: [...values],
41
+ };
42
+ // Register the enum type globally
43
+ EnumTypeRegistry.register(name, enumDef.values);
44
+ return enumDef;
45
+ }
46
+ //# sourceMappingURL=enum-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enum-builder.js","sourceRoot":"","sources":["../../src/types/enum-builder.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAyCH,wBAaC;AA/CD;;GAEG;AACH,MAAa,gBAAgB;IAG3B,MAAM,CAAC,QAAQ,CAAC,IAAY,EAAE,MAAgB;QAC5C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,MAAM;QACX,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,KAAK;QACV,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;;AArBH,4CAsBC;AArBgB,sBAAK,GAAG,IAAI,GAAG,EAA8B,CAAC;AAuB/D;;;;;;GAMG;AACH,SAAgB,MAAM,CACpB,IAAY,EACZ,MAAS;IAET,MAAM,OAAO,GAAuB;QAClC,IAAI;QACJ,MAAM,EAAE,CAAC,GAAG,MAAM,CAAa;KAChC,CAAC;IAEF,kCAAkC;IAClC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAEhD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,67 @@
1
+ import { ColumnType } from './column-types';
2
+ /**
3
+ * Metadata storage key
4
+ */
5
+ export declare const METADATA_KEY: unique symbol;
6
+ /**
7
+ * Column metadata
8
+ */
9
+ export interface ColumnMetadata {
10
+ propertyKey: string;
11
+ columnName: string;
12
+ type: ColumnType;
13
+ nullable: boolean;
14
+ primaryKey: boolean;
15
+ autoIncrement: boolean;
16
+ unique: boolean;
17
+ default?: any;
18
+ length?: number;
19
+ precision?: number;
20
+ scale?: number;
21
+ }
22
+ /**
23
+ * Navigation property types
24
+ */
25
+ export declare enum NavigationType {
26
+ OneToMany = "OneToMany",
27
+ ManyToOne = "ManyToOne",
28
+ ManyToMany = "ManyToMany"
29
+ }
30
+ /**
31
+ * Navigation property metadata
32
+ */
33
+ export interface NavigationMetadata {
34
+ propertyKey: string;
35
+ type: NavigationType;
36
+ targetEntity: () => Function;
37
+ foreignKey?: string;
38
+ inverseSide?: string;
39
+ joinTable?: {
40
+ name: string;
41
+ joinColumn: string;
42
+ inverseJoinColumn: string;
43
+ };
44
+ }
45
+ /**
46
+ * Table metadata
47
+ */
48
+ export interface TableMetadata {
49
+ tableName: string;
50
+ schema?: string;
51
+ columns: Map<string, ColumnMetadata>;
52
+ navigations: Map<string, NavigationMetadata>;
53
+ primaryKeys: string[];
54
+ }
55
+ /**
56
+ * DbEntity metadata storage
57
+ */
58
+ export declare class MetadataStorage {
59
+ private static tables;
60
+ static getTableMetadata(target: Function): TableMetadata | undefined;
61
+ static setTableMetadata(target: Function, metadata: TableMetadata): void;
62
+ static ensureTableMetadata(target: Function): TableMetadata;
63
+ static addColumn(target: Function, column: ColumnMetadata): void;
64
+ static addNavigation(target: Function, navigation: NavigationMetadata): void;
65
+ static getAllMetadata(): Map<Function, TableMetadata>;
66
+ }
67
+ //# sourceMappingURL=metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/types/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C;;GAEG;AACH,eAAO,MAAM,YAAY,eAA+B,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,oBAAY,cAAc;IACxB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,UAAU,eAAe;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,cAAc,CAAC;IACrB,YAAY,EAAE,MAAM,QAAQ,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACrC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC7C,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAC,MAAM,CAAsC;IAE3D,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,GAAG,aAAa,GAAG,SAAS;IAIpE,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;IAIxE,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,GAAG,aAAa;IAc3D,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI;IAQhE,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,kBAAkB,GAAG,IAAI;IAK5E,MAAM,CAAC,cAAc,IAAI,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC;CAGtD"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MetadataStorage = exports.NavigationType = exports.METADATA_KEY = void 0;
4
+ /**
5
+ * Metadata storage key
6
+ */
7
+ exports.METADATA_KEY = Symbol('linkgress:metadata');
8
+ /**
9
+ * Navigation property types
10
+ */
11
+ var NavigationType;
12
+ (function (NavigationType) {
13
+ NavigationType["OneToMany"] = "OneToMany";
14
+ NavigationType["ManyToOne"] = "ManyToOne";
15
+ NavigationType["ManyToMany"] = "ManyToMany";
16
+ })(NavigationType || (exports.NavigationType = NavigationType = {}));
17
+ /**
18
+ * DbEntity metadata storage
19
+ */
20
+ class MetadataStorage {
21
+ static getTableMetadata(target) {
22
+ return this.tables.get(target);
23
+ }
24
+ static setTableMetadata(target, metadata) {
25
+ this.tables.set(target, metadata);
26
+ }
27
+ static ensureTableMetadata(target) {
28
+ let metadata = this.tables.get(target);
29
+ if (!metadata) {
30
+ metadata = {
31
+ tableName: target.name,
32
+ columns: new Map(),
33
+ navigations: new Map(),
34
+ primaryKeys: [],
35
+ };
36
+ this.tables.set(target, metadata);
37
+ }
38
+ return metadata;
39
+ }
40
+ static addColumn(target, column) {
41
+ const metadata = this.ensureTableMetadata(target);
42
+ metadata.columns.set(column.propertyKey, column);
43
+ if (column.primaryKey) {
44
+ metadata.primaryKeys.push(column.propertyKey);
45
+ }
46
+ }
47
+ static addNavigation(target, navigation) {
48
+ const metadata = this.ensureTableMetadata(target);
49
+ metadata.navigations.set(navigation.propertyKey, navigation);
50
+ }
51
+ static getAllMetadata() {
52
+ return this.tables;
53
+ }
54
+ }
55
+ exports.MetadataStorage = MetadataStorage;
56
+ MetadataStorage.tables = new Map();
57
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/types/metadata.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACU,QAAA,YAAY,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAmBzD;;GAEG;AACH,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,yCAAuB,CAAA;IACvB,yCAAuB,CAAA;IACvB,2CAAyB,CAAA;AAC3B,CAAC,EAJW,cAAc,8BAAd,cAAc,QAIzB;AA6BD;;GAEG;AACH,MAAa,eAAe;IAG1B,MAAM,CAAC,gBAAgB,CAAC,MAAgB;QACtC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,MAAgB,EAAE,QAAuB;QAC/D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,mBAAmB,CAAC,MAAgB;QACzC,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,GAAG;gBACT,SAAS,EAAE,MAAM,CAAC,IAAI;gBACtB,OAAO,EAAE,IAAI,GAAG,EAAE;gBAClB,WAAW,EAAE,IAAI,GAAG,EAAE;gBACtB,WAAW,EAAE,EAAE;aAChB,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,MAAgB,EAAE,MAAsB;QACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAClD,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACjD,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,MAAgB,EAAE,UAA8B;QACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAClD,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,CAAC,cAAc;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;;AAxCH,0CAyCC;AAxCgB,sBAAM,GAAG,IAAI,GAAG,EAA2B,CAAC"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Custom type mapper for bidirectional data transformation
3
+ */
4
+ export interface TypeMapper<TData = any, TDriver = any> {
5
+ /**
6
+ * Convert from application data type to database driver type
7
+ */
8
+ toDriver(value: TData | null | undefined): TDriver | null;
9
+ /**
10
+ * Convert from database driver type to application data type
11
+ */
12
+ fromDriver(value: TDriver | null | undefined): TData | null;
13
+ /**
14
+ * Optional: Get the PostgreSQL data type for schema generation
15
+ */
16
+ dataType?: () => string;
17
+ }
18
+ /**
19
+ * Custom type definition with mapper
20
+ */
21
+ export interface CustomTypeDefinition<TData = any, TDriver = any> {
22
+ dataType: () => string;
23
+ toDriver: (value: TData | null | undefined) => TDriver | null;
24
+ fromDriver: (value: TDriver | null | undefined) => TData | null;
25
+ }
26
+ /**
27
+ * Create a custom type mapper
28
+ */
29
+ export declare function customType<T extends {
30
+ data: any;
31
+ driverData?: any;
32
+ }>(config: CustomTypeDefinition<T['data'], T['driverData'] extends never ? T['data'] : T['driverData']>): TypeMapper<T['data'], T['driverData'] extends never ? T['data'] : T['driverData']>;
33
+ /**
34
+ * Identity mapper (no transformation)
35
+ */
36
+ export declare const identityMapper: TypeMapper;
37
+ /**
38
+ * Apply a mapper to a value (toDriver direction)
39
+ */
40
+ export declare function applyToDriver<TData, TDriver>(mapper: TypeMapper<TData, TDriver> | undefined, value: TData | null | undefined): TDriver | null;
41
+ /**
42
+ * Apply a mapper to a value (fromDriver direction)
43
+ */
44
+ export declare function applyFromDriver<TData, TDriver>(mapper: TypeMapper<TData, TDriver> | undefined, value: TDriver | null | undefined): TData | null;
45
+ /**
46
+ * Apply mapper to array of values
47
+ */
48
+ export declare function applyFromDriverArray<TData, TDriver>(mapper: TypeMapper<TData, TDriver> | undefined, values: (TDriver | null)[]): (TData | null)[];
49
+ //# sourceMappingURL=type-mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-mapper.d.ts","sourceRoot":"","sources":["../../src/types/type-mapper.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,UAAU,CAAC,KAAK,GAAG,GAAG,EAAE,OAAO,GAAG,GAAG;IACpD;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,GAAG,IAAI,CAAC;IAE1D;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,KAAK,GAAG,IAAI,CAAC;IAE5D;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB,CAAC,KAAK,GAAG,GAAG,EAAE,OAAO,GAAG,GAAG;IAC9D,QAAQ,EAAE,MAAM,MAAM,CAAC;IACvB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,KAAK,OAAO,GAAG,IAAI,CAAC;IAC9D,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,KAAK,KAAK,GAAG,IAAI,CAAC;CACjE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,GAAG,CAAC;IAAC,UAAU,CAAC,EAAE,GAAG,CAAA;CAAE,EAClE,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,GACnG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAMpF;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,UAG5B,CAAC;AAEF;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAC1C,MAAM,EAAE,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,SAAS,EAC9C,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,GAC9B,OAAO,GAAG,IAAI,CAGhB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAC5C,MAAM,EAAE,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,SAAS,EAC9C,KAAK,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,GAChC,KAAK,GAAG,IAAI,CAGd;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EACjD,MAAM,EAAE,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,SAAS,EAC9C,MAAM,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,GACzB,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,CAGlB"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.identityMapper = void 0;
4
+ exports.customType = customType;
5
+ exports.applyToDriver = applyToDriver;
6
+ exports.applyFromDriver = applyFromDriver;
7
+ exports.applyFromDriverArray = applyFromDriverArray;
8
+ /**
9
+ * Create a custom type mapper
10
+ */
11
+ function customType(config) {
12
+ return {
13
+ dataType: config.dataType,
14
+ toDriver: config.toDriver,
15
+ fromDriver: config.fromDriver,
16
+ };
17
+ }
18
+ /**
19
+ * Identity mapper (no transformation)
20
+ */
21
+ exports.identityMapper = {
22
+ toDriver: (value) => value,
23
+ fromDriver: (value) => value,
24
+ };
25
+ /**
26
+ * Apply a mapper to a value (toDriver direction)
27
+ */
28
+ function applyToDriver(mapper, value) {
29
+ if (!mapper)
30
+ return value;
31
+ return mapper.toDriver(value);
32
+ }
33
+ /**
34
+ * Apply a mapper to a value (fromDriver direction)
35
+ */
36
+ function applyFromDriver(mapper, value) {
37
+ if (!mapper)
38
+ return value;
39
+ return mapper.fromDriver(value);
40
+ }
41
+ /**
42
+ * Apply mapper to array of values
43
+ */
44
+ function applyFromDriverArray(mapper, values) {
45
+ if (!mapper)
46
+ return values;
47
+ return values.map(v => mapper.fromDriver(v));
48
+ }
49
+ //# sourceMappingURL=type-mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-mapper.js","sourceRoot":"","sources":["../../src/types/type-mapper.ts"],"names":[],"mappings":";;;AAgCA,gCAQC;AAaD,sCAMC;AAKD,0CAMC;AAKD,oDAMC;AApDD;;GAEG;AACH,SAAgB,UAAU,CACxB,MAAoG;IAEpG,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,UAAU,EAAE,MAAM,CAAC,UAAU;KAC9B,CAAC;AACJ,CAAC;AAED;;GAEG;AACU,QAAA,cAAc,GAAe;IACxC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;IAC1B,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;CAC7B,CAAC;AAEF;;GAEG;AACH,SAAgB,aAAa,CAC3B,MAA8C,EAC9C,KAA+B;IAE/B,IAAI,CAAC,MAAM;QAAE,OAAO,KAAY,CAAC;IACjC,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAC7B,MAA8C,EAC9C,KAAiC;IAEjC,IAAI,CAAC,MAAM;QAAE,OAAO,KAAY,CAAC;IACjC,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAClC,MAA8C,EAC9C,MAA0B;IAE1B,IAAI,CAAC,MAAM;QAAE,OAAO,MAAe,CAAC;IACpC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC"}
package/package.json ADDED
@@ -0,0 +1,77 @@
1
+ {
2
+ "name": "linkgress-orm",
3
+ "version": "0.0.1",
4
+ "description": "A lightweight, type-safe ORM for PostgreSQL with LINQ-style queries and automatic type inference",
5
+ "main": "dist/index.js",
6
+ "module": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "files": [
9
+ "dist",
10
+ "README.md",
11
+ "LICENSE"
12
+ ],
13
+ "scripts": {
14
+ "build": "npm run clean && tsc",
15
+ "build:dev": "tsc --project tsconfig.dev.json",
16
+ "clean": "node -e \"require('fs').rmSync('dist', {recursive:true, force:true})\"",
17
+ "type-check": "tsc --noEmit",
18
+ "type-check:dev": "tsc --project tsconfig.dev.json --noEmit",
19
+ "dev": "ts-node debug/index.ts",
20
+ "watch": "tsc --watch",
21
+ "watch:dev": "tsc --project tsconfig.dev.json --watch",
22
+ "migrate": "ts-node debug/schema/migration.ts",
23
+ "test": "jest",
24
+ "test:watch": "jest --watch",
25
+ "test:coverage": "jest --coverage",
26
+ "test:verbose": "jest --verbose",
27
+ "test:single": "jest --testNamePattern",
28
+ "prepublishOnly": "npm run build && npm test"
29
+ },
30
+ "repository": {
31
+ "type": "git",
32
+ "url": "https://github.com/brunolau/linkgress-orm.git"
33
+ },
34
+ "bugs": {
35
+ "url": "https://github.com/brunolau/linkgress-orm/issues"
36
+ },
37
+ "homepage": "https://github.com/brunolau/linkgress-orm#readme",
38
+ "keywords": [
39
+ "orm",
40
+ "postgresql",
41
+ "postgres",
42
+ "typescript",
43
+ "linq",
44
+ "query-builder",
45
+ "sql",
46
+ "database"
47
+ ],
48
+ "author": "",
49
+ "license": "MIT",
50
+ "engines": {
51
+ "node": ">=16.0.0"
52
+ },
53
+ "devDependencies": {
54
+ "@jest/globals": "^30.2.0",
55
+ "@types/jest": "^30.0.0",
56
+ "@types/node": "^20.0.0",
57
+ "@types/pg": "^8.10.0",
58
+ "dotenv": "^16.4.0",
59
+ "jest": "^30.2.0",
60
+ "pg": "^8.11.0",
61
+ "ts-jest": "^29.4.5",
62
+ "ts-node": "^10.9.0",
63
+ "typescript": "^5.3.0"
64
+ },
65
+ "peerDependencies": {
66
+ "pg": "^8.0.0",
67
+ "postgres": "^3.0.0"
68
+ },
69
+ "peerDependenciesMeta": {
70
+ "pg": {
71
+ "optional": true
72
+ },
73
+ "postgres": {
74
+ "optional": true
75
+ }
76
+ }
77
+ }