@graphoria/server 0.1.4 → 0.2.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 (123) hide show
  1. package/dist/src/analyzeQuery/resolveVariables.d.ts.map +1 -1
  2. package/dist/src/config/helpers/operationHelper.d.ts +60 -6
  3. package/dist/src/config/helpers/operationHelper.d.ts.map +1 -1
  4. package/dist/src/config/helpers/operationHelper.test.d.ts +2 -0
  5. package/dist/src/config/helpers/operationHelper.test.d.ts.map +1 -0
  6. package/dist/src/config/index.d.ts +65 -60
  7. package/dist/src/config/index.d.ts.map +1 -1
  8. package/dist/src/config/types/ai.d.ts +9 -3
  9. package/dist/src/config/types/ai.d.ts.map +1 -1
  10. package/dist/src/config/types/auth.d.ts +55 -15
  11. package/dist/src/config/types/auth.d.ts.map +1 -1
  12. package/dist/src/config/types/cron.d.ts +96 -2
  13. package/dist/src/config/types/cron.d.ts.map +1 -1
  14. package/dist/src/config/types/db.d.ts +186 -24
  15. package/dist/src/config/types/db.d.ts.map +1 -1
  16. package/dist/src/config/types/index.d.ts +3 -3
  17. package/dist/src/config/types/index.d.ts.map +1 -1
  18. package/dist/src/config/types/operation.d.ts +49 -17
  19. package/dist/src/config/types/operation.d.ts.map +1 -1
  20. package/dist/src/config/types/queue.d.ts +59 -12
  21. package/dist/src/config/types/queue.d.ts.map +1 -1
  22. package/dist/src/config/types/remote-rest.d.ts +10 -1
  23. package/dist/src/config/types/remote-rest.d.ts.map +1 -1
  24. package/dist/src/config/types/remote-schema.d.ts +13 -3
  25. package/dist/src/config/types/remote-schema.d.ts.map +1 -1
  26. package/dist/src/config/types/virtual-columns.d.ts +1 -1
  27. package/dist/src/config/types/virtual-columns.d.ts.map +1 -1
  28. package/dist/src/configuration/getSchemas/index.d.ts +52 -4
  29. package/dist/src/configuration/getSchemas/index.d.ts.map +1 -1
  30. package/dist/src/configuration/getSchemas/mergeEntities/index.d.ts +26 -2
  31. package/dist/src/configuration/getSchemas/mergeEntities/index.d.ts.map +1 -1
  32. package/dist/src/configuration/getSchemas/mergeEntities/index.test.d.ts +2 -0
  33. package/dist/src/configuration/getSchemas/mergeEntities/index.test.d.ts.map +1 -0
  34. package/dist/src/configuration/getSchemas/type-definition-generator/index.d.ts.map +1 -1
  35. package/dist/src/configuration/index.d.ts +40 -4
  36. package/dist/src/configuration/index.d.ts.map +1 -1
  37. package/dist/src/configuration/rest/generateOpenAPI.d.ts.map +1 -1
  38. package/dist/src/configuration/rest/handleRESTRequestFactory.d.ts.map +1 -1
  39. package/dist/src/databases/common.d.ts +3 -1
  40. package/dist/src/databases/common.d.ts.map +1 -1
  41. package/dist/src/databases/core/query-builder.d.ts +7 -1
  42. package/dist/src/databases/core/query-builder.d.ts.map +1 -1
  43. package/dist/src/databases/directives.d.ts.map +1 -1
  44. package/dist/src/databases/engines/mssql/connection.d.ts +1 -1
  45. package/dist/src/databases/engines/mssql/connection.d.ts.map +1 -1
  46. package/dist/src/databases/engines/mssql/getStructure.d.ts +7 -0
  47. package/dist/src/databases/engines/mssql/getStructure.d.ts.map +1 -1
  48. package/dist/src/databases/engines/mssql/query/index.d.ts.map +1 -1
  49. package/dist/src/databases/engines/mysql/connection.d.ts.map +1 -1
  50. package/dist/src/databases/engines/mysql/getStructure.d.ts +7 -0
  51. package/dist/src/databases/engines/mysql/getStructure.d.ts.map +1 -1
  52. package/dist/src/databases/engines/mysql/placeholders.d.ts +22 -0
  53. package/dist/src/databases/engines/mysql/placeholders.d.ts.map +1 -0
  54. package/dist/src/databases/engines/mysql/placeholders.test.d.ts +2 -0
  55. package/dist/src/databases/engines/mysql/placeholders.test.d.ts.map +1 -0
  56. package/dist/src/databases/engines/mysql/query/index.d.ts.map +1 -1
  57. package/dist/src/databases/engines/postgresql/getStructure.d.ts +7 -0
  58. package/dist/src/databases/engines/postgresql/getStructure.d.ts.map +1 -1
  59. package/dist/src/databases/engines/postgresql/query/index.d.ts.map +1 -1
  60. package/dist/src/databases/high-level-operations.d.ts +14 -1
  61. package/dist/src/databases/high-level-operations.d.ts.map +1 -1
  62. package/dist/src/databases/metadata/structure.d.ts +7 -0
  63. package/dist/src/databases/metadata/structure.d.ts.map +1 -1
  64. package/dist/src/databases/sqlTypeUtils.d.ts.map +1 -1
  65. package/dist/src/databases/transformers/data-transformers.d.ts +39 -2
  66. package/dist/src/databases/transformers/data-transformers.d.ts.map +1 -1
  67. package/dist/src/singletons/env.d.ts +21 -3
  68. package/dist/src/singletons/env.d.ts.map +1 -1
  69. package/dist/src/types/configuration.d.ts +1 -1
  70. package/dist/src/types/configuration.d.ts.map +1 -1
  71. package/dist/src/types/env.d.ts +127 -51
  72. package/dist/src/types/env.d.ts.map +1 -1
  73. package/dist/src/types/resolver.d.ts +12 -2
  74. package/dist/src/types/resolver.d.ts.map +1 -1
  75. package/dist/src/types/zod/auth.d.ts +6 -6
  76. package/dist/src/types/zod/configuration.d.ts +85 -45
  77. package/dist/src/types/zod/configuration.d.ts.map +1 -1
  78. package/dist/src/types/zod/cron.d.ts +1 -1
  79. package/dist/src/types/zod/cron.d.ts.map +1 -1
  80. package/dist/src/types/zod/db.d.ts +167 -8
  81. package/dist/src/types/zod/db.d.ts.map +1 -1
  82. package/dist/src/types/zod/queue.d.ts +26 -26
  83. package/dist/src/types/zod/strict-keys.test.d.ts +2 -0
  84. package/dist/src/types/zod/strict-keys.test.d.ts.map +1 -0
  85. package/dist/tsconfig.tsbuildinfo +1 -1
  86. package/package.json +1 -1
  87. package/src/analyzeQuery/resolveVariables.ts +37 -7
  88. package/src/config/helpers/operationHelper.ts +146 -5
  89. package/src/config/index.ts +139 -62
  90. package/src/config/types/ai.ts +2 -2
  91. package/src/config/types/auth.ts +37 -6
  92. package/src/config/types/cron.ts +1 -1
  93. package/src/config/types/db.ts +56 -9
  94. package/src/config/types/index.ts +5 -0
  95. package/src/config/types/operation.ts +49 -9
  96. package/src/config/types/queue.ts +8 -8
  97. package/src/config/types/remote-rest.ts +1 -1
  98. package/src/config/types/remote-schema.ts +2 -2
  99. package/src/config/types/virtual-columns.ts +1 -1
  100. package/src/configuration/getSchemas/mergeEntities/index.ts +6 -0
  101. package/src/configuration/getSchemas/type-definition-generator/index.ts +13 -4
  102. package/src/configuration/rest/generateOpenAPI.ts +5 -9
  103. package/src/configuration/rest/handleRESTRequestFactory.ts +40 -14
  104. package/src/databases/common.ts +279 -83
  105. package/src/databases/directives.ts +26 -8
  106. package/src/databases/engines/mssql/connection.ts +1 -1
  107. package/src/databases/engines/mssql/getStructure.ts +1 -0
  108. package/src/databases/engines/mssql/query/index.ts +29 -11
  109. package/src/databases/engines/mysql/auth.ts +2 -2
  110. package/src/databases/engines/mysql/connection.ts +5 -4
  111. package/src/databases/engines/mysql/getStructure.ts +61 -29
  112. package/src/databases/engines/mysql/placeholders.ts +84 -0
  113. package/src/databases/engines/mysql/query/index.ts +49 -4
  114. package/src/databases/engines/postgresql/getStructure.ts +1 -0
  115. package/src/databases/engines/postgresql/query/index.ts +40 -2
  116. package/src/databases/high-level-operations.ts +25 -0
  117. package/src/databases/sqlTypeUtils.ts +3 -1
  118. package/src/subscriptions/strategies/index.ts +1 -1
  119. package/src/subscriptions/strategies/queue.ts +1 -1
  120. package/src/types/configuration.ts +7 -1
  121. package/src/types/resolver.ts +17 -1
  122. package/src/types/zod/configuration.ts +1 -1
  123. package/src/types/zod/db.ts +4 -0
@@ -1,6 +1,6 @@
1
1
  import type { RemoteRESTResolved, RemoteRESTRoute } from "../remoteREST/types";
2
2
  import type { RemoteSchemaResolved } from "../remoteSchemas/types";
3
- import type { Publisher } from "./configuration";
3
+ import type { Publisher, Subscriber } from "./configuration";
4
4
  import type { ProcedureResolver, TableResolver } from "./db";
5
5
  import type { TypedOperation } from "./zod/operation";
6
6
 
@@ -14,6 +14,8 @@ export enum EntitySource {
14
14
  STORED_PROCEDURE = "stored_procedure",
15
15
  /** Message queue (RabbitMQ, Kafka, etc.) */
16
16
  QUEUE_PUBLISHER = "queue_publisher",
17
+ /** Message queue subscriber (exposed as a GraphQL subscription) */
18
+ QUEUE_SUBSCRIBER = "queue_subscriber",
17
19
  /** Authentication mutations (login, refresh, etc.) */
18
20
  AUTH = "auth",
19
21
  /** Custom operation handlers */
@@ -57,6 +59,14 @@ export type QueueResolverEntry = ResolverEntryBase & {
57
59
  resolver: Publisher;
58
60
  };
59
61
 
62
+ /**
63
+ * Resolver entry for message queue subscribers
64
+ */
65
+ export type QueueSubscriberResolverEntry = ResolverEntryBase & {
66
+ source: EntitySource.QUEUE_SUBSCRIBER;
67
+ resolver: Subscriber;
68
+ };
69
+
60
70
  /**
61
71
  * Resolver entry for authentication operations
62
72
  */
@@ -114,6 +124,7 @@ export type ResolverEntry =
114
124
  | TableResolverEntry
115
125
  | StoredProcedureResolverEntry
116
126
  | QueueResolverEntry
127
+ | QueueSubscriberResolverEntry
117
128
  | AuthResolverEntry
118
129
  | OperationResolverEntry
119
130
  | RemoteSchemaResolverEntry
@@ -144,6 +155,11 @@ export const createResolverEntry = {
144
155
  resolver,
145
156
  }),
146
157
 
158
+ queueSubscriber: (resolver: Subscriber): QueueSubscriberResolverEntry => ({
159
+ source: EntitySource.QUEUE_SUBSCRIBER,
160
+ resolver,
161
+ }),
162
+
147
163
  auth: (
148
164
  name: string,
149
165
  operation: AuthResolverEntry["resolver"]["operation"],
@@ -11,7 +11,7 @@ import { RemoteRESTConfigZod } from "./remoteREST";
11
11
  import { RemoteSchemaConfigZod } from "./remoteSchema";
12
12
 
13
13
  export const ConfigurationZod = z
14
- .object({
14
+ .strictObject({
15
15
  name: z.string(),
16
16
  version: z.string(),
17
17
  tokenStrategy: TokenStrategyZod.optional().default("jwt"),
@@ -38,6 +38,7 @@ export const TableColumnZod = z
38
38
  name: z.string(),
39
39
  dataType: z.string(),
40
40
  isNullable: z.union([z.boolean(), z.number()]),
41
+ collation: z.string().nullable().optional(),
41
42
  description: z.string().nullable().optional(),
42
43
  })
43
44
  .transform((val) => ({
@@ -45,6 +46,9 @@ export const TableColumnZod = z
45
46
  dataType: val.dataType,
46
47
  isNullable: typeof val.isNullable === "boolean" ? val.isNullable : val.isNullable === 1,
47
48
  description: val.description ?? null,
49
+ // Optional so config/virtual columns (which never carry a DB collation) stay assignable to
50
+ // TableColumn; a non-character column reports no collation and is simply omitted here.
51
+ ...(val.collation ? { collation: val.collation } : {}),
48
52
  }));
49
53
 
50
54
  /**