@danielfgray/pg-sourcerer 0.2.2 → 0.4.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 (307) hide show
  1. package/bin/pgsourcerer +2 -0
  2. package/dist/__tests__/fixtures/index.d.ts +15 -0
  3. package/dist/__tests__/fixtures/index.d.ts.map +1 -0
  4. package/dist/__tests__/fixtures/index.js +19 -0
  5. package/dist/__tests__/fixtures/index.js.map +1 -0
  6. package/dist/__tests__/fixtures/introspection.json +40522 -0
  7. package/dist/cli.d.ts +0 -1
  8. package/dist/cli.js +7 -46
  9. package/dist/cli.js.map +1 -1
  10. package/dist/config.d.ts +38 -5
  11. package/dist/config.d.ts.map +1 -1
  12. package/dist/config.js +13 -2
  13. package/dist/config.js.map +1 -1
  14. package/dist/{lib/conjure.d.ts → conjure/index.d.ts} +62 -3
  15. package/dist/conjure/index.d.ts.map +1 -0
  16. package/dist/{lib/conjure.js → conjure/index.js} +124 -3
  17. package/dist/conjure/index.js.map +1 -0
  18. package/dist/conjure/signature.d.ts +85 -0
  19. package/dist/conjure/signature.d.ts.map +1 -0
  20. package/dist/conjure/signature.js +130 -0
  21. package/dist/conjure/signature.js.map +1 -0
  22. package/dist/conjure/types.d.ts +97 -0
  23. package/dist/conjure/types.d.ts.map +1 -0
  24. package/dist/conjure/types.js +206 -0
  25. package/dist/conjure/types.js.map +1 -0
  26. package/dist/errors.d.ts +114 -139
  27. package/dist/errors.d.ts.map +1 -1
  28. package/dist/errors.js +82 -36
  29. package/dist/errors.js.map +1 -1
  30. package/dist/generate.d.ts +45 -46
  31. package/dist/generate.d.ts.map +1 -1
  32. package/dist/generate.js +86 -59
  33. package/dist/generate.js.map +1 -1
  34. package/dist/hex/builder.d.ts +12 -0
  35. package/dist/hex/builder.d.ts.map +1 -0
  36. package/dist/hex/builder.js +64 -0
  37. package/dist/hex/builder.js.map +1 -0
  38. package/dist/hex/ddl.d.ts +53 -0
  39. package/dist/hex/ddl.d.ts.map +1 -0
  40. package/dist/hex/ddl.js +306 -0
  41. package/dist/hex/ddl.js.map +1 -0
  42. package/dist/hex/index.d.ts +105 -0
  43. package/dist/hex/index.d.ts.map +1 -0
  44. package/dist/hex/index.js +81 -0
  45. package/dist/hex/index.js.map +1 -0
  46. package/dist/hex/primitives.d.ts +23 -0
  47. package/dist/hex/primitives.d.ts.map +1 -0
  48. package/dist/hex/primitives.js +38 -0
  49. package/dist/hex/primitives.js.map +1 -0
  50. package/dist/hex/query.d.ts +116 -0
  51. package/dist/hex/query.d.ts.map +1 -0
  52. package/dist/hex/query.js +219 -0
  53. package/dist/hex/query.js.map +1 -0
  54. package/dist/hex/types.d.ts +287 -0
  55. package/dist/hex/types.d.ts.map +1 -0
  56. package/dist/hex/types.js +431 -0
  57. package/dist/hex/types.js.map +1 -0
  58. package/dist/index.d.ts +17 -25
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.js +33 -44
  61. package/dist/index.js.map +1 -1
  62. package/dist/init.d.ts.map +1 -1
  63. package/dist/init.js +76 -140
  64. package/dist/init.js.map +1 -1
  65. package/dist/ir/extensions/queries.d.ts +6 -6
  66. package/dist/ir/extensions/queries.d.ts.map +1 -1
  67. package/dist/ir/extensions/queries.js +6 -4
  68. package/dist/ir/extensions/queries.js.map +1 -1
  69. package/dist/ir/extensions/schema-builder.d.ts.map +1 -1
  70. package/dist/ir/extensions/schema-builder.js.map +1 -1
  71. package/dist/ir/index.d.ts.map +1 -1
  72. package/dist/ir/index.js.map +1 -1
  73. package/dist/ir/relation-graph.d.ts.map +1 -1
  74. package/dist/ir/relation-graph.js +8 -8
  75. package/dist/ir/relation-graph.js.map +1 -1
  76. package/dist/ir/semantic-ir.d.ts +38 -0
  77. package/dist/ir/semantic-ir.d.ts.map +1 -1
  78. package/dist/ir/semantic-ir.js +50 -2
  79. package/dist/ir/semantic-ir.js.map +1 -1
  80. package/dist/ir/smart-tags.d.ts.map +1 -1
  81. package/dist/ir/smart-tags.js.map +1 -1
  82. package/dist/lib/field-utils.d.ts.map +1 -1
  83. package/dist/lib/field-utils.js +7 -7
  84. package/dist/lib/field-utils.js.map +1 -1
  85. package/dist/lib/join-graph.d.ts +95 -0
  86. package/dist/lib/join-graph.d.ts.map +1 -0
  87. package/dist/lib/join-graph.js +305 -0
  88. package/dist/lib/join-graph.js.map +1 -0
  89. package/dist/lib/picker.d.ts +60 -0
  90. package/dist/lib/picker.d.ts.map +1 -0
  91. package/dist/lib/picker.js +325 -0
  92. package/dist/lib/picker.js.map +1 -0
  93. package/dist/plugins/arktype.d.ts +20 -24
  94. package/dist/plugins/arktype.d.ts.map +1 -1
  95. package/dist/plugins/arktype.js +462 -386
  96. package/dist/plugins/arktype.js.map +1 -1
  97. package/dist/plugins/effect/http.d.ts +7 -0
  98. package/dist/plugins/effect/http.d.ts.map +1 -0
  99. package/dist/plugins/effect/http.js +460 -0
  100. package/dist/plugins/effect/http.js.map +1 -0
  101. package/dist/plugins/effect/index.d.ts +22 -0
  102. package/dist/plugins/effect/index.d.ts.map +1 -0
  103. package/dist/plugins/effect/index.js +65 -0
  104. package/dist/plugins/effect/index.js.map +1 -0
  105. package/dist/plugins/effect/models.d.ts +6 -0
  106. package/dist/plugins/effect/models.d.ts.map +1 -0
  107. package/dist/plugins/effect/models.js +116 -0
  108. package/dist/plugins/effect/models.js.map +1 -0
  109. package/dist/plugins/effect/repos.d.ts +21 -0
  110. package/dist/plugins/effect/repos.d.ts.map +1 -0
  111. package/dist/plugins/effect/repos.js +131 -0
  112. package/dist/plugins/effect/repos.js.map +1 -0
  113. package/dist/plugins/effect/schemas.d.ts +7 -0
  114. package/dist/plugins/effect/schemas.d.ts.map +1 -0
  115. package/dist/plugins/effect/schemas.js +75 -0
  116. package/dist/plugins/effect/schemas.js.map +1 -0
  117. package/dist/plugins/effect/shared.d.ts +116 -0
  118. package/dist/plugins/effect/shared.d.ts.map +1 -0
  119. package/dist/plugins/effect/shared.js +164 -0
  120. package/dist/plugins/effect/shared.js.map +1 -0
  121. package/dist/plugins/http-elysia.d.ts +20 -27
  122. package/dist/plugins/http-elysia.d.ts.map +1 -1
  123. package/dist/plugins/http-elysia.js +350 -475
  124. package/dist/plugins/http-elysia.js.map +1 -1
  125. package/dist/plugins/http-express.d.ts +20 -31
  126. package/dist/plugins/http-express.d.ts.map +1 -1
  127. package/dist/plugins/http-express.js +281 -268
  128. package/dist/plugins/http-express.js.map +1 -1
  129. package/dist/plugins/http-hono.d.ts +17 -33
  130. package/dist/plugins/http-hono.d.ts.map +1 -1
  131. package/dist/plugins/http-hono.js +317 -341
  132. package/dist/plugins/http-hono.js.map +1 -1
  133. package/dist/plugins/http-orpc.d.ts +34 -33
  134. package/dist/plugins/http-orpc.d.ts.map +1 -1
  135. package/dist/plugins/http-orpc.js +345 -257
  136. package/dist/plugins/http-orpc.js.map +1 -1
  137. package/dist/plugins/http-trpc.d.ts +33 -35
  138. package/dist/plugins/http-trpc.d.ts.map +1 -1
  139. package/dist/plugins/http-trpc.js +337 -241
  140. package/dist/plugins/http-trpc.js.map +1 -1
  141. package/dist/plugins/kysely.d.ts +54 -59
  142. package/dist/plugins/kysely.d.ts.map +1 -1
  143. package/dist/plugins/kysely.js +826 -687
  144. package/dist/plugins/kysely.js.map +1 -1
  145. package/dist/plugins/sql-queries.d.ts +38 -44
  146. package/dist/plugins/sql-queries.d.ts.map +1 -1
  147. package/dist/plugins/sql-queries.js +497 -897
  148. package/dist/plugins/sql-queries.js.map +1 -1
  149. package/dist/plugins/types.d.ts +12 -20
  150. package/dist/plugins/types.d.ts.map +1 -1
  151. package/dist/plugins/types.js +84 -227
  152. package/dist/plugins/types.js.map +1 -1
  153. package/dist/plugins/valibot.d.ts +7 -44
  154. package/dist/plugins/valibot.d.ts.map +1 -1
  155. package/dist/plugins/valibot.js +376 -382
  156. package/dist/plugins/valibot.js.map +1 -1
  157. package/dist/plugins/zod.d.ts +20 -24
  158. package/dist/plugins/zod.d.ts.map +1 -1
  159. package/dist/plugins/zod.js +370 -367
  160. package/dist/plugins/zod.js.map +1 -1
  161. package/dist/runtime/emit.d.ts +64 -0
  162. package/dist/runtime/emit.d.ts.map +1 -0
  163. package/dist/runtime/emit.js +445 -0
  164. package/dist/runtime/emit.js.map +1 -0
  165. package/dist/runtime/errors.d.ts +36 -0
  166. package/dist/runtime/errors.d.ts.map +1 -0
  167. package/dist/runtime/errors.js +29 -0
  168. package/dist/runtime/errors.js.map +1 -0
  169. package/dist/runtime/file-assignment.d.ts +161 -0
  170. package/dist/runtime/file-assignment.d.ts.map +1 -0
  171. package/dist/runtime/file-assignment.js +195 -0
  172. package/dist/runtime/file-assignment.js.map +1 -0
  173. package/dist/runtime/orchestrator.d.ts +62 -0
  174. package/dist/runtime/orchestrator.d.ts.map +1 -0
  175. package/dist/runtime/orchestrator.js +99 -0
  176. package/dist/runtime/orchestrator.js.map +1 -0
  177. package/dist/runtime/registry.d.ts +268 -0
  178. package/dist/runtime/registry.d.ts.map +1 -0
  179. package/dist/runtime/registry.js +436 -0
  180. package/dist/runtime/registry.js.map +1 -0
  181. package/dist/runtime/types.d.ts +182 -0
  182. package/dist/runtime/types.d.ts.map +1 -0
  183. package/dist/runtime/types.js +2 -0
  184. package/dist/runtime/types.js.map +1 -0
  185. package/dist/runtime/validation.d.ts +41 -0
  186. package/dist/runtime/validation.d.ts.map +1 -0
  187. package/dist/runtime/validation.js +70 -0
  188. package/dist/runtime/validation.js.map +1 -0
  189. package/dist/services/config-loader.d.ts.map +1 -1
  190. package/dist/services/config-loader.js +15 -6
  191. package/dist/services/config-loader.js.map +1 -1
  192. package/dist/services/config.d.ts +55 -25
  193. package/dist/services/config.d.ts.map +1 -1
  194. package/dist/services/config.js +60 -34
  195. package/dist/services/config.js.map +1 -1
  196. package/dist/services/file-writer.d.ts +3 -3
  197. package/dist/services/file-writer.d.ts.map +1 -1
  198. package/dist/services/file-writer.js +6 -8
  199. package/dist/services/file-writer.js.map +1 -1
  200. package/dist/services/inflection.d.ts +126 -27
  201. package/dist/services/inflection.d.ts.map +1 -1
  202. package/dist/services/inflection.js +300 -72
  203. package/dist/services/inflection.js.map +1 -1
  204. package/dist/services/introspection.d.ts.map +1 -1
  205. package/dist/services/introspection.js +6 -6
  206. package/dist/services/introspection.js.map +1 -1
  207. package/dist/services/ir-builder.d.ts.map +1 -1
  208. package/dist/services/ir-builder.js +73 -77
  209. package/dist/services/ir-builder.js.map +1 -1
  210. package/dist/services/ir.d.ts.map +1 -1
  211. package/dist/services/ir.js.map +1 -1
  212. package/dist/services/pg-types.d.ts.map +1 -1
  213. package/dist/services/pg-types.js +3 -3
  214. package/dist/services/pg-types.js.map +1 -1
  215. package/dist/services/smart-tags-parser.d.ts.map +1 -1
  216. package/dist/services/smart-tags-parser.js +4 -4
  217. package/dist/services/smart-tags-parser.js.map +1 -1
  218. package/dist/services/type-hints.d.ts.map +1 -1
  219. package/dist/services/type-hints.js +1 -1
  220. package/dist/services/type-hints.js.map +1 -1
  221. package/dist/services/user-module-parser.d.ts +46 -0
  222. package/dist/services/user-module-parser.d.ts.map +1 -0
  223. package/dist/services/user-module-parser.js +181 -0
  224. package/dist/services/user-module-parser.js.map +1 -0
  225. package/dist/shared/converters.d.ts +60 -0
  226. package/dist/shared/converters.d.ts.map +1 -0
  227. package/dist/shared/converters.js +168 -0
  228. package/dist/shared/converters.js.map +1 -0
  229. package/dist/shared/query-types.d.ts +95 -0
  230. package/dist/shared/query-types.d.ts.map +1 -0
  231. package/dist/shared/query-types.js +9 -0
  232. package/dist/shared/query-types.js.map +1 -0
  233. package/dist/testing.d.ts +125 -37
  234. package/dist/testing.d.ts.map +1 -1
  235. package/dist/testing.js +134 -42
  236. package/dist/testing.js.map +1 -1
  237. package/dist/user-module.d.ts +86 -0
  238. package/dist/user-module.d.ts.map +1 -0
  239. package/dist/user-module.js +55 -0
  240. package/dist/user-module.js.map +1 -0
  241. package/package.json +10 -6
  242. package/dist/lib/conjure.d.ts.map +0 -1
  243. package/dist/lib/conjure.js.map +0 -1
  244. package/dist/lib/hex.d.ts +0 -119
  245. package/dist/lib/hex.d.ts.map +0 -1
  246. package/dist/lib/hex.js +0 -188
  247. package/dist/lib/hex.js.map +0 -1
  248. package/dist/plugins/effect.d.ts +0 -53
  249. package/dist/plugins/effect.d.ts.map +0 -1
  250. package/dist/plugins/effect.js +0 -1074
  251. package/dist/plugins/effect.js.map +0 -1
  252. package/dist/plugins/kysely/queries.d.ts +0 -92
  253. package/dist/plugins/kysely/queries.d.ts.map +0 -1
  254. package/dist/plugins/kysely/queries.js +0 -1169
  255. package/dist/plugins/kysely/queries.js.map +0 -1
  256. package/dist/plugins/kysely/shared.d.ts +0 -59
  257. package/dist/plugins/kysely/shared.d.ts.map +0 -1
  258. package/dist/plugins/kysely/shared.js +0 -247
  259. package/dist/plugins/kysely/shared.js.map +0 -1
  260. package/dist/plugins/kysely/types.d.ts +0 -22
  261. package/dist/plugins/kysely/types.d.ts.map +0 -1
  262. package/dist/plugins/kysely/types.js +0 -428
  263. package/dist/plugins/kysely/types.js.map +0 -1
  264. package/dist/services/artifact-store.d.ts +0 -65
  265. package/dist/services/artifact-store.d.ts.map +0 -1
  266. package/dist/services/artifact-store.js +0 -57
  267. package/dist/services/artifact-store.js.map +0 -1
  268. package/dist/services/core-providers.d.ts +0 -15
  269. package/dist/services/core-providers.d.ts.map +0 -1
  270. package/dist/services/core-providers.js +0 -23
  271. package/dist/services/core-providers.js.map +0 -1
  272. package/dist/services/emissions.d.ts +0 -103
  273. package/dist/services/emissions.d.ts.map +0 -1
  274. package/dist/services/emissions.js +0 -241
  275. package/dist/services/emissions.js.map +0 -1
  276. package/dist/services/execution.d.ts +0 -35
  277. package/dist/services/execution.d.ts.map +0 -1
  278. package/dist/services/execution.js +0 -86
  279. package/dist/services/execution.js.map +0 -1
  280. package/dist/services/file-builder.d.ts +0 -85
  281. package/dist/services/file-builder.d.ts.map +0 -1
  282. package/dist/services/file-builder.js +0 -112
  283. package/dist/services/file-builder.js.map +0 -1
  284. package/dist/services/plugin-meta.d.ts +0 -33
  285. package/dist/services/plugin-meta.d.ts.map +0 -1
  286. package/dist/services/plugin-meta.js +0 -24
  287. package/dist/services/plugin-meta.js.map +0 -1
  288. package/dist/services/plugin-runner.d.ts +0 -42
  289. package/dist/services/plugin-runner.d.ts.map +0 -1
  290. package/dist/services/plugin-runner.js +0 -84
  291. package/dist/services/plugin-runner.js.map +0 -1
  292. package/dist/services/plugin.d.ts +0 -421
  293. package/dist/services/plugin.d.ts.map +0 -1
  294. package/dist/services/plugin.js +0 -197
  295. package/dist/services/plugin.js.map +0 -1
  296. package/dist/services/resolution.d.ts +0 -38
  297. package/dist/services/resolution.d.ts.map +0 -1
  298. package/dist/services/resolution.js +0 -242
  299. package/dist/services/resolution.js.map +0 -1
  300. package/dist/services/service-registry.d.ts +0 -74
  301. package/dist/services/service-registry.d.ts.map +0 -1
  302. package/dist/services/service-registry.js +0 -61
  303. package/dist/services/service-registry.js.map +0 -1
  304. package/dist/services/symbols.d.ts +0 -144
  305. package/dist/services/symbols.d.ts.map +0 -1
  306. package/dist/services/symbols.js +0 -144
  307. package/dist/services/symbols.js.map +0 -1
@@ -0,0 +1,431 @@
1
+ export function createBuilderState(ir) {
2
+ const tables = new Map();
3
+ const enums = new Map();
4
+ for (const [name, entity] of ir.entities) {
5
+ if (entity.kind === "table" || entity.kind === "view") {
6
+ // Index by both entity name (User) and pgName (user) for flexible lookup
7
+ tables.set(name, entity);
8
+ tables.set(entity.pgName, entity);
9
+ }
10
+ else if (entity.kind === "enum") {
11
+ enums.set(entity.pgName, { name: entity.name, values: entity.values });
12
+ }
13
+ }
14
+ return {
15
+ params: [],
16
+ paramCounter: 0,
17
+ tables,
18
+ enums,
19
+ usedParamNames: new Set(),
20
+ lateralAliases: new Set(),
21
+ subqueryAliases: new Set(),
22
+ };
23
+ }
24
+ export function resolvePgType(state, column, allowLateral = false) {
25
+ if (column.endsWith(".*")) {
26
+ return "unknown";
27
+ }
28
+ const [tableName, colName] = column.includes(".")
29
+ ? column.split(".")
30
+ : [undefined, column];
31
+ if (tableName && state.subqueryAliases.has(tableName)) {
32
+ return "unknown";
33
+ }
34
+ if (tableName && state.lateralAliases.has(tableName)) {
35
+ if (allowLateral) {
36
+ return "unknown";
37
+ }
38
+ throw new Error(`Cannot resolve type for LATERAL alias column: ${column}`);
39
+ }
40
+ const table = tableName ? state.tables.get(tableName) : undefined;
41
+ if (!table) {
42
+ throw new Error(`Unknown table: ${tableName || "implicit from context"}`);
43
+ }
44
+ const field = table.shapes.row.fields.find(f => f.columnName === colName);
45
+ if (!field) {
46
+ throw new Error(`Unknown column: ${column}`);
47
+ }
48
+ const pgType = field.pgAttribute.getType();
49
+ if (!pgType) {
50
+ throw new Error(`Could not resolve type for column: ${column}`);
51
+ }
52
+ return pgType.typname;
53
+ }
54
+ export function resolveTsType(state, pgType) {
55
+ const enumType = state.enums.get(pgType);
56
+ if (enumType) {
57
+ return enumType.name;
58
+ }
59
+ if (pgType.endsWith("[]")) {
60
+ const baseType = resolveTsType(state, pgType.slice(0, -2));
61
+ return `${baseType}[]`;
62
+ }
63
+ const mapping = {
64
+ "bool": "boolean",
65
+ "int2": "number",
66
+ "int4": "number",
67
+ "int8": "string",
68
+ "float4": "number",
69
+ "float8": "number",
70
+ "numeric": "string",
71
+ "text": "string",
72
+ "varchar": "string",
73
+ "bpchar": "string",
74
+ "uuid": "string",
75
+ "date": "Date",
76
+ "timestamp": "Date",
77
+ "timestamptz": "Date",
78
+ "json": "unknown",
79
+ "jsonb": "unknown",
80
+ "bytea": "Buffer",
81
+ };
82
+ return mapping[pgType] || "unknown";
83
+ }
84
+ export function addParam(state, spec) {
85
+ if (state.usedParamNames.has(spec.name)) {
86
+ throw new Error(`Duplicate parameter name: ${spec.name}`);
87
+ }
88
+ state.usedParamNames.add(spec.name);
89
+ const tsType = spec.tsType ?? resolveTsType(state, spec.pgType);
90
+ state.params.push({
91
+ name: spec.name,
92
+ pgType: spec.pgType,
93
+ tsType,
94
+ nullable: spec.nullable ?? false,
95
+ });
96
+ return ++state.paramCounter;
97
+ }
98
+ export function nextPlaceholder(state) {
99
+ return `$${state.paramCounter + 1}`;
100
+ }
101
+ export function buildSelectItem(state, item) {
102
+ switch (item.kind) {
103
+ case "column":
104
+ if (!item.from || !item.column) {
105
+ throw new Error("Column select item requires 'from' and 'column'");
106
+ }
107
+ return `${item.from}.${item.column}${item.alias ? ` AS "${item.alias}"` : ""}`;
108
+ case "expression":
109
+ if (!item.expr) {
110
+ throw new Error("Expression select item requires 'expr'");
111
+ }
112
+ return `${item.expr}${item.alias ? ` AS "${item.alias}"` : ""}`;
113
+ case "star":
114
+ return item.from ? `${item.from}.*` : "*";
115
+ case "lateral":
116
+ if (!item.func || !item.alias) {
117
+ throw new Error("Lateral select item requires 'func' and 'alias'");
118
+ }
119
+ return item.alias;
120
+ default:
121
+ throw new Error(`Unknown select item kind: ${item.kind}`);
122
+ }
123
+ }
124
+ export function buildFunctionCall(state, call) {
125
+ const args = call.args.map(arg => {
126
+ switch (arg.kind) {
127
+ case "column":
128
+ if (!arg.from || !arg.column) {
129
+ throw new Error("Column function arg requires 'from' and 'column'");
130
+ }
131
+ return `${arg.from}.${arg.column}`;
132
+ case "star":
133
+ return "*";
134
+ case "expression":
135
+ if (!arg.expr)
136
+ throw new Error("Expression function arg requires 'expr'");
137
+ return arg.expr;
138
+ case "all":
139
+ if (!arg.from)
140
+ throw new Error("All function arg requires 'from'");
141
+ return `${arg.from}.*`;
142
+ default:
143
+ throw new Error(`Unknown function arg kind: ${arg.kind}`);
144
+ }
145
+ }).join(", ");
146
+ const funcExpr = `${call.name}(${args})`;
147
+ if (call.window) {
148
+ const partitionBy = call.window.partitionBy.map(p => typeof p === "string" ? p : p.expr).join(", ");
149
+ const orderBy = call.window.orderBy.map(o => `${o.column} ${o.direction.toUpperCase()}`).join(", ");
150
+ return `${funcExpr} OVER (PARTITION BY ${partitionBy} ORDER BY ${orderBy})`;
151
+ }
152
+ return funcExpr;
153
+ }
154
+ export function buildFromClause(state, from) {
155
+ if (from.kind === "table") {
156
+ if (!from.table) {
157
+ throw new Error("From item requires 'table'");
158
+ }
159
+ return `FROM ${from.table}${from.alias ? ` AS ${from.alias}` : ""}`;
160
+ }
161
+ if (from.kind === "subquery") {
162
+ if (!from.subquery) {
163
+ throw new Error("Subquery from item requires 'subquery'");
164
+ }
165
+ const subquerySql = buildSelectQuery(state, from.subquery);
166
+ if (from.alias) {
167
+ state.subqueryAliases.add(from.alias);
168
+ }
169
+ return `FROM (${subquerySql})${from.alias ? ` AS ${from.alias}` : ""}`;
170
+ }
171
+ throw new Error(`Unknown from kind: ${from.kind}`);
172
+ }
173
+ export function buildJoinClause(join) {
174
+ const alias = join.alias ? ` AS ${join.alias}` : "";
175
+ if (join.type === "cross lateral") {
176
+ return `CROSS JOIN LATERAL ${join.table}${alias}`;
177
+ }
178
+ const on = join.on ? ` ON ${join.on}` : "";
179
+ return `${join.type.toUpperCase()} JOIN ${join.table}${alias}${on}`;
180
+ }
181
+ export function buildWhereClause(state, conditions) {
182
+ if (conditions.length === 0)
183
+ return "";
184
+ const clauses = conditions.map(cond => {
185
+ switch (cond.kind) {
186
+ case "equals":
187
+ if (!cond.column)
188
+ throw new Error("Equals condition requires 'column'");
189
+ if (!cond.value)
190
+ throw new Error("Equals condition requires 'value'");
191
+ if (isParamSpec(cond.value)) {
192
+ const placeholder = nextPlaceholder(state);
193
+ addParam(state, cond.value);
194
+ return `${cond.column} = ${placeholder}`;
195
+ }
196
+ return `${cond.column} = ${formatValue(cond.value)}`;
197
+ case "notEquals":
198
+ if (!cond.column)
199
+ throw new Error("NotEquals condition requires 'column'");
200
+ if (!cond.value)
201
+ throw new Error("NotEquals condition requires 'value'");
202
+ if (isParamSpec(cond.value)) {
203
+ const placeholder = nextPlaceholder(state);
204
+ addParam(state, cond.value);
205
+ return `${cond.column} <> ${placeholder}`;
206
+ }
207
+ return `${cond.column} <> ${formatValue(cond.value)}`;
208
+ case "isNull":
209
+ if (!cond.column)
210
+ throw new Error("IsNull condition requires 'column'");
211
+ return `${cond.column} IS NULL`;
212
+ case "isNotNull":
213
+ if (!cond.column)
214
+ throw new Error("IsNotNull condition requires 'column'");
215
+ return `${cond.column} IS NOT NULL`;
216
+ case "raw":
217
+ if (!cond.expr)
218
+ throw new Error("Raw condition requires 'expr'");
219
+ return cond.expr;
220
+ default:
221
+ throw new Error(`Unknown where condition kind: ${cond.kind}`);
222
+ }
223
+ });
224
+ return `WHERE ${clauses.join(" AND ")}`;
225
+ }
226
+ export function buildOrderByClause(orderBy) {
227
+ const clauses = orderBy.map(item => {
228
+ let expr;
229
+ if (item.kind === "column") {
230
+ expr = `${item.from ? `${item.from}.` : ""}${item.column}`;
231
+ }
232
+ else if (item.kind === "expression") {
233
+ expr = item.expr;
234
+ }
235
+ else {
236
+ throw new Error(`Unsupported order by kind: ${item.kind}`);
237
+ }
238
+ const direction = item.direction.toUpperCase();
239
+ const nulls = item.nulls ? ` NULLS ${item.nulls === "first" ? "FIRST" : "LAST"}` : "";
240
+ return `${expr} ${direction}${nulls}`;
241
+ });
242
+ return `ORDER BY ${clauses.join(", ")}`;
243
+ }
244
+ export function buildGroupByClause(groupBy) {
245
+ const clauses = groupBy.map(item => {
246
+ if (item.kind === "column") {
247
+ return `${item.from ? `${item.from}.` : ""}${item.column}`;
248
+ }
249
+ return item.expr;
250
+ });
251
+ return `GROUP BY ${clauses.join(", ")}`;
252
+ }
253
+ function isParamSpec(value) {
254
+ return (typeof value === "object" &&
255
+ value !== null &&
256
+ "name" in value &&
257
+ "pgType" in value);
258
+ }
259
+ function formatValue(value) {
260
+ if (value === null)
261
+ return "NULL";
262
+ if (typeof value === "string")
263
+ return `'${value.replace(/'/g, "''")}'`;
264
+ if (typeof value === "boolean")
265
+ return value ? "TRUE" : "FALSE";
266
+ return String(value);
267
+ }
268
+ export function buildValueOrParam(state, value) {
269
+ if (value === null)
270
+ return "NULL";
271
+ if (isParamSpec(value)) {
272
+ const placeholder = nextPlaceholder(state);
273
+ addParam(state, value);
274
+ return placeholder;
275
+ }
276
+ return buildExpression(state, value);
277
+ }
278
+ export function buildExpression(state, expr) {
279
+ switch (expr.kind) {
280
+ case "column":
281
+ if (!expr.from || !expr.column) {
282
+ throw new Error("Column expression requires 'from' and 'column'");
283
+ }
284
+ return `${expr.from}.${expr.column}`;
285
+ case "param":
286
+ if (!expr.param)
287
+ throw new Error("Param expression requires 'param'");
288
+ const placeholder = nextPlaceholder(state);
289
+ addParam(state, { name: expr.param, pgType: "unknown" });
290
+ return placeholder;
291
+ case "value":
292
+ return formatValue(expr.value ?? null);
293
+ case "raw":
294
+ if (!expr.expr)
295
+ throw new Error("Raw expression requires 'expr'");
296
+ return expr.expr;
297
+ case "subquery":
298
+ if (!expr.subquery)
299
+ throw new Error("Subquery expression requires 'subquery'");
300
+ return `(${buildSelectQuery(state, expr.subquery)})`;
301
+ default:
302
+ throw new Error(`Unknown expression kind: ${expr.kind}`);
303
+ }
304
+ }
305
+ export function buildMutationQuery(state, spec) {
306
+ const alias = spec.alias ? ` AS ${spec.alias}` : "";
307
+ switch (spec.kind) {
308
+ case "insert": {
309
+ if (!spec.columns) {
310
+ throw new Error("INSERT requires 'columns'");
311
+ }
312
+ const columns = spec.columns.map(c => c.column).join(", ");
313
+ const values = spec.columns.map(c => buildValueOrParam(state, c.value)).join(", ");
314
+ const returning = spec.returning ? ` RETURNING ${spec.returning.map(r => buildSelectItem(state, r)).join(", ")}` : "";
315
+ return `INSERT INTO ${spec.table}${alias} (${columns}) VALUES (${values})${returning}`;
316
+ }
317
+ case "update": {
318
+ if (!spec.columns) {
319
+ throw new Error("UPDATE requires 'columns'");
320
+ }
321
+ const setClauses = spec.columns.map(c => `${c.column} = ${buildValueOrParam(state, c.value)}`).join(", ");
322
+ const where = spec.where ? ` ${buildWhereClause(state, spec.where)}` : "";
323
+ const returning = spec.returning ? ` RETURNING ${spec.returning.map(r => buildSelectItem(state, r)).join(", ")}` : "";
324
+ return `UPDATE ${spec.table}${alias} SET ${setClauses}${where}${returning}`;
325
+ }
326
+ case "delete": {
327
+ const where = spec.where ? ` ${buildWhereClause(state, spec.where)}` : "";
328
+ const returning = spec.returning ? ` RETURNING ${spec.returning.map(r => buildSelectItem(state, r)).join(", ")}` : "";
329
+ return `DELETE FROM ${spec.table}${alias}${where}${returning}`;
330
+ }
331
+ case "upsert": {
332
+ if (!spec.columns) {
333
+ throw new Error("UPSERT requires 'columns'");
334
+ }
335
+ const columns = spec.columns.map(c => c.column).join(", ");
336
+ const values = spec.columns.map(c => buildValueOrParam(state, c.value)).join(", ");
337
+ const conflictColumns = spec.columns.map(c => c.column).join(", ");
338
+ const updateClauses = spec.columns.map(c => `${c.column} = EXCLUDED.${c.column}`).join(", ");
339
+ const returning = spec.returning ? ` RETURNING ${spec.returning.map(r => buildSelectItem(state, r)).join(", ")}` : "";
340
+ return `INSERT INTO ${spec.table}${alias} (${columns}) VALUES (${values}) ON CONFLICT (${conflictColumns}) DO UPDATE SET ${updateClauses}${returning}`;
341
+ }
342
+ default:
343
+ throw new Error(`Unknown mutation kind: ${spec.kind}`);
344
+ }
345
+ }
346
+ export function buildSelectQuery(state, spec) {
347
+ const clauses = [];
348
+ if (spec.with && spec.with.length > 0) {
349
+ const cteClauses = spec.with.map(cte => {
350
+ const querySql = buildSelectQuery(state, cte.query);
351
+ return `${cte.name} AS (${querySql})`;
352
+ });
353
+ clauses.push(`WITH ${cteClauses.join(", ")}`);
354
+ }
355
+ const selectItems = spec.selects.map(item => buildSelectItem(state, item));
356
+ clauses.push(`SELECT ${selectItems.join(", ")}`);
357
+ clauses.push(buildFromClause(state, spec.from));
358
+ if (spec.joins) {
359
+ spec.joins.filter(j => j.type === "cross lateral" && j.alias).forEach(j => state.lateralAliases.add(j.alias));
360
+ clauses.push(...spec.joins.map(buildJoinClause));
361
+ }
362
+ if (spec.where) {
363
+ clauses.push(buildWhereClause(state, spec.where));
364
+ }
365
+ if (spec.groupBy) {
366
+ clauses.push(buildGroupByClause(spec.groupBy));
367
+ }
368
+ if (spec.orderBy) {
369
+ clauses.push(buildOrderByClause(spec.orderBy));
370
+ }
371
+ if (spec.limit !== undefined) {
372
+ if (typeof spec.limit === "number") {
373
+ clauses.push(`LIMIT ${spec.limit}`);
374
+ }
375
+ else {
376
+ clauses.push(`LIMIT ${nextPlaceholder(state)}`);
377
+ addParam(state, spec.limit);
378
+ }
379
+ }
380
+ if (spec.offset !== undefined) {
381
+ if (typeof spec.offset === "number") {
382
+ clauses.push(`OFFSET ${spec.offset}`);
383
+ }
384
+ else {
385
+ clauses.push(`OFFSET ${nextPlaceholder(state)}`);
386
+ addParam(state, spec.offset);
387
+ }
388
+ }
389
+ return clauses.join(" ");
390
+ }
391
+ export function inferReturnFields(state, selects) {
392
+ return selects.map(item => {
393
+ if (item.kind === "column" && item.from && item.column) {
394
+ const pgType = resolvePgType(state, `${item.from}.${item.column}`, true);
395
+ const tsType = resolveTsType(state, pgType);
396
+ return {
397
+ name: item.alias ?? item.column,
398
+ tsType,
399
+ pgType,
400
+ nullable: false,
401
+ };
402
+ }
403
+ if (item.kind === "star") {
404
+ return { name: "*", tsType: "unknown", pgType: "unknown", nullable: false };
405
+ }
406
+ if (item.kind === "lateral" && item.alias) {
407
+ return { name: item.alias, tsType: "unknown", pgType: "unknown", nullable: false };
408
+ }
409
+ if (item.kind === "expression" && item.expr) {
410
+ const pgType = inferExpressionPgType(item.expr);
411
+ const tsType = resolveTsType(state, pgType);
412
+ return { name: item.alias ?? "expr", tsType, pgType, nullable: false };
413
+ }
414
+ return { name: item.alias ?? "unknown", tsType: "unknown", pgType: "unknown", nullable: false };
415
+ });
416
+ }
417
+ export function inferExpressionPgType(expr) {
418
+ const lower = expr.toLowerCase();
419
+ if (lower.startsWith("count"))
420
+ return "bigint";
421
+ if (lower.startsWith("sum") || lower.startsWith("avg"))
422
+ return "numeric";
423
+ if (lower.startsWith("min") || lower.startsWith("max"))
424
+ return "text";
425
+ if (lower.includes("json_agg") || lower.includes("json_build_object"))
426
+ return "jsonb";
427
+ if (lower.includes("array_agg"))
428
+ return "text[]";
429
+ return "text";
430
+ }
431
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/hex/types.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -3,42 +3,34 @@
3
3
  *
4
4
  * Main entry point
5
5
  */
6
- export { Config, TypeHint, TypeHintMatch, type ResolvedConfig, type ConfigInput } from "./config.js";
6
+ export { Config, TypeHint, TypeHintMatch, type ResolvedConfig, type ConfigInput, } from "./config.js";
7
7
  export { type ConfigLoader, ConfigLoaderService, ConfigLoaderLive, createConfigLoader, defineConfig, } from "./services/config-loader.js";
8
- export { ConfigService, ConfigFromFile, ConfigWithInit, ConfigTest, getConfigSearchPaths, } from "./services/config.js";
8
+ export { ConfigService, type ConfigProvider, FileConfigProvider, InMemoryConfigProvider, withFallback, ConfigFromFile, ConfigFromMemory, ConfigTest, ConfigWithFallback, getConfigSearchPaths, } from "./services/config.js";
9
9
  export * from "./errors.js";
10
+ export { userModule, isUserModuleRef, type UserModuleRef, type UserModuleOptions } from "./user-module.js";
11
+ export { type UserModuleParser, type UserModuleExports, UserModuleParserService, UserModuleParserLive, createUserModuleParser, } from "./services/user-module-parser.js";
10
12
  export { type SemanticIR, type SemanticIRBuilder, type Entity, type TableEntity, type EnumEntity, type DomainEntity, type DomainConstraint, type CompositeEntity, type Shape, type Field, type Relation, type ExtensionInfo, type Artifact, type CapabilityKey, type PrimaryKey, type EntityKind, type DomainBaseTypeInfo, type FunctionEntity, type FunctionArg, type Volatility, createIRBuilder, freezeIR, isTableEntity, isEnumEntity, isDomainEntity, isCompositeEntity, isFunctionEntity, getTableEntities, getEnumEntities, getDomainEntities, getCompositeEntities, getFunctionEntities, type ReverseRelation, type AllRelations, getReverseRelations, getAllRelations, } from "./ir/index.js";
11
13
  export { SmartTags, ShapeKind } from "./ir/index.js";
12
14
  export { type ParamSource, type QueryMethodKind, type QueryMethodParam, type QueryMethodReturn, type CallSignature, type QueryMethod, type EntityQueriesExtension, type StandaloneFunction, type FunctionsExtension, EntityQueriesExtension as EntityQueriesExtensionSchema, FunctionsExtension as FunctionsExtensionSchema, } from "./ir/extensions/queries.js";
15
+ export { type SchemaImportSpec, type SchemaBuilderRequest, type SchemaBuilderResult, type SchemaBuilder, SCHEMA_BUILDER_KIND, } from "./ir/extensions/schema-builder.js";
13
16
  export { IR } from "./services/ir.js";
14
- export { ArtifactStore, type ArtifactStoreImpl, createArtifactStore, ArtifactStoreLive } from "./services/artifact-store.js";
15
- export { PluginMeta, type PluginMetaInfo } from "./services/plugin-meta.js";
16
- export { type Plugin, type PluginContext, type PluginRegistry, type PluginError, type ResourceRequest, type DeferredResource, PluginNotFound, PluginCycle, PluginExecutionFailed, ResourceNotResolved, Plugins, PluginsLive, definePlugin, createPluginRegistry, } from "./services/plugin.js";
17
17
  export { type CoreInflection, type InflectionConfig, type TransformFn, Inflection, inflect, defaultInflection, defaultTransforms, createInflection, makeInflectionLayer, composeInflectionConfigs, composeInflection, InflectionLive, } from "./services/inflection.js";
18
18
  export { type TypeHintRegistry, type TypeHintFieldMatch, TypeHints, createTypeHintRegistry, emptyTypeHintRegistry, TypeHintsLive, } from "./services/type-hints.js";
19
19
  export { PgTypeOid, TsType, type TypeMappingResult, type TypeMapper, type EnumLookupResult, type CompositeLookupResult, ExtensionTypeMap, defaultPgToTs, getExtensionTypeMapping, composeMappers, wrapArrayType, wrapNullable, findEnumByPgName, findCompositeByPgName, } from "./services/pg-types.js";
20
- export { type SymbolRegistry, type Symbol, type SymbolRef, type ImportStatement, type SymbolCollision, type MethodSymbol, type EntityMethods, Symbols, createSymbolRegistry, SymbolsLive, } from "./services/symbols.js";
21
- export { type ServiceRegistry, Services, createServiceRegistry, ServicesLive, } from "./services/service-registry.js";
22
- export { type EmissionBuffer, type EmissionEntry, Emissions, createEmissionBuffer, EmissionsLive, } from "./services/emissions.js";
23
- export { runPlugins, type PluginRunContext, type PluginRunResult, type PluginRunError, } from "./services/plugin-runner.js";
24
- export { type FileWriter, type WriteResult, type WriteOptions, FileWriterSvc, createFileWriter, FileWriterLive, } from "./services/file-writer.js";
25
- export { type ParsedComment, type TagContext, parseSmartTags, } from "./services/smart-tags-parser.js";
26
- export { type IRBuilder, type IRBuilderOptions, IRBuilderSvc, IRBuilderLive, createIRBuilderService, } from "./services/ir-builder.js";
27
- export { PluginTestLayers, createPluginTestLayer, } from "./testing.js";
28
- export { conjure, cast, type ChainBuilder, type ObjBuilder, type ArrBuilder, type FnBuilder, type SymbolContext, type SymbolMeta, type SymbolStatement, type SymbolProgram, } from "./lib/conjure.js";
29
- export { hex, type SqlStyle, type QueryParts, buildTemplateLiteral, buildAwaitSqlTag, buildAwaitSqlString, buildQuery, buildFirstRowDecl, buildAllRowsDecl, buildReturnQuery, } from "./lib/hex.js";
30
- export { typesPlugin, types } from "./plugins/types.js";
20
+ export { type FileNaming, type FileNamingContext, type AssignedSymbol, parseCapabilityInfo, } from "./runtime/file-assignment.js";
21
+ export { emitFiles, type EmittedFile, type EmitConfig, type ExternalImport, type RenderedSymbolWithImports, } from "./runtime/emit.js";
22
+ export type { Plugin, Capability, SymbolDeclaration, SymbolRef, RenderedSymbol, SymbolHandle, } from "./runtime/types.js";
23
+ export { typesPlugin } from "./plugins/types.js";
31
24
  export { zod, type ZodConfig } from "./plugins/zod.js";
32
25
  export { arktype, type ArkTypeConfig } from "./plugins/arktype.js";
33
26
  export { valibot, type ValibotConfig } from "./plugins/valibot.js";
34
- export { sqlQueries, sqlQueries as sqlQueriesPlugin, type SqlQueriesConfig } from "./plugins/sql-queries.js";
35
- export { effect, effectPlugin, type EffectConfig } from "./plugins/effect.js";
27
+ export { effect, type EffectConfig } from "./plugins/effect/index.js";
28
+ export { express, type HttpExpressConfig } from "./plugins/http-express.js";
29
+ export { elysia, type HttpElysiaConfig } from "./plugins/http-elysia.js";
30
+ export { hono, type HttpHonoConfig } from "./plugins/http-hono.js";
36
31
  export { kysely, type KyselyConfig } from "./plugins/kysely.js";
37
- export { httpElysia, type HttpElysiaConfig } from "./plugins/http-elysia.js";
38
- export { httpExpress, type HttpExpressConfig } from "./plugins/http-express.js";
39
- export { httpHono, type HttpHonoConfig } from "./plugins/http-hono.js";
40
- export { httpTrpc, type HttpTrpcConfig } from "./plugins/http-trpc.js";
41
- export { httpOrpc, type HttpOrpcConfig } from "./plugins/http-orpc.js";
42
- export { generate, runGenerate, GenerateLive, type GenerateOptions, type GenerateResult, type GenerateError, } from "./generate.js";
43
- export { type DatabaseIntrospection, type IntrospectOptions, DatabaseIntrospectionService, DatabaseIntrospectionLive, createDatabaseIntrospection, introspectDatabase, } from "./services/introspection.js";
32
+ export { sqlQueries, type SqlQueriesConfig } from "./plugins/sql-queries.js";
33
+ export { orpc, type HttpOrpcConfig } from "./plugins/http-orpc.js";
34
+ export { trpc, type HttpTrpcConfig } from "./plugins/http-trpc.js";
35
+ export { testIR, testIRWithEntities, testIRFromFixture, testConfig, testPlugin, testPluginEmit, type TestPluginOptions, } from "./testing.js";
44
36
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}