@graphoria/server 0.1.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 (628) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +10 -0
  3. package/README.md +129 -0
  4. package/cli.ts +105 -0
  5. package/dist/cli.d.ts +3 -0
  6. package/dist/cli.d.ts.map +1 -0
  7. package/dist/src/ai/agent/agent.d.ts +37 -0
  8. package/dist/src/ai/agent/agent.d.ts.map +1 -0
  9. package/dist/src/ai/agent/index.d.ts +3 -0
  10. package/dist/src/ai/agent/index.d.ts.map +1 -0
  11. package/dist/src/ai/agent/providers/anthropic.d.ts +10 -0
  12. package/dist/src/ai/agent/providers/anthropic.d.ts.map +1 -0
  13. package/dist/src/ai/agent/providers/index.d.ts +8 -0
  14. package/dist/src/ai/agent/providers/index.d.ts.map +1 -0
  15. package/dist/src/ai/agent/providers/ollama.d.ts +11 -0
  16. package/dist/src/ai/agent/providers/ollama.d.ts.map +1 -0
  17. package/dist/src/ai/agent/providers/openai.d.ts +14 -0
  18. package/dist/src/ai/agent/providers/openai.d.ts.map +1 -0
  19. package/dist/src/ai/agent/types.d.ts +51 -0
  20. package/dist/src/ai/agent/types.d.ts.map +1 -0
  21. package/dist/src/ai/ask-field.test.d.ts +2 -0
  22. package/dist/src/ai/ask-field.test.d.ts.map +1 -0
  23. package/dist/src/ai/index.d.ts +7 -0
  24. package/dist/src/ai/index.d.ts.map +1 -0
  25. package/dist/src/ai/mcp/create-server.d.ts +14 -0
  26. package/dist/src/ai/mcp/create-server.d.ts.map +1 -0
  27. package/dist/src/ai/mcp/create-server.test.d.ts +2 -0
  28. package/dist/src/ai/mcp/create-server.test.d.ts.map +1 -0
  29. package/dist/src/ai/mcp/index.d.ts +13 -0
  30. package/dist/src/ai/mcp/index.d.ts.map +1 -0
  31. package/dist/src/ai/mcp/index.test.d.ts +2 -0
  32. package/dist/src/ai/mcp/index.test.d.ts.map +1 -0
  33. package/dist/src/ai/mcp/instructions.d.ts +2 -0
  34. package/dist/src/ai/mcp/instructions.d.ts.map +1 -0
  35. package/dist/src/ai/tools/agent.d.ts +4 -0
  36. package/dist/src/ai/tools/agent.d.ts.map +1 -0
  37. package/dist/src/ai/tools/agent.test.d.ts +2 -0
  38. package/dist/src/ai/tools/agent.test.d.ts.map +1 -0
  39. package/dist/src/ai/tools/core.d.ts +75 -0
  40. package/dist/src/ai/tools/core.d.ts.map +1 -0
  41. package/dist/src/ai/tools/query-data.d.ts +35 -0
  42. package/dist/src/ai/tools/query-data.d.ts.map +1 -0
  43. package/dist/src/analyzeQuery/analyzers/fragmentAnalyzer.d.ts +5 -0
  44. package/dist/src/analyzeQuery/analyzers/fragmentAnalyzer.d.ts.map +1 -0
  45. package/dist/src/analyzeQuery/analyzers/operationAnalyzer.d.ts +6 -0
  46. package/dist/src/analyzeQuery/analyzers/operationAnalyzer.d.ts.map +1 -0
  47. package/dist/src/analyzeQuery/analyzers/selectionAnalyzer.d.ts +6 -0
  48. package/dist/src/analyzeQuery/analyzers/selectionAnalyzer.d.ts.map +1 -0
  49. package/dist/src/analyzeQuery/analyzers/variableAnalyzer.d.ts +4 -0
  50. package/dist/src/analyzeQuery/analyzers/variableAnalyzer.d.ts.map +1 -0
  51. package/dist/src/analyzeQuery/depthLimit.d.ts +16 -0
  52. package/dist/src/analyzeQuery/depthLimit.d.ts.map +1 -0
  53. package/dist/src/analyzeQuery/depthLimit.test.d.ts +2 -0
  54. package/dist/src/analyzeQuery/depthLimit.test.d.ts.map +1 -0
  55. package/dist/src/analyzeQuery/directiveUtils.d.ts +4 -0
  56. package/dist/src/analyzeQuery/directiveUtils.d.ts.map +1 -0
  57. package/dist/src/analyzeQuery/directiveUtils.test.d.ts +2 -0
  58. package/dist/src/analyzeQuery/directiveUtils.test.d.ts.map +1 -0
  59. package/dist/src/analyzeQuery/index.d.ts +5 -0
  60. package/dist/src/analyzeQuery/index.d.ts.map +1 -0
  61. package/dist/src/analyzeQuery/index.test.d.ts +2 -0
  62. package/dist/src/analyzeQuery/index.test.d.ts.map +1 -0
  63. package/dist/src/analyzeQuery/resolveVariables.d.ts +71 -0
  64. package/dist/src/analyzeQuery/resolveVariables.d.ts.map +1 -0
  65. package/dist/src/analyzeQuery/resolveVariables.test.d.ts +2 -0
  66. package/dist/src/analyzeQuery/resolveVariables.test.d.ts.map +1 -0
  67. package/dist/src/analyzeQuery/staticValues.test.d.ts +2 -0
  68. package/dist/src/analyzeQuery/staticValues.test.d.ts.map +1 -0
  69. package/dist/src/analyzeQuery/typeUtils.d.ts +9 -0
  70. package/dist/src/analyzeQuery/typeUtils.d.ts.map +1 -0
  71. package/dist/src/analyzeQuery/types.d.ts +54 -0
  72. package/dist/src/analyzeQuery/types.d.ts.map +1 -0
  73. package/dist/src/analyzeQuery/valueExtractors.d.ts +4 -0
  74. package/dist/src/analyzeQuery/valueExtractors.d.ts.map +1 -0
  75. package/dist/src/authentication/duration.d.ts +14 -0
  76. package/dist/src/authentication/duration.d.ts.map +1 -0
  77. package/dist/src/authentication/duration.test.d.ts +2 -0
  78. package/dist/src/authentication/duration.test.d.ts.map +1 -0
  79. package/dist/src/authentication/index.d.ts +4 -0
  80. package/dist/src/authentication/index.d.ts.map +1 -0
  81. package/dist/src/authentication/index.test.d.ts +2 -0
  82. package/dist/src/authentication/index.test.d.ts.map +1 -0
  83. package/dist/src/authentication/jwt.d.ts +10 -0
  84. package/dist/src/authentication/jwt.d.ts.map +1 -0
  85. package/dist/src/authentication/jwt.test.d.ts +2 -0
  86. package/dist/src/authentication/jwt.test.d.ts.map +1 -0
  87. package/dist/src/authentication/paseto.d.ts +7 -0
  88. package/dist/src/authentication/paseto.d.ts.map +1 -0
  89. package/dist/src/authentication/paseto.test.d.ts +2 -0
  90. package/dist/src/authentication/paseto.test.d.ts.map +1 -0
  91. package/dist/src/authentication/tokenRepository.d.ts +14 -0
  92. package/dist/src/authentication/tokenRepository.d.ts.map +1 -0
  93. package/dist/src/authentication/tokenRepository.test.d.ts +2 -0
  94. package/dist/src/authentication/tokenRepository.test.d.ts.map +1 -0
  95. package/dist/src/authentication/types.d.ts +42 -0
  96. package/dist/src/authentication/types.d.ts.map +1 -0
  97. package/dist/src/cli/seedAuth.d.ts +4 -0
  98. package/dist/src/cli/seedAuth.d.ts.map +1 -0
  99. package/dist/src/cli/seedAuth.test.d.ts +2 -0
  100. package/dist/src/cli/seedAuth.test.d.ts.map +1 -0
  101. package/dist/src/cli/seedAuthArgs.d.ts +9 -0
  102. package/dist/src/cli/seedAuthArgs.d.ts.map +1 -0
  103. package/dist/src/config/helpers/cronHelper.d.ts +21 -0
  104. package/dist/src/config/helpers/cronHelper.d.ts.map +1 -0
  105. package/dist/src/config/helpers/cronHelper.test.d.ts +2 -0
  106. package/dist/src/config/helpers/cronHelper.test.d.ts.map +1 -0
  107. package/dist/src/config/helpers/index.d.ts +4 -0
  108. package/dist/src/config/helpers/index.d.ts.map +1 -0
  109. package/dist/src/config/helpers/operationHelper.d.ts +44 -0
  110. package/dist/src/config/helpers/operationHelper.d.ts.map +1 -0
  111. package/dist/src/config/helpers/queueHelper.d.ts +20 -0
  112. package/dist/src/config/helpers/queueHelper.d.ts.map +1 -0
  113. package/dist/src/config/helpers/queueHelper.test.d.ts +2 -0
  114. package/dist/src/config/helpers/queueHelper.test.d.ts.map +1 -0
  115. package/dist/src/config/index.d.ts +236 -0
  116. package/dist/src/config/index.d.ts.map +1 -0
  117. package/dist/src/config/types/ai.d.ts +29 -0
  118. package/dist/src/config/types/ai.d.ts.map +1 -0
  119. package/dist/src/config/types/auth.d.ts +112 -0
  120. package/dist/src/config/types/auth.d.ts.map +1 -0
  121. package/dist/src/config/types/configuration.d.ts +61 -0
  122. package/dist/src/config/types/configuration.d.ts.map +1 -0
  123. package/dist/src/config/types/cron.d.ts +81 -0
  124. package/dist/src/config/types/cron.d.ts.map +1 -0
  125. package/dist/src/config/types/db.d.ts +210 -0
  126. package/dist/src/config/types/db.d.ts.map +1 -0
  127. package/dist/src/config/types/index.d.ts +17 -0
  128. package/dist/src/config/types/index.d.ts.map +1 -0
  129. package/dist/src/config/types/operation.d.ts +226 -0
  130. package/dist/src/config/types/operation.d.ts.map +1 -0
  131. package/dist/src/config/types/queue.d.ts +142 -0
  132. package/dist/src/config/types/queue.d.ts.map +1 -0
  133. package/dist/src/config/types/remote-rest.d.ts +18 -0
  134. package/dist/src/config/types/remote-rest.d.ts.map +1 -0
  135. package/dist/src/config/types/remote-schema.d.ts +27 -0
  136. package/dist/src/config/types/remote-schema.d.ts.map +1 -0
  137. package/dist/src/config/types/virtual-columns.d.ts +89 -0
  138. package/dist/src/config/types/virtual-columns.d.ts.map +1 -0
  139. package/dist/src/config/types/virtual-columns.test.d.ts +2 -0
  140. package/dist/src/config/types/virtual-columns.test.d.ts.map +1 -0
  141. package/dist/src/configuration/getSchemas/index.d.ts +867 -0
  142. package/dist/src/configuration/getSchemas/index.d.ts.map +1 -0
  143. package/dist/src/configuration/getSchemas/mergeEntities/index.d.ts +412 -0
  144. package/dist/src/configuration/getSchemas/mergeEntities/index.d.ts.map +1 -0
  145. package/dist/src/configuration/getSchemas/type-definition-generator/index.d.ts +16 -0
  146. package/dist/src/configuration/getSchemas/type-definition-generator/index.d.ts.map +1 -0
  147. package/dist/src/configuration/getSchemas/type-definition-generator/index.test.d.ts +2 -0
  148. package/dist/src/configuration/getSchemas/type-definition-generator/index.test.d.ts.map +1 -0
  149. package/dist/src/configuration/gql/buildExecute.d.ts +31 -0
  150. package/dist/src/configuration/gql/buildExecute.d.ts.map +1 -0
  151. package/dist/src/configuration/gql/buildExecute.test.d.ts +2 -0
  152. package/dist/src/configuration/gql/buildExecute.test.d.ts.map +1 -0
  153. package/dist/src/configuration/gql/gqlAuthOperations.d.ts +9 -0
  154. package/dist/src/configuration/gql/gqlAuthOperations.d.ts.map +1 -0
  155. package/dist/src/configuration/gql/gqlAuthOperations.test.d.ts +2 -0
  156. package/dist/src/configuration/gql/gqlAuthOperations.test.d.ts.map +1 -0
  157. package/dist/src/configuration/gql/handleGraphQLRequestFactory.d.ts +28 -0
  158. package/dist/src/configuration/gql/handleGraphQLRequestFactory.d.ts.map +1 -0
  159. package/dist/src/configuration/gql/handleGraphQLRequestFactory.test.d.ts +2 -0
  160. package/dist/src/configuration/gql/handleGraphQLRequestFactory.test.d.ts.map +1 -0
  161. package/dist/src/configuration/gql/handleGraphQLSubscriptionFactory.d.ts +19 -0
  162. package/dist/src/configuration/gql/handleGraphQLSubscriptionFactory.d.ts.map +1 -0
  163. package/dist/src/configuration/index.d.ts +719 -0
  164. package/dist/src/configuration/index.d.ts.map +1 -0
  165. package/dist/src/configuration/rest/generateOpenAPI.d.ts +19 -0
  166. package/dist/src/configuration/rest/generateOpenAPI.d.ts.map +1 -0
  167. package/dist/src/configuration/rest/handleRESTRequestFactory.d.ts +12 -0
  168. package/dist/src/configuration/rest/handleRESTRequestFactory.d.ts.map +1 -0
  169. package/dist/src/configuration/rest/handleRESTRequestFactory.test.d.ts +2 -0
  170. package/dist/src/configuration/rest/handleRESTRequestFactory.test.d.ts.map +1 -0
  171. package/dist/src/configuration/rest/index.d.ts +20 -0
  172. package/dist/src/configuration/rest/index.d.ts.map +1 -0
  173. package/dist/src/configuration/rest/openApiErrors.d.ts +71 -0
  174. package/dist/src/configuration/rest/openApiErrors.d.ts.map +1 -0
  175. package/dist/src/console/App.d.ts +3 -0
  176. package/dist/src/console/App.d.ts.map +1 -0
  177. package/dist/src/console/Login.d.ts +6 -0
  178. package/dist/src/console/Login.d.ts.map +1 -0
  179. package/dist/src/console/api.d.ts +17 -0
  180. package/dist/src/console/api.d.ts.map +1 -0
  181. package/dist/src/console/api.test.d.ts +2 -0
  182. package/dist/src/console/api.test.d.ts.map +1 -0
  183. package/dist/src/console/client.d.ts +67 -0
  184. package/dist/src/console/client.d.ts.map +1 -0
  185. package/dist/src/console/frontend.d.ts +8 -0
  186. package/dist/src/console/frontend.d.ts.map +1 -0
  187. package/dist/src/console/pages/ConfigPage.d.ts +2 -0
  188. package/dist/src/console/pages/ConfigPage.d.ts.map +1 -0
  189. package/dist/src/console/pages/RolesPage.d.ts +2 -0
  190. package/dist/src/console/pages/RolesPage.d.ts.map +1 -0
  191. package/dist/src/console/pages/StatusPage.d.ts +2 -0
  192. package/dist/src/console/pages/StatusPage.d.ts.map +1 -0
  193. package/dist/src/console/pages/TablesPage.d.ts +2 -0
  194. package/dist/src/console/pages/TablesPage.d.ts.map +1 -0
  195. package/dist/src/console/useApi.d.ts +8 -0
  196. package/dist/src/console/useApi.d.ts.map +1 -0
  197. package/dist/src/cron/index.d.ts +63 -0
  198. package/dist/src/cron/index.d.ts.map +1 -0
  199. package/dist/src/databases/auth/auth-operations.d.ts +11 -0
  200. package/dist/src/databases/auth/auth-operations.d.ts.map +1 -0
  201. package/dist/src/databases/auth/password.d.ts +3 -0
  202. package/dist/src/databases/auth/password.d.ts.map +1 -0
  203. package/dist/src/databases/auth/password.test.d.ts +2 -0
  204. package/dist/src/databases/auth/password.test.d.ts.map +1 -0
  205. package/dist/src/databases/common.d.ts +53 -0
  206. package/dist/src/databases/common.d.ts.map +1 -0
  207. package/dist/src/databases/common.test.d.ts +2 -0
  208. package/dist/src/databases/common.test.d.ts.map +1 -0
  209. package/dist/src/databases/core/executor.d.ts +10 -0
  210. package/dist/src/databases/core/executor.d.ts.map +1 -0
  211. package/dist/src/databases/core/executor.test.d.ts +2 -0
  212. package/dist/src/databases/core/executor.test.d.ts.map +1 -0
  213. package/dist/src/databases/core/function-mapping.d.ts +38 -0
  214. package/dist/src/databases/core/function-mapping.d.ts.map +1 -0
  215. package/dist/src/databases/core/identifier.d.ts +2 -0
  216. package/dist/src/databases/core/identifier.d.ts.map +1 -0
  217. package/dist/src/databases/core/identifier.test.d.ts +2 -0
  218. package/dist/src/databases/core/identifier.test.d.ts.map +1 -0
  219. package/dist/src/databases/core/query-builder.d.ts +64 -0
  220. package/dist/src/databases/core/query-builder.d.ts.map +1 -0
  221. package/dist/src/databases/core/query-builder.test.d.ts +2 -0
  222. package/dist/src/databases/core/query-builder.test.d.ts.map +1 -0
  223. package/dist/src/databases/directives.d.ts +16 -0
  224. package/dist/src/databases/directives.d.ts.map +1 -0
  225. package/dist/src/databases/directives.test.d.ts +2 -0
  226. package/dist/src/databases/directives.test.d.ts.map +1 -0
  227. package/dist/src/databases/engines/mssql/auth.d.ts +9 -0
  228. package/dist/src/databases/engines/mssql/auth.d.ts.map +1 -0
  229. package/dist/src/databases/engines/mssql/auth.test.d.ts +2 -0
  230. package/dist/src/databases/engines/mssql/auth.test.d.ts.map +1 -0
  231. package/dist/src/databases/engines/mssql/connection.d.ts +14 -0
  232. package/dist/src/databases/engines/mssql/connection.d.ts.map +1 -0
  233. package/dist/src/databases/engines/mssql/format.d.ts +5 -0
  234. package/dist/src/databases/engines/mssql/format.d.ts.map +1 -0
  235. package/dist/src/databases/engines/mssql/getStructure.d.ts +48 -0
  236. package/dist/src/databases/engines/mssql/getStructure.d.ts.map +1 -0
  237. package/dist/src/databases/engines/mssql/getViews.d.ts +7 -0
  238. package/dist/src/databases/engines/mssql/getViews.d.ts.map +1 -0
  239. package/dist/src/databases/engines/mssql/query/index.d.ts +7 -0
  240. package/dist/src/databases/engines/mssql/query/index.d.ts.map +1 -0
  241. package/dist/src/databases/engines/mssql/query/index.test.d.ts +2 -0
  242. package/dist/src/databases/engines/mssql/query/index.test.d.ts.map +1 -0
  243. package/dist/src/databases/engines/mysql/auth.d.ts +9 -0
  244. package/dist/src/databases/engines/mysql/auth.d.ts.map +1 -0
  245. package/dist/src/databases/engines/mysql/auth.test.d.ts +2 -0
  246. package/dist/src/databases/engines/mysql/auth.test.d.ts.map +1 -0
  247. package/dist/src/databases/engines/mysql/connection.d.ts +14 -0
  248. package/dist/src/databases/engines/mysql/connection.d.ts.map +1 -0
  249. package/dist/src/databases/engines/mysql/format.d.ts +5 -0
  250. package/dist/src/databases/engines/mysql/format.d.ts.map +1 -0
  251. package/dist/src/databases/engines/mysql/getStructure.d.ts +48 -0
  252. package/dist/src/databases/engines/mysql/getStructure.d.ts.map +1 -0
  253. package/dist/src/databases/engines/mysql/getViews.d.ts +7 -0
  254. package/dist/src/databases/engines/mysql/getViews.d.ts.map +1 -0
  255. package/dist/src/databases/engines/mysql/query/index.d.ts +7 -0
  256. package/dist/src/databases/engines/mysql/query/index.d.ts.map +1 -0
  257. package/dist/src/databases/engines/mysql/query/index.test.d.ts +2 -0
  258. package/dist/src/databases/engines/mysql/query/index.test.d.ts.map +1 -0
  259. package/dist/src/databases/engines/postgresql/auth.d.ts +9 -0
  260. package/dist/src/databases/engines/postgresql/auth.d.ts.map +1 -0
  261. package/dist/src/databases/engines/postgresql/auth.test.d.ts +2 -0
  262. package/dist/src/databases/engines/postgresql/auth.test.d.ts.map +1 -0
  263. package/dist/src/databases/engines/postgresql/connection.d.ts +14 -0
  264. package/dist/src/databases/engines/postgresql/connection.d.ts.map +1 -0
  265. package/dist/src/databases/engines/postgresql/format.d.ts +5 -0
  266. package/dist/src/databases/engines/postgresql/format.d.ts.map +1 -0
  267. package/dist/src/databases/engines/postgresql/getStructure.d.ts +48 -0
  268. package/dist/src/databases/engines/postgresql/getStructure.d.ts.map +1 -0
  269. package/dist/src/databases/engines/postgresql/getViews.d.ts +7 -0
  270. package/dist/src/databases/engines/postgresql/getViews.d.ts.map +1 -0
  271. package/dist/src/databases/engines/postgresql/query/index.d.ts +7 -0
  272. package/dist/src/databases/engines/postgresql/query/index.d.ts.map +1 -0
  273. package/dist/src/databases/engines/postgresql/query/index.test.d.ts +2 -0
  274. package/dist/src/databases/engines/postgresql/query/index.test.d.ts.map +1 -0
  275. package/dist/src/databases/engines/shared/claims.d.ts +2 -0
  276. package/dist/src/databases/engines/shared/claims.d.ts.map +1 -0
  277. package/dist/src/databases/engines/shared/types.d.ts +8 -0
  278. package/dist/src/databases/engines/shared/types.d.ts.map +1 -0
  279. package/dist/src/databases/high-level-operations.d.ts +146 -0
  280. package/dist/src/databases/high-level-operations.d.ts.map +1 -0
  281. package/dist/src/databases/high-level-operations.test.d.ts +2 -0
  282. package/dist/src/databases/high-level-operations.test.d.ts.map +1 -0
  283. package/dist/src/databases/index.d.ts +8 -0
  284. package/dist/src/databases/index.d.ts.map +1 -0
  285. package/dist/src/databases/metadata/structure.d.ts +56 -0
  286. package/dist/src/databases/metadata/structure.d.ts.map +1 -0
  287. package/dist/src/databases/schemaBuilder/convert.d.ts +2 -0
  288. package/dist/src/databases/schemaBuilder/convert.d.ts.map +1 -0
  289. package/dist/src/databases/schemaBuilder/generateCreateTable/index.d.ts +15 -0
  290. package/dist/src/databases/schemaBuilder/generateCreateTable/index.d.ts.map +1 -0
  291. package/dist/src/databases/schemaBuilder/generateCreateTable/index.test.d.ts +2 -0
  292. package/dist/src/databases/schemaBuilder/generateCreateTable/index.test.d.ts.map +1 -0
  293. package/dist/src/databases/schemaBuilder/generateCreateView/index.d.ts +18 -0
  294. package/dist/src/databases/schemaBuilder/generateCreateView/index.d.ts.map +1 -0
  295. package/dist/src/databases/schemaBuilder/generateInsert/index.d.ts +8 -0
  296. package/dist/src/databases/schemaBuilder/generateInsert/index.d.ts.map +1 -0
  297. package/dist/src/databases/schemaBuilder/generateInsert/index.test.d.ts +2 -0
  298. package/dist/src/databases/schemaBuilder/generateInsert/index.test.d.ts.map +1 -0
  299. package/dist/src/databases/schemaBuilder/generateSchemaCreation/index.d.ts +7 -0
  300. package/dist/src/databases/schemaBuilder/generateSchemaCreation/index.d.ts.map +1 -0
  301. package/dist/src/databases/schemaBuilder/generateSchemaCreation/index.test.d.ts +2 -0
  302. package/dist/src/databases/schemaBuilder/generateSchemaCreation/index.test.d.ts.map +1 -0
  303. package/dist/src/databases/schemaBuilder/mssqlToPostgres/convertView.d.ts +2 -0
  304. package/dist/src/databases/schemaBuilder/mssqlToPostgres/convertView.d.ts.map +1 -0
  305. package/dist/src/databases/schemaBuilder/utils.d.ts +8 -0
  306. package/dist/src/databases/schemaBuilder/utils.d.ts.map +1 -0
  307. package/dist/src/databases/sqlTypeUtils.d.ts +24 -0
  308. package/dist/src/databases/sqlTypeUtils.d.ts.map +1 -0
  309. package/dist/src/databases/sqlTypeUtils.test.d.ts +2 -0
  310. package/dist/src/databases/sqlTypeUtils.test.d.ts.map +1 -0
  311. package/dist/src/databases/transformers/data-transformers.d.ts +215 -0
  312. package/dist/src/databases/transformers/data-transformers.d.ts.map +1 -0
  313. package/dist/src/databases/transformers/data-transformers.test.d.ts +2 -0
  314. package/dist/src/databases/transformers/data-transformers.test.d.ts.map +1 -0
  315. package/dist/src/databases/transformers/genResolverName.d.ts +2 -0
  316. package/dist/src/databases/transformers/genResolverName.d.ts.map +1 -0
  317. package/dist/src/databases/transformers/genResolverName.test.d.ts +2 -0
  318. package/dist/src/databases/transformers/genResolverName.test.d.ts.map +1 -0
  319. package/dist/src/index.d.ts +139 -0
  320. package/dist/src/index.d.ts.map +1 -0
  321. package/dist/src/logging/index.d.ts +21 -0
  322. package/dist/src/logging/index.d.ts.map +1 -0
  323. package/dist/src/queues/kafka.d.ts +22 -0
  324. package/dist/src/queues/kafka.d.ts.map +1 -0
  325. package/dist/src/queues/rabbitmq.d.ts +34 -0
  326. package/dist/src/queues/rabbitmq.d.ts.map +1 -0
  327. package/dist/src/queues/rabbitmq.test.d.ts +2 -0
  328. package/dist/src/queues/rabbitmq.test.d.ts.map +1 -0
  329. package/dist/src/remoteREST/index.d.ts +13 -0
  330. package/dist/src/remoteREST/index.d.ts.map +1 -0
  331. package/dist/src/remoteREST/parse.d.ts +8 -0
  332. package/dist/src/remoteREST/parse.d.ts.map +1 -0
  333. package/dist/src/remoteREST/parse.test.d.ts +2 -0
  334. package/dist/src/remoteREST/parse.test.d.ts.map +1 -0
  335. package/dist/src/remoteREST/proxy.d.ts +6 -0
  336. package/dist/src/remoteREST/proxy.d.ts.map +1 -0
  337. package/dist/src/remoteREST/proxy.test.d.ts +2 -0
  338. package/dist/src/remoteREST/proxy.test.d.ts.map +1 -0
  339. package/dist/src/remoteREST/transform.d.ts +8 -0
  340. package/dist/src/remoteREST/transform.d.ts.map +1 -0
  341. package/dist/src/remoteREST/transform.test.d.ts +2 -0
  342. package/dist/src/remoteREST/transform.test.d.ts.map +1 -0
  343. package/dist/src/remoteREST/types.d.ts +37 -0
  344. package/dist/src/remoteREST/types.d.ts.map +1 -0
  345. package/dist/src/remoteSchemas/index.d.ts +13 -0
  346. package/dist/src/remoteSchemas/index.d.ts.map +1 -0
  347. package/dist/src/remoteSchemas/introspect.d.ts +7 -0
  348. package/dist/src/remoteSchemas/introspect.d.ts.map +1 -0
  349. package/dist/src/remoteSchemas/introspect.test.d.ts +2 -0
  350. package/dist/src/remoteSchemas/introspect.test.d.ts.map +1 -0
  351. package/dist/src/remoteSchemas/proxy.d.ts +7 -0
  352. package/dist/src/remoteSchemas/proxy.d.ts.map +1 -0
  353. package/dist/src/remoteSchemas/proxy.test.d.ts +2 -0
  354. package/dist/src/remoteSchemas/proxy.test.d.ts.map +1 -0
  355. package/dist/src/remoteSchemas/transform.d.ts +9 -0
  356. package/dist/src/remoteSchemas/transform.d.ts.map +1 -0
  357. package/dist/src/remoteSchemas/transform.test.d.ts +2 -0
  358. package/dist/src/remoteSchemas/transform.test.d.ts.map +1 -0
  359. package/dist/src/remoteSchemas/types.d.ts +41 -0
  360. package/dist/src/remoteSchemas/types.d.ts.map +1 -0
  361. package/dist/src/singletons/ai.d.ts +25 -0
  362. package/dist/src/singletons/ai.d.ts.map +1 -0
  363. package/dist/src/singletons/ai.test.d.ts +2 -0
  364. package/dist/src/singletons/ai.test.d.ts.map +1 -0
  365. package/dist/src/singletons/authentication.d.ts +4 -0
  366. package/dist/src/singletons/authentication.d.ts.map +1 -0
  367. package/dist/src/singletons/cache/index.d.ts +5 -0
  368. package/dist/src/singletons/cache/index.d.ts.map +1 -0
  369. package/dist/src/singletons/cache/lruCacheStore.d.ts +12 -0
  370. package/dist/src/singletons/cache/lruCacheStore.d.ts.map +1 -0
  371. package/dist/src/singletons/cache/lruCacheStore.test.d.ts +2 -0
  372. package/dist/src/singletons/cache/lruCacheStore.test.d.ts.map +1 -0
  373. package/dist/src/singletons/cache/redisCacheStore.d.ts +16 -0
  374. package/dist/src/singletons/cache/redisCacheStore.d.ts.map +1 -0
  375. package/dist/src/singletons/cache/redisClient.d.ts +3 -0
  376. package/dist/src/singletons/cache/redisClient.d.ts.map +1 -0
  377. package/dist/src/singletons/cache/registry.d.ts +7 -0
  378. package/dist/src/singletons/cache/registry.d.ts.map +1 -0
  379. package/dist/src/singletons/cache/registry.test.d.ts +2 -0
  380. package/dist/src/singletons/cache/registry.test.d.ts.map +1 -0
  381. package/dist/src/singletons/cache/types.d.ts +8 -0
  382. package/dist/src/singletons/cache/types.d.ts.map +1 -0
  383. package/dist/src/singletons/cron.d.ts +69 -0
  384. package/dist/src/singletons/cron.d.ts.map +1 -0
  385. package/dist/src/singletons/databases.d.ts +27 -0
  386. package/dist/src/singletons/databases.d.ts.map +1 -0
  387. package/dist/src/singletons/databases.test.d.ts +2 -0
  388. package/dist/src/singletons/databases.test.d.ts.map +1 -0
  389. package/dist/src/singletons/env.d.ts +494 -0
  390. package/dist/src/singletons/env.d.ts.map +1 -0
  391. package/dist/src/singletons/queues.d.ts +17 -0
  392. package/dist/src/singletons/queues.d.ts.map +1 -0
  393. package/dist/src/subscriptions/index.d.ts +4 -0
  394. package/dist/src/subscriptions/index.d.ts.map +1 -0
  395. package/dist/src/subscriptions/strategies/database.d.ts +12 -0
  396. package/dist/src/subscriptions/strategies/database.d.ts.map +1 -0
  397. package/dist/src/subscriptions/strategies/index.d.ts +12 -0
  398. package/dist/src/subscriptions/strategies/index.d.ts.map +1 -0
  399. package/dist/src/subscriptions/strategies/queue.d.ts +11 -0
  400. package/dist/src/subscriptions/strategies/queue.d.ts.map +1 -0
  401. package/dist/src/subscriptions/types.d.ts +67 -0
  402. package/dist/src/subscriptions/types.d.ts.map +1 -0
  403. package/dist/src/subscriptions/utils/polling.d.ts +17 -0
  404. package/dist/src/subscriptions/utils/polling.d.ts.map +1 -0
  405. package/dist/src/types/common.d.ts +44 -0
  406. package/dist/src/types/common.d.ts.map +1 -0
  407. package/dist/src/types/configuration.d.ts +28 -0
  408. package/dist/src/types/configuration.d.ts.map +1 -0
  409. package/dist/src/types/db.d.ts +43 -0
  410. package/dist/src/types/db.d.ts.map +1 -0
  411. package/dist/src/types/env.d.ts +2302 -0
  412. package/dist/src/types/env.d.ts.map +1 -0
  413. package/dist/src/types/env.test.d.ts +2 -0
  414. package/dist/src/types/env.test.d.ts.map +1 -0
  415. package/dist/src/types/resolver.d.ts +121 -0
  416. package/dist/src/types/resolver.d.ts.map +1 -0
  417. package/dist/src/types/zod/ai.d.ts +6 -0
  418. package/dist/src/types/zod/ai.d.ts.map +1 -0
  419. package/dist/src/types/zod/auth.d.ts +76 -0
  420. package/dist/src/types/zod/auth.d.ts.map +1 -0
  421. package/dist/src/types/zod/configuration.d.ts +1278 -0
  422. package/dist/src/types/zod/configuration.d.ts.map +1 -0
  423. package/dist/src/types/zod/configuration.test.d.ts +2 -0
  424. package/dist/src/types/zod/configuration.test.d.ts.map +1 -0
  425. package/dist/src/types/zod/cron.d.ts +32 -0
  426. package/dist/src/types/zod/cron.d.ts.map +1 -0
  427. package/dist/src/types/zod/db.d.ts +441 -0
  428. package/dist/src/types/zod/db.d.ts.map +1 -0
  429. package/dist/src/types/zod/db.test.d.ts +2 -0
  430. package/dist/src/types/zod/db.test.d.ts.map +1 -0
  431. package/dist/src/types/zod/mcp.d.ts +6 -0
  432. package/dist/src/types/zod/mcp.d.ts.map +1 -0
  433. package/dist/src/types/zod/operation.d.ts +9 -0
  434. package/dist/src/types/zod/operation.d.ts.map +1 -0
  435. package/dist/src/types/zod/queue.d.ts +656 -0
  436. package/dist/src/types/zod/queue.d.ts.map +1 -0
  437. package/dist/src/types/zod/queue.test.d.ts +2 -0
  438. package/dist/src/types/zod/queue.test.d.ts.map +1 -0
  439. package/dist/src/types/zod/remoteREST.d.ts +6 -0
  440. package/dist/src/types/zod/remoteREST.d.ts.map +1 -0
  441. package/dist/src/types/zod/remoteSchema.d.ts +6 -0
  442. package/dist/src/types/zod/remoteSchema.d.ts.map +1 -0
  443. package/dist/src/utils/benchmark.d.ts +2 -0
  444. package/dist/src/utils/benchmark.d.ts.map +1 -0
  445. package/dist/src/utils/event-emitter.d.ts +19 -0
  446. package/dist/src/utils/event-emitter.d.ts.map +1 -0
  447. package/dist/src/utils/responses.d.ts +19 -0
  448. package/dist/src/utils/responses.d.ts.map +1 -0
  449. package/dist/src/utils/responses.test.d.ts +2 -0
  450. package/dist/src/utils/responses.test.d.ts.map +1 -0
  451. package/dist/src/utils/safeJSONParse.d.ts +2 -0
  452. package/dist/src/utils/safeJSONParse.d.ts.map +1 -0
  453. package/dist/src/utils/selection.d.ts +3 -0
  454. package/dist/src/utils/selection.d.ts.map +1 -0
  455. package/dist/src/utils/selection.test.d.ts +2 -0
  456. package/dist/src/utils/selection.test.d.ts.map +1 -0
  457. package/dist/src/utils/sessionVariables.d.ts +47 -0
  458. package/dist/src/utils/sessionVariables.d.ts.map +1 -0
  459. package/dist/src/utils/sessionVariables.test.d.ts +2 -0
  460. package/dist/src/utils/sessionVariables.test.d.ts.map +1 -0
  461. package/dist/src/utils/writeSchema.d.ts +3 -0
  462. package/dist/src/utils/writeSchema.d.ts.map +1 -0
  463. package/dist/standalone.d.ts +3 -0
  464. package/dist/standalone.d.ts.map +1 -0
  465. package/dist/tsconfig.tsbuildinfo +1 -0
  466. package/package.json +119 -0
  467. package/playgrounds/console/index.html +25 -0
  468. package/playgrounds/graphiql/index.html +1144 -0
  469. package/playgrounds/scalar/index.html +19 -0
  470. package/src/ai/agent/agent.ts +222 -0
  471. package/src/ai/agent/index.ts +2 -0
  472. package/src/ai/agent/providers/anthropic.ts +113 -0
  473. package/src/ai/agent/providers/index.ts +62 -0
  474. package/src/ai/agent/providers/ollama.ts +128 -0
  475. package/src/ai/agent/providers/openai.ts +100 -0
  476. package/src/ai/agent/types.ts +65 -0
  477. package/src/ai/index.ts +8 -0
  478. package/src/ai/mcp/create-server.ts +444 -0
  479. package/src/ai/mcp/index.ts +80 -0
  480. package/src/ai/mcp/instructions.ts +103 -0
  481. package/src/ai/tools/agent.ts +111 -0
  482. package/src/ai/tools/core.ts +486 -0
  483. package/src/ai/tools/query-data.ts +109 -0
  484. package/src/analyzeQuery/analyzers/fragmentAnalyzer.ts +29 -0
  485. package/src/analyzeQuery/analyzers/operationAnalyzer.ts +50 -0
  486. package/src/analyzeQuery/analyzers/selectionAnalyzer.ts +135 -0
  487. package/src/analyzeQuery/analyzers/variableAnalyzer.ts +17 -0
  488. package/src/analyzeQuery/depthLimit.ts +124 -0
  489. package/src/analyzeQuery/directiveUtils.ts +99 -0
  490. package/src/analyzeQuery/index.ts +66 -0
  491. package/src/analyzeQuery/resolveVariables.ts +394 -0
  492. package/src/analyzeQuery/typeUtils.ts +47 -0
  493. package/src/analyzeQuery/types.ts +57 -0
  494. package/src/analyzeQuery/valueExtractors.ts +96 -0
  495. package/src/authentication/duration.ts +50 -0
  496. package/src/authentication/index.ts +34 -0
  497. package/src/authentication/jwt.ts +220 -0
  498. package/src/authentication/paseto.ts +256 -0
  499. package/src/authentication/tokenRepository.ts +75 -0
  500. package/src/authentication/types.ts +78 -0
  501. package/src/cli/seedAuth.ts +51 -0
  502. package/src/cli/seedAuthArgs.ts +50 -0
  503. package/src/config/helpers/cronHelper.ts +29 -0
  504. package/src/config/helpers/index.ts +8 -0
  505. package/src/config/helpers/operationHelper.ts +146 -0
  506. package/src/config/helpers/queueHelper.ts +27 -0
  507. package/src/config/index.ts +315 -0
  508. package/src/config/types/ai.ts +35 -0
  509. package/src/config/types/auth.ts +147 -0
  510. package/src/config/types/configuration.ts +69 -0
  511. package/src/config/types/cron.ts +140 -0
  512. package/src/config/types/db.ts +256 -0
  513. package/src/config/types/index.ts +129 -0
  514. package/src/config/types/operation.ts +253 -0
  515. package/src/config/types/queue.ts +172 -0
  516. package/src/config/types/remote-rest.ts +28 -0
  517. package/src/config/types/remote-schema.ts +39 -0
  518. package/src/config/types/virtual-columns.ts +157 -0
  519. package/src/configuration/getSchemas/index.ts +82 -0
  520. package/src/configuration/getSchemas/mergeEntities/index.ts +221 -0
  521. package/src/configuration/getSchemas/type-definition-generator/index.ts +511 -0
  522. package/src/configuration/gql/buildExecute.ts +54 -0
  523. package/src/configuration/gql/gqlAuthOperations.ts +150 -0
  524. package/src/configuration/gql/handleGraphQLRequestFactory.ts +415 -0
  525. package/src/configuration/gql/handleGraphQLSubscriptionFactory.ts +249 -0
  526. package/src/configuration/index.ts +138 -0
  527. package/src/configuration/rest/generateOpenAPI.ts +361 -0
  528. package/src/configuration/rest/handleRESTRequestFactory.ts +335 -0
  529. package/src/configuration/rest/index.ts +167 -0
  530. package/src/configuration/rest/openApiErrors.ts +106 -0
  531. package/src/console/api.ts +270 -0
  532. package/src/cron/index.ts +251 -0
  533. package/src/databases/auth/auth-operations.ts +36 -0
  534. package/src/databases/auth/password.ts +4 -0
  535. package/src/databases/common.ts +642 -0
  536. package/src/databases/core/executor.ts +97 -0
  537. package/src/databases/core/function-mapping.ts +176 -0
  538. package/src/databases/core/identifier.ts +8 -0
  539. package/src/databases/core/query-builder.ts +47 -0
  540. package/src/databases/directives.ts +112 -0
  541. package/src/databases/engines/mssql/auth.ts +112 -0
  542. package/src/databases/engines/mssql/connection.ts +151 -0
  543. package/src/databases/engines/mssql/format.ts +23 -0
  544. package/src/databases/engines/mssql/getStructure.ts +112 -0
  545. package/src/databases/engines/mssql/getViews.ts +17 -0
  546. package/src/databases/engines/mssql/query/index.ts +306 -0
  547. package/src/databases/engines/mysql/auth.ts +100 -0
  548. package/src/databases/engines/mysql/connection.ts +100 -0
  549. package/src/databases/engines/mysql/format.ts +23 -0
  550. package/src/databases/engines/mysql/getStructure.ts +116 -0
  551. package/src/databases/engines/mysql/getViews.ts +20 -0
  552. package/src/databases/engines/mysql/query/index.ts +291 -0
  553. package/src/databases/engines/postgresql/auth.ts +98 -0
  554. package/src/databases/engines/postgresql/connection.ts +99 -0
  555. package/src/databases/engines/postgresql/format.ts +23 -0
  556. package/src/databases/engines/postgresql/getStructure.ts +149 -0
  557. package/src/databases/engines/postgresql/getViews.ts +20 -0
  558. package/src/databases/engines/postgresql/query/index.ts +291 -0
  559. package/src/databases/engines/shared/claims.ts +26 -0
  560. package/src/databases/engines/shared/types.ts +7 -0
  561. package/src/databases/high-level-operations.ts +272 -0
  562. package/src/databases/index.ts +28 -0
  563. package/src/databases/metadata/structure.ts +12 -0
  564. package/src/databases/schemaBuilder/convert.ts +121 -0
  565. package/src/databases/schemaBuilder/generateCreateTable/index.ts +133 -0
  566. package/src/databases/schemaBuilder/generateCreateView/index.ts +101 -0
  567. package/src/databases/schemaBuilder/generateInsert/index.ts +47 -0
  568. package/src/databases/schemaBuilder/generateSchemaCreation/index.ts +29 -0
  569. package/src/databases/schemaBuilder/mssqlToPostgres/convertView.ts +47 -0
  570. package/src/databases/schemaBuilder/utils.ts +17 -0
  571. package/src/databases/sqlTypeUtils.ts +91 -0
  572. package/src/databases/transformers/data-transformers.ts +128 -0
  573. package/src/databases/transformers/genResolverName.ts +18 -0
  574. package/src/index.ts +461 -0
  575. package/src/logging/index.ts +69 -0
  576. package/src/queues/kafka.ts +409 -0
  577. package/src/queues/rabbitmq.ts +331 -0
  578. package/src/remoteREST/index.ts +46 -0
  579. package/src/remoteREST/parse.ts +68 -0
  580. package/src/remoteREST/proxy.ts +92 -0
  581. package/src/remoteREST/transform.ts +121 -0
  582. package/src/remoteREST/types.ts +38 -0
  583. package/src/remoteSchemas/index.ts +48 -0
  584. package/src/remoteSchemas/introspect.ts +44 -0
  585. package/src/remoteSchemas/proxy.ts +146 -0
  586. package/src/remoteSchemas/transform.ts +210 -0
  587. package/src/remoteSchemas/types.ts +43 -0
  588. package/src/singletons/ai.ts +91 -0
  589. package/src/singletons/authentication.ts +13 -0
  590. package/src/singletons/cache/index.ts +4 -0
  591. package/src/singletons/cache/lruCacheStore.ts +34 -0
  592. package/src/singletons/cache/redisCacheStore.ts +81 -0
  593. package/src/singletons/cache/redisClient.ts +12 -0
  594. package/src/singletons/cache/registry.ts +51 -0
  595. package/src/singletons/cache/types.ts +7 -0
  596. package/src/singletons/cron.ts +21 -0
  597. package/src/singletons/databases.ts +68 -0
  598. package/src/singletons/env.ts +3 -0
  599. package/src/singletons/queues.ts +101 -0
  600. package/src/subscriptions/index.ts +20 -0
  601. package/src/subscriptions/strategies/database.ts +68 -0
  602. package/src/subscriptions/strategies/index.ts +38 -0
  603. package/src/subscriptions/strategies/queue.ts +61 -0
  604. package/src/subscriptions/types.ts +74 -0
  605. package/src/subscriptions/utils/polling.ts +119 -0
  606. package/src/types/common.ts +57 -0
  607. package/src/types/configuration.ts +52 -0
  608. package/src/types/db.ts +87 -0
  609. package/src/types/env.ts +137 -0
  610. package/src/types/resolver.ts +181 -0
  611. package/src/types/zod/ai.ts +8 -0
  612. package/src/types/zod/auth.ts +96 -0
  613. package/src/types/zod/configuration.ts +46 -0
  614. package/src/types/zod/cron.ts +35 -0
  615. package/src/types/zod/db.ts +146 -0
  616. package/src/types/zod/mcp.ts +8 -0
  617. package/src/types/zod/operation.ts +37 -0
  618. package/src/types/zod/queue.ts +182 -0
  619. package/src/types/zod/remoteREST.ts +8 -0
  620. package/src/types/zod/remoteSchema.ts +11 -0
  621. package/src/utils/benchmark.ts +13 -0
  622. package/src/utils/event-emitter.ts +217 -0
  623. package/src/utils/responses.ts +42 -0
  624. package/src/utils/safeJSONParse.ts +10 -0
  625. package/src/utils/selection.ts +35 -0
  626. package/src/utils/sessionVariables.ts +131 -0
  627. package/src/utils/writeSchema.ts +13 -0
  628. package/standalone.ts +32 -0
@@ -0,0 +1,96 @@
1
+ import { isString } from "es-toolkit";
2
+
3
+ import { AuthConfigZod } from "../../config";
4
+ import type { TableFilter } from "../configuration";
5
+
6
+ // Re-export base types and schemas from the config module
7
+ export type {
8
+ DirectionUnion,
9
+ OrderByClause,
10
+ FilterCondition,
11
+ TablePermission,
12
+ RolePermission,
13
+ AuthConfig,
14
+ } from "../../config";
15
+
16
+ export {
17
+ DirectionUnionZod,
18
+ OrderByClauseZod,
19
+ FilterConditionZod,
20
+ TablePermissionZod,
21
+ RolePermissionZod,
22
+ AuthConfigZod,
23
+ } from "../../config";
24
+
25
+ // ============================================================================
26
+ // Permissions Normalization Transform
27
+ // ============================================================================
28
+
29
+ type TablePermissionsDictionary = Record<
30
+ string,
31
+ {
32
+ columns: "ALL" | string[];
33
+ } & TableFilter
34
+ >;
35
+
36
+ /**
37
+ * Auth schema with permissions-dictionary normalization.
38
+ * The transform normalizes tables from the three accepted input forms
39
+ * (string[], "ALL", Record<string, "ALL" | TablePermission>) into a single
40
+ * consistent runtime shape: either "ALL" or Record<string, { columns, ... }>.
41
+ */
42
+ export const AuthZod = AuthConfigZod.transform((val) => {
43
+ if (!val) return undefined;
44
+
45
+ return {
46
+ ...val,
47
+ permissions: Object.fromEntries(
48
+ Object.entries(val.permissions).map(([role, perms]) => {
49
+ let tablesComputed: "ALL" | TablePermissionsDictionary = {};
50
+
51
+ if (isString(perms.tables) && perms.tables === "ALL") {
52
+ tablesComputed = "ALL";
53
+ } else if (Array.isArray(perms.tables)) {
54
+ tablesComputed = perms.tables.reduce<TablePermissionsDictionary>(
55
+ (acc, table) => ({
56
+ ...acc,
57
+ [table.toLowerCase()]: { columns: "ALL" },
58
+ }),
59
+ {},
60
+ );
61
+ } else if (typeof perms.tables === "object" && perms.tables !== null) {
62
+ tablesComputed = Object.fromEntries(
63
+ Object.entries(perms.tables).map(([table, tablePerms]) => {
64
+ if (isString(tablePerms) && tablePerms === "ALL") {
65
+ return [table.toLowerCase(), { columns: "ALL" }];
66
+ } else if (
67
+ typeof tablePerms === "object" &&
68
+ tablePerms !== null &&
69
+ "columns" in tablePerms
70
+ ) {
71
+ return [
72
+ table.toLowerCase(),
73
+ {
74
+ columns: tablePerms.columns,
75
+ filter: tablePerms.filter,
76
+ orderBy: tablePerms.orderBy,
77
+ },
78
+ ];
79
+ } else {
80
+ return [table.toLowerCase(), { columns: "ALL" }];
81
+ }
82
+ }),
83
+ );
84
+ }
85
+
86
+ return [
87
+ role,
88
+ {
89
+ ...perms,
90
+ tables: tablesComputed,
91
+ },
92
+ ];
93
+ }),
94
+ ),
95
+ };
96
+ });
@@ -0,0 +1,46 @@
1
+ import { z } from "zod";
2
+
3
+ import { TokenStrategyZod } from "../../config";
4
+ import { AIZod } from "./ai";
5
+ import { AuthZod } from "./auth";
6
+ import { TypedCronJobZod } from "./cron";
7
+ import { DatabaseConnectionZod } from "./db";
8
+ import { OperationsZod } from "./operation";
9
+ import { QueueConfigZod } from "./queue";
10
+ import { RemoteRESTConfigZod } from "./remoteREST";
11
+ import { RemoteSchemaConfigZod } from "./remoteSchema";
12
+
13
+ export const ConfigurationZod = z
14
+ .object({
15
+ name: z.string(),
16
+ version: z.string(),
17
+ tokenStrategy: TokenStrategyZod.optional().default("jwt"),
18
+ databases: z.array(DatabaseConnectionZod).default([]),
19
+ queues: z.array(QueueConfigZod).optional().default([]),
20
+ cron: z.array(TypedCronJobZod).optional().default([]),
21
+ operations: OperationsZod.optional().default({}),
22
+ auth: AuthZod,
23
+ remoteSchemas: z.array(RemoteSchemaConfigZod).optional().default([]),
24
+ remoteREST: z.array(RemoteRESTConfigZod).optional().default([]),
25
+ ai: AIZod.optional().default({ enabled: false, endpoint: "/ai", mcp: { enabled: false } }),
26
+ })
27
+ .refine(
28
+ (data) => {
29
+ if (!data.auth?.enabled) return true;
30
+
31
+ return data.auth?.enabled && data.databases.find((db) => db.name === data.auth?.database);
32
+ },
33
+ {
34
+ message: "Database to store auth information is not found",
35
+ path: ["auth", "database"],
36
+ },
37
+ )
38
+ .transform((data) => ({
39
+ ...data,
40
+ // Pre-calculate enabled databases during parsing
41
+ enabledDatabases: data.databases.filter((d) => d.enabled),
42
+ auth: {
43
+ ...data.auth!,
44
+ databaseEntity: data.databases.find((db) => db.name === data.auth!.database)!,
45
+ },
46
+ }));
@@ -0,0 +1,35 @@
1
+ import { TypedCronJobZod as BaseTypedCronJobZod } from "../../config";
2
+ import { z } from "zod";
3
+
4
+ import type { DefaultVariables, TickContext } from "../../config";
5
+ import type { BackgroundCallbackOptions } from "../common";
6
+
7
+ // Re-export definition types from config package
8
+ export {
9
+ DefaultVariablesSchema,
10
+ createTypedCronJobZod,
11
+ type DefaultVariables,
12
+ type TickContext,
13
+ type TypedCronJob,
14
+ type CronJobType,
15
+ } from "../../config";
16
+
17
+ /**
18
+ * Tick callback function type - receives options object with gqlQuery and databases
19
+ * This is server-specific because it references runtime types (BackgroundCallbackOptions)
20
+ */
21
+ export type TickCallback<TVariables = DefaultVariables> = (
22
+ options: BackgroundCallbackOptions,
23
+ context: TickContext<TVariables>,
24
+ response?: { data: unknown; errors?: unknown[] },
25
+ ) => Promise<void> | void;
26
+
27
+ /**
28
+ * Server-specific Zod schema that extends the config schema with onTick callback
29
+ */
30
+ export const TypedCronJobZod = BaseTypedCronJobZod.extend({
31
+ /**
32
+ * Optional callback function executed on each tick
33
+ */
34
+ onTick: z.custom<TickCallback>().optional(),
35
+ });
@@ -0,0 +1,146 @@
1
+ import { z } from "zod";
2
+
3
+ import {
4
+ BunSQLConnectionOptionsZod,
5
+ DatabaseConnectionZod,
6
+ DatabaseSchemaConfigZod,
7
+ MSSQLConnectionOptionsZod,
8
+ TableRelationshipZod as TableRelationshipBaseZod,
9
+ } from "../../config";
10
+ import { genResolverName } from "../../databases/transformers/genResolverName";
11
+
12
+ // Re-export base types and schemas from the config module
13
+ export type {
14
+ BunSQLConnectionOptions,
15
+ DatabaseConfig,
16
+ DatabaseConnection,
17
+ DatabaseSchemaConfig,
18
+ DatabaseType,
19
+ MSSQLConnectionOptions,
20
+ TableRelationship,
21
+ TableSchemaConfig,
22
+ } from "../../config";
23
+
24
+ export {
25
+ BunSQLConnectionOptionsZod,
26
+ DatabaseConnectionZod,
27
+ DatabaseSchemaConfigZod,
28
+ MSSQLConnectionOptionsZod,
29
+ VirtualColumnZod,
30
+ } from "../../config";
31
+
32
+ /**
33
+ * Base column schema from database queries.
34
+ * Handles the isNullable type conversion (number to boolean) that different databases return.
35
+ */
36
+ export const TableColumnZod = z
37
+ .object({
38
+ name: z.string(),
39
+ dataType: z.string(),
40
+ isNullable: z.union([z.boolean(), z.number()]),
41
+ description: z.string().nullable().optional(),
42
+ })
43
+ .transform((val) => ({
44
+ name: val.name,
45
+ dataType: val.dataType,
46
+ isNullable: typeof val.isNullable === "boolean" ? val.isNullable : val.isNullable === 1,
47
+ description: val.description ?? null,
48
+ }));
49
+
50
+ /**
51
+ * Table relationship schema with computed dashedName property.
52
+ * Extends the base config schema with a dashedName transform for introspection use.
53
+ */
54
+ export const TableRelationshipEnhancedZod = TableRelationshipBaseZod.transform((rel) => ({
55
+ ...rel,
56
+ dashedName: `${rel.schema}_${rel.name}`,
57
+ }));
58
+
59
+ /**
60
+ * Base table schema from database queries (before enhancement).
61
+ * Contains raw database structure.
62
+ */
63
+ export const TableBaseZod = z.object({
64
+ schema: z.string(),
65
+ name: z.string(),
66
+ entityType: z.union([z.literal("table"), z.literal("view")]),
67
+ tableDescription: z.string().nullable().optional(),
68
+ columns: z.array(TableColumnZod),
69
+ foreignKeys: z.array(TableRelationshipEnhancedZod),
70
+ });
71
+
72
+ /**
73
+ * Enrichment function that adds computed properties to tables.
74
+ * Called during Zod transformation.
75
+ */
76
+ export const enrichTable = (table: z.output<typeof TableBaseZod>) => ({
77
+ ...table,
78
+ dashedName: `${table.schema}_${table.name}`,
79
+ dashedNameLS: `${table.schema}_${table.name}`.toLowerCase(),
80
+ dottedName: `${table.schema}.${table.name}`,
81
+ dottedQuotedName: `"${table.schema}"."${table.name}"`,
82
+ schemaName: genResolverName(table.schema, table.name, table.entityType),
83
+ });
84
+
85
+ /**
86
+ * Table schema with enriched properties (dashedName, dottedName, etc.).
87
+ * This is the primary table type used throughout the application.
88
+ */
89
+ export const TableZod = TableBaseZod.transform(enrichTable);
90
+
91
+ /**
92
+ * Stored procedure parameter schema.
93
+ */
94
+ export const StoredProcedureParameterZod = z.object({
95
+ name: z.string(),
96
+ dataType: z.string().nullable(),
97
+ maxLength: z.number(),
98
+ precision: z.number(),
99
+ scale: z.number(),
100
+ });
101
+
102
+ /**
103
+ * Base stored procedure schema from database queries (before enhancement).
104
+ * Contains raw database structure.
105
+ */
106
+ export const StoredProcedureBaseZod = z.object({
107
+ schema: z.string(),
108
+ name: z.string(),
109
+ signature: z.string().optional(),
110
+ type: z.string().optional(),
111
+ parameters: z.array(StoredProcedureParameterZod),
112
+ });
113
+
114
+ /**
115
+ * Stored procedure schema with enriched naming properties.
116
+ * Adds dashedName, dottedName, and other computed fields for consistent naming across the app.
117
+ * Uses signature for unique identification when function overloading exists.
118
+ */
119
+ export const StoredProcedureZod = StoredProcedureBaseZod.transform((sp) => {
120
+ const signatureSuffix = sp.signature ? `_${sp.signature.replace(/[^a-zA-Z0-9]/g, "_")}` : "";
121
+ const signatureSuffixClean = signatureSuffix.replace(/_+/g, "_").replace(/_$/, "");
122
+ return {
123
+ ...sp,
124
+ dashedName: `${sp.schema}_${sp.name}${signatureSuffixClean}`,
125
+ dashedNameLS: `${sp.schema}_${sp.name}${signatureSuffixClean}`.toLowerCase(),
126
+ dottedName: `${sp.schema}.${sp.name}`,
127
+ dottedQuotedName: `"${sp.schema}"."${sp.name}"`,
128
+ schemaName: genResolverName(sp.schema, sp.name + signatureSuffixClean, "sp"),
129
+ };
130
+ });
131
+
132
+ /**
133
+ * Database structure schema returned from database queries.
134
+ * Contains both tables and stored procedures with their enriched properties.
135
+ */
136
+ export const DatabaseStructureZod = z.object({
137
+ tables: z.array(TableZod).default([]),
138
+ storedProcedures: z.array(StoredProcedureZod).default([]),
139
+ });
140
+
141
+ // View schema
142
+ export const ViewZod = z.object({
143
+ schema: z.string(),
144
+ name: z.string(),
145
+ definition: z.string(),
146
+ });
@@ -0,0 +1,8 @@
1
+ import { z } from "zod";
2
+
3
+ import { MCPZod } from "../../config/types/ai";
4
+
5
+ export { MCPZod };
6
+
7
+ /** Runtime (z.output) type for MCP configuration */
8
+ export type MCPConfig = z.output<typeof MCPZod>;
@@ -0,0 +1,37 @@
1
+ import type { BackgroundCallbackOptions } from "../common";
2
+
3
+ // Re-export base types from the config module
4
+ export type {
5
+ DefaultInput,
6
+ BeforeRequestContext,
7
+ AfterRequestContext,
8
+ OperationRestConfig,
9
+ OperationGraphQLConfig,
10
+ OperationCacheConfig,
11
+ OperationInitHook,
12
+ OperationBeforeRequestHook,
13
+ OperationAfterRequestHook,
14
+ OperationHandler,
15
+ BaseOperation,
16
+ QueryOperation,
17
+ HandlerOperation,
18
+ TypedOperation,
19
+ GqlQueryResult,
20
+ Operation,
21
+ Operations,
22
+ } from "../../config";
23
+
24
+ // Re-export Zod schemas from config
25
+ export {
26
+ OperationRestConfigZod,
27
+ OperationGraphQLConfigZod,
28
+ OperationCacheConfigZod,
29
+ OperationZod,
30
+ OperationsZod,
31
+ } from "../../config";
32
+
33
+ /**
34
+ * Options passed to operation handlers and hooks
35
+ * This is the runtime version with fully typed Bun-specific options
36
+ */
37
+ export type OperationOptions<TRepository = unknown> = BackgroundCallbackOptions<TRepository>;
@@ -0,0 +1,182 @@
1
+ import { z } from "zod";
2
+
3
+ import {
4
+ BaseQueueConfigZod,
5
+ KafkaConnectionZod,
6
+ PublisherConfigZod,
7
+ RabbitMQConnectionZod,
8
+ ReconnectConfigZod,
9
+ SubscriberConfigZod,
10
+ TopicConfigZod,
11
+ } from "../../config";
12
+ import type { CacheContext, SubscriberHandler } from "../../config";
13
+
14
+ // Re-export base types and schemas from the config module
15
+ export type {
16
+ ReconnectConfig,
17
+ PublisherConfig,
18
+ SubscriberConfig,
19
+ TopicConfig,
20
+ CacheContext,
21
+ SubscriberHandler,
22
+ RabbitMQConnection,
23
+ KafkaConnection,
24
+ } from "../../config";
25
+
26
+ export {
27
+ ReconnectConfigZod,
28
+ PublisherConfigZod,
29
+ SubscriberConfigZod,
30
+ TopicConfigZod,
31
+ BaseQueueConfigZod,
32
+ RabbitMQConnectionZod,
33
+ KafkaConnectionZod,
34
+ } from "../../config";
35
+
36
+ // ============================================================================
37
+ // RabbitMQ Configuration (extends base)
38
+ // ============================================================================
39
+
40
+ const RabbitMQConfigZod = BaseQueueConfigZod.extend({
41
+ type: z.literal("rabbitmq"),
42
+ /** Connection config or AMQP URL string */
43
+ connection: z.union([z.url(), RabbitMQConnectionZod]),
44
+ });
45
+
46
+ // ============================================================================
47
+ // Kafka Configuration (extends base)
48
+ // ============================================================================
49
+
50
+ const KafkaConfigZod = BaseQueueConfigZod.extend({
51
+ type: z.literal("kafka"),
52
+ /** Connection config or broker string "host:port" */
53
+ connection: z.union([z.string(), KafkaConnectionZod]),
54
+ });
55
+
56
+ // ============================================================================
57
+ // Union Type with Transform for Backward Compatibility
58
+ // ============================================================================
59
+
60
+ /**
61
+ * Transforms user-facing flat config (publishers/subscribers/topics) into
62
+ * the internal runtime shape with derived exchanges[] and queues[] arrays.
63
+ */
64
+ const transformQueueConfig = <T extends z.infer<typeof BaseQueueConfigZod>>(
65
+ config: T,
66
+ ): T & {
67
+ exchanges: Array<{
68
+ name: string;
69
+ type: "topic" | "direct" | "fanout" | "headers";
70
+ options?: { durable?: boolean; autoDelete?: boolean };
71
+ publishers: Array<{
72
+ name: string;
73
+ resolverName: string;
74
+ routingKey: string;
75
+ options?: { persistent?: boolean; headers?: Record<string, string> };
76
+ }>;
77
+ }>;
78
+ queues: Array<{
79
+ name: string;
80
+ queue?: string;
81
+ groupId?: string;
82
+ bindings: Array<{ exchange: string; pattern: string }>;
83
+ queueOptions?: { durable?: boolean; autoDelete?: boolean };
84
+ handler?: SubscriberHandler;
85
+ }>;
86
+ } => {
87
+ // Group publishers by topic to create exchanges
88
+ const topicPublishers = new Map<
89
+ string,
90
+ Array<{ key: string; config: (typeof config.publishers)[string] }>
91
+ >();
92
+
93
+ Object.entries(config.publishers).forEach(([key, pub]) => {
94
+ const existing = topicPublishers.get(pub.topic) || [];
95
+ existing.push({ key, config: pub });
96
+ topicPublishers.set(pub.topic, existing);
97
+ });
98
+
99
+ // Create exchanges from topics
100
+ const exchanges = Array.from(topicPublishers.entries()).map(([topic, pubs]) => {
101
+ const topicConfig = config.topics[topic];
102
+ return {
103
+ name: topic,
104
+ type: topicConfig?.type || ("topic" as const),
105
+ options: topicConfig
106
+ ? { durable: topicConfig.durable, autoDelete: topicConfig.autoDelete }
107
+ : undefined,
108
+ publishers: pubs.map((p) => ({
109
+ name: p.key,
110
+ resolverName: `${config.name}_${p.key}`,
111
+ routingKey: p.config.routingKey || "",
112
+ options: {
113
+ persistent: p.config.persistent,
114
+ headers: p.config.headers,
115
+ },
116
+ })),
117
+ };
118
+ });
119
+
120
+ // Create queues from subscribers
121
+ const queues = Object.entries(config.subscribers).map(([key, sub]) => ({
122
+ name: key,
123
+ queue: sub.queue,
124
+ groupId: sub.group,
125
+ bindings: [{ exchange: sub.topic, pattern: sub.pattern }],
126
+ queueOptions: {
127
+ durable: sub.durable,
128
+ autoDelete: sub.autoDelete,
129
+ },
130
+ handler: sub.handler,
131
+ }));
132
+
133
+ return {
134
+ ...config,
135
+ exchanges,
136
+ queues,
137
+ };
138
+ };
139
+
140
+ const RabbitMQConfigTransformed = RabbitMQConfigZod.transform(transformQueueConfig);
141
+ const KafkaConfigTransformed = KafkaConfigZod.transform(transformQueueConfig);
142
+
143
+ export const QueueConfigZod = z.discriminatedUnion("type", [
144
+ RabbitMQConfigTransformed,
145
+ KafkaConfigTransformed,
146
+ ]);
147
+
148
+ export type QueueConfig = z.infer<typeof QueueConfigZod>;
149
+ export type RabbitMQConfig = z.infer<typeof RabbitMQConfigTransformed>;
150
+ export type KafkaConfig = z.infer<typeof KafkaConfigTransformed>;
151
+
152
+ /** Pre-transform input types — the shape users write in graphoria.ts */
153
+ export type RabbitMQConfigInput = z.input<typeof RabbitMQConfigTransformed>;
154
+ export type KafkaConfigInput = z.input<typeof KafkaConfigTransformed>;
155
+
156
+ // ============================================================================
157
+ // Transform helpers — Convert simplified config to internal format
158
+ // ============================================================================
159
+
160
+ /**
161
+ * Derives unique topics from publishers and subscribers
162
+ */
163
+ export const deriveTopics = (config: QueueConfig): string[] => {
164
+ const topics = new Set<string>();
165
+
166
+ Object.values(config.publishers).forEach((pub) => topics.add(pub.topic));
167
+ Object.values(config.subscribers).forEach((sub) => topics.add(sub.topic));
168
+
169
+ return Array.from(topics);
170
+ };
171
+
172
+ /**
173
+ * Get publisher resolver name
174
+ */
175
+ export const getPublisherResolverName = (queueName: string, publisherKey: string): string =>
176
+ `${queueName}_${publisherKey}`;
177
+
178
+ /**
179
+ * Get subscriber resolver name
180
+ */
181
+ export const getSubscriberResolverName = (queueName: string, subscriberKey: string): string =>
182
+ `${queueName}_${subscriberKey}`;
@@ -0,0 +1,8 @@
1
+ import { z } from "zod";
2
+
3
+ import { RemoteRESTConfigZod } from "../../config/types/remote-rest";
4
+
5
+ export { RemoteRESTConfigZod };
6
+
7
+ /** Runtime (z.output) type for remote REST config */
8
+ export type RemoteRESTConfig = z.output<typeof RemoteRESTConfigZod>;
@@ -0,0 +1,11 @@
1
+ import { z } from "zod";
2
+
3
+ import {
4
+ RemoteSchemaConfigZod,
5
+ RemoteSchemaIntrospectionConfigZod,
6
+ } from "../../config/types/remote-schema";
7
+
8
+ export { RemoteSchemaConfigZod, RemoteSchemaIntrospectionConfigZod };
9
+
10
+ /** Runtime (z.output) type for remote schema config */
11
+ export type RemoteSchemaConfig = z.output<typeof RemoteSchemaConfigZod>;
@@ -0,0 +1,13 @@
1
+ import { logger } from "../logging";
2
+
3
+ export const benchmark = async <T>(fn: () => Promise<T>): Promise<T> => {
4
+ const start = Bun.nanoseconds();
5
+
6
+ const result = await fn();
7
+
8
+ const finish = Bun.nanoseconds();
9
+
10
+ logger("benchmark").debug({ durationMs: (finish - start) / 1e6 }, "execution time");
11
+
12
+ return result;
13
+ };