@carlonicora/nestjs-neo4jsonapi 1.62.7 → 1.63.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 (216) hide show
  1. package/dist/agents/agents.modules.d.ts.map +1 -1
  2. package/dist/agents/agents.modules.js +3 -0
  3. package/dist/agents/agents.modules.js.map +1 -1
  4. package/dist/agents/chatbot/chatbot.module.d.ts +3 -0
  5. package/dist/agents/chatbot/chatbot.module.d.ts.map +1 -0
  6. package/dist/agents/chatbot/chatbot.module.js +65 -0
  7. package/dist/agents/chatbot/chatbot.module.js.map +1 -0
  8. package/dist/agents/chatbot/interfaces/chatbot.response.interface.d.ts +25 -0
  9. package/dist/agents/chatbot/interfaces/chatbot.response.interface.d.ts.map +1 -0
  10. package/dist/agents/chatbot/interfaces/chatbot.response.interface.js +3 -0
  11. package/dist/agents/chatbot/interfaces/chatbot.response.interface.js.map +1 -0
  12. package/dist/agents/chatbot/interfaces/graph.catalog.interface.d.ts +50 -0
  13. package/dist/agents/chatbot/interfaces/graph.catalog.interface.d.ts.map +1 -0
  14. package/dist/agents/chatbot/interfaces/graph.catalog.interface.js +3 -0
  15. package/dist/agents/chatbot/interfaces/graph.catalog.interface.js.map +1 -0
  16. package/dist/agents/chatbot/prompts/chatbot.system.prompt.d.ts +3 -0
  17. package/dist/agents/chatbot/prompts/chatbot.system.prompt.d.ts.map +1 -0
  18. package/dist/agents/chatbot/prompts/chatbot.system.prompt.js +60 -0
  19. package/dist/agents/chatbot/prompts/chatbot.system.prompt.js.map +1 -0
  20. package/dist/agents/chatbot/repositories/user-modules.repository.d.ts +28 -0
  21. package/dist/agents/chatbot/repositories/user-modules.repository.d.ts.map +1 -0
  22. package/dist/agents/chatbot/repositories/user-modules.repository.js +76 -0
  23. package/dist/agents/chatbot/repositories/user-modules.repository.js.map +1 -0
  24. package/dist/agents/chatbot/services/chatbot.index.manager.d.ts +17 -0
  25. package/dist/agents/chatbot/services/chatbot.index.manager.d.ts.map +1 -0
  26. package/dist/agents/chatbot/services/chatbot.index.manager.js +84 -0
  27. package/dist/agents/chatbot/services/chatbot.index.manager.js.map +1 -0
  28. package/dist/agents/chatbot/services/chatbot.search.service.d.ts +46 -0
  29. package/dist/agents/chatbot/services/chatbot.search.service.d.ts.map +1 -0
  30. package/dist/agents/chatbot/services/chatbot.search.service.js +148 -0
  31. package/dist/agents/chatbot/services/chatbot.search.service.js.map +1 -0
  32. package/dist/agents/chatbot/services/chatbot.service.d.ts +36 -0
  33. package/dist/agents/chatbot/services/chatbot.service.d.ts.map +1 -0
  34. package/dist/agents/chatbot/services/chatbot.service.js +220 -0
  35. package/dist/agents/chatbot/services/chatbot.service.js.map +1 -0
  36. package/dist/agents/chatbot/services/descriptor.source.d.ts +18 -0
  37. package/dist/agents/chatbot/services/descriptor.source.d.ts.map +1 -0
  38. package/dist/agents/chatbot/services/descriptor.source.js +41 -0
  39. package/dist/agents/chatbot/services/descriptor.source.js.map +1 -0
  40. package/dist/agents/chatbot/services/field-formatting.d.ts +18 -0
  41. package/dist/agents/chatbot/services/field-formatting.d.ts.map +1 -0
  42. package/dist/agents/chatbot/services/field-formatting.js +43 -0
  43. package/dist/agents/chatbot/services/field-formatting.js.map +1 -0
  44. package/dist/agents/chatbot/services/graph.catalog.service.d.ts +60 -0
  45. package/dist/agents/chatbot/services/graph.catalog.service.d.ts.map +1 -0
  46. package/dist/agents/chatbot/services/graph.catalog.service.js +217 -0
  47. package/dist/agents/chatbot/services/graph.catalog.service.js.map +1 -0
  48. package/dist/agents/chatbot/services/humanize-tool.d.ts +9 -0
  49. package/dist/agents/chatbot/services/humanize-tool.d.ts.map +1 -0
  50. package/dist/agents/chatbot/services/humanize-tool.js +35 -0
  51. package/dist/agents/chatbot/services/humanize-tool.js.map +1 -0
  52. package/dist/agents/chatbot/tools/describe-entity.tool.d.ts +14 -0
  53. package/dist/agents/chatbot/tools/describe-entity.tool.d.ts.map +1 -0
  54. package/dist/agents/chatbot/tools/describe-entity.tool.js +63 -0
  55. package/dist/agents/chatbot/tools/describe-entity.tool.js.map +1 -0
  56. package/dist/agents/chatbot/tools/read-entity.tool.d.ts +16 -0
  57. package/dist/agents/chatbot/tools/read-entity.tool.d.ts.map +1 -0
  58. package/dist/agents/chatbot/tools/read-entity.tool.js +102 -0
  59. package/dist/agents/chatbot/tools/read-entity.tool.js.map +1 -0
  60. package/dist/agents/chatbot/tools/resolve-entity.tool.d.ts +16 -0
  61. package/dist/agents/chatbot/tools/resolve-entity.tool.d.ts.map +1 -0
  62. package/dist/agents/chatbot/tools/resolve-entity.tool.js +48 -0
  63. package/dist/agents/chatbot/tools/resolve-entity.tool.js.map +1 -0
  64. package/dist/agents/chatbot/tools/search-entities.tool.d.ts +20 -0
  65. package/dist/agents/chatbot/tools/search-entities.tool.d.ts.map +1 -0
  66. package/dist/agents/chatbot/tools/search-entities.tool.js +122 -0
  67. package/dist/agents/chatbot/tools/search-entities.tool.js.map +1 -0
  68. package/dist/agents/chatbot/tools/tool.factory.d.ts +29 -0
  69. package/dist/agents/chatbot/tools/tool.factory.d.ts.map +1 -0
  70. package/dist/agents/chatbot/tools/tool.factory.js +72 -0
  71. package/dist/agents/chatbot/tools/tool.factory.js.map +1 -0
  72. package/dist/agents/chatbot/tools/traverse.tool.d.ts +58 -0
  73. package/dist/agents/chatbot/tools/traverse.tool.d.ts.map +1 -0
  74. package/dist/agents/chatbot/tools/traverse.tool.js +212 -0
  75. package/dist/agents/chatbot/tools/traverse.tool.js.map +1 -0
  76. package/dist/agents/index.d.ts +9 -0
  77. package/dist/agents/index.d.ts.map +1 -1
  78. package/dist/agents/index.js +17 -1
  79. package/dist/agents/index.js.map +1 -1
  80. package/dist/common/helpers/define-entity.d.ts.map +1 -1
  81. package/dist/common/helpers/define-entity.js +5 -1
  82. package/dist/common/helpers/define-entity.js.map +1 -1
  83. package/dist/common/interfaces/datamodel.interface.d.ts +10 -0
  84. package/dist/common/interfaces/datamodel.interface.d.ts.map +1 -1
  85. package/dist/common/interfaces/datamodel.interface.js.map +1 -1
  86. package/dist/common/interfaces/entity.descriptor.interface.d.ts +1 -1
  87. package/dist/common/interfaces/entity.descriptor.interface.d.ts.map +1 -1
  88. package/dist/common/interfaces/entity.descriptor.interface.js.map +1 -1
  89. package/dist/common/interfaces/entity.schema.interface.d.ts +48 -0
  90. package/dist/common/interfaces/entity.schema.interface.d.ts.map +1 -1
  91. package/dist/common/registries/entity.service.registry.d.ts +13 -0
  92. package/dist/common/registries/entity.service.registry.d.ts.map +1 -0
  93. package/dist/common/registries/entity.service.registry.js +52 -0
  94. package/dist/common/registries/entity.service.registry.js.map +1 -0
  95. package/dist/common/registries/index.d.ts +1 -0
  96. package/dist/common/registries/index.d.ts.map +1 -1
  97. package/dist/common/registries/index.js +1 -0
  98. package/dist/common/registries/index.js.map +1 -1
  99. package/dist/core/core.module.d.ts.map +1 -1
  100. package/dist/core/core.module.js +6 -2
  101. package/dist/core/core.module.js.map +1 -1
  102. package/dist/core/llm/services/llm.service.d.ts.map +1 -1
  103. package/dist/core/llm/services/llm.service.js +8 -0
  104. package/dist/core/llm/services/llm.service.js.map +1 -1
  105. package/dist/core/neo4j/abstracts/abstract.repository.d.ts +48 -1
  106. package/dist/core/neo4j/abstracts/abstract.repository.d.ts.map +1 -1
  107. package/dist/core/neo4j/abstracts/abstract.repository.js +147 -9
  108. package/dist/core/neo4j/abstracts/abstract.repository.js.map +1 -1
  109. package/dist/core/neo4j/abstracts/abstract.service.d.ts +47 -0
  110. package/dist/core/neo4j/abstracts/abstract.service.d.ts.map +1 -1
  111. package/dist/core/neo4j/abstracts/abstract.service.js +57 -0
  112. package/dist/core/neo4j/abstracts/abstract.service.js.map +1 -1
  113. package/dist/core/neo4j/factories/entity.factory.d.ts.map +1 -1
  114. package/dist/core/neo4j/factories/entity.factory.js +27 -6
  115. package/dist/core/neo4j/factories/entity.factory.js.map +1 -1
  116. package/dist/core/neo4j/helpers/build-filter-clauses.d.ts +11 -0
  117. package/dist/core/neo4j/helpers/build-filter-clauses.d.ts.map +1 -0
  118. package/dist/core/neo4j/helpers/build-filter-clauses.js +69 -0
  119. package/dist/core/neo4j/helpers/build-filter-clauses.js.map +1 -0
  120. package/dist/core/neo4j/helpers/build-order-by.d.ts +6 -0
  121. package/dist/core/neo4j/helpers/build-order-by.d.ts.map +1 -0
  122. package/dist/core/neo4j/helpers/build-order-by.js +20 -0
  123. package/dist/core/neo4j/helpers/build-order-by.js.map +1 -0
  124. package/dist/core/neo4j/index.d.ts +1 -0
  125. package/dist/core/neo4j/index.d.ts.map +1 -1
  126. package/dist/core/neo4j/index.js +2 -0
  127. package/dist/core/neo4j/index.js.map +1 -1
  128. package/dist/core/neo4j/types/filter.criterion.d.ts +20 -0
  129. package/dist/core/neo4j/types/filter.criterion.d.ts.map +1 -0
  130. package/dist/core/neo4j/types/filter.criterion.js +3 -0
  131. package/dist/core/neo4j/types/filter.criterion.js.map +1 -0
  132. package/dist/core/neo4j/types/index.d.ts +2 -0
  133. package/dist/core/neo4j/types/index.d.ts.map +1 -0
  134. package/dist/core/neo4j/types/index.js +3 -0
  135. package/dist/core/neo4j/types/index.js.map +1 -0
  136. package/dist/foundations/assistant/assistant.module.d.ts +5 -0
  137. package/dist/foundations/assistant/assistant.module.d.ts.map +1 -0
  138. package/dist/foundations/assistant/assistant.module.js +32 -0
  139. package/dist/foundations/assistant/assistant.module.js.map +1 -0
  140. package/dist/foundations/assistant/controllers/assistant.controller.d.ts +67 -0
  141. package/dist/foundations/assistant/controllers/assistant.controller.d.ts.map +1 -0
  142. package/dist/foundations/assistant/controllers/assistant.controller.js +226 -0
  143. package/dist/foundations/assistant/controllers/assistant.controller.js.map +1 -0
  144. package/dist/foundations/assistant/dtos/assistant-append.dto.d.ts +11 -0
  145. package/dist/foundations/assistant/dtos/assistant-append.dto.d.ts.map +1 -0
  146. package/dist/foundations/assistant/dtos/assistant-append.dto.js +44 -0
  147. package/dist/foundations/assistant/dtos/assistant-append.dto.js.map +1 -0
  148. package/dist/foundations/assistant/dtos/assistant-patch.dto.d.ts +12 -0
  149. package/dist/foundations/assistant/dtos/assistant-patch.dto.d.ts.map +1 -0
  150. package/dist/foundations/assistant/dtos/assistant-patch.dto.js +52 -0
  151. package/dist/foundations/assistant/dtos/assistant-patch.dto.js.map +1 -0
  152. package/dist/foundations/assistant/dtos/assistant-post.dto.d.ts +12 -0
  153. package/dist/foundations/assistant/dtos/assistant-post.dto.d.ts.map +1 -0
  154. package/dist/foundations/assistant/dtos/assistant-post.dto.js +51 -0
  155. package/dist/foundations/assistant/dtos/assistant-post.dto.js.map +1 -0
  156. package/dist/foundations/assistant/entities/assistant.d.ts +48 -0
  157. package/dist/foundations/assistant/entities/assistant.d.ts.map +1 -0
  158. package/dist/foundations/assistant/entities/assistant.js +44 -0
  159. package/dist/foundations/assistant/entities/assistant.js.map +1 -0
  160. package/dist/foundations/assistant/entities/assistant.meta.d.ts +3 -0
  161. package/dist/foundations/assistant/entities/assistant.meta.d.ts.map +1 -0
  162. package/dist/foundations/assistant/entities/assistant.meta.js +10 -0
  163. package/dist/foundations/assistant/entities/assistant.meta.js.map +1 -0
  164. package/dist/foundations/assistant/index.d.ts +7 -0
  165. package/dist/foundations/assistant/index.d.ts.map +1 -0
  166. package/dist/foundations/assistant/index.js +12 -0
  167. package/dist/foundations/assistant/index.js.map +1 -0
  168. package/dist/foundations/assistant/repositories/assistant.repository.d.ts +50 -0
  169. package/dist/foundations/assistant/repositories/assistant.repository.d.ts.map +1 -0
  170. package/dist/foundations/assistant/repositories/assistant.repository.js +65 -0
  171. package/dist/foundations/assistant/repositories/assistant.repository.js.map +1 -0
  172. package/dist/foundations/assistant/services/assistant.service.d.ts +113 -0
  173. package/dist/foundations/assistant/services/assistant.service.d.ts.map +1 -0
  174. package/dist/foundations/assistant/services/assistant.service.js +395 -0
  175. package/dist/foundations/assistant/services/assistant.service.js.map +1 -0
  176. package/dist/foundations/assistant-message/assistant-message.module.d.ts +6 -0
  177. package/dist/foundations/assistant-message/assistant-message.module.d.ts.map +1 -0
  178. package/dist/foundations/assistant-message/assistant-message.module.js +36 -0
  179. package/dist/foundations/assistant-message/assistant-message.module.js.map +1 -0
  180. package/dist/foundations/assistant-message/controllers/assistant-message.controller.d.ts +16 -0
  181. package/dist/foundations/assistant-message/controllers/assistant-message.controller.d.ts.map +1 -0
  182. package/dist/foundations/assistant-message/controllers/assistant-message.controller.js +84 -0
  183. package/dist/foundations/assistant-message/controllers/assistant-message.controller.js.map +1 -0
  184. package/dist/foundations/assistant-message/dtos/assistant-message.dto.d.ts +11 -0
  185. package/dist/foundations/assistant-message/dtos/assistant-message.dto.d.ts.map +1 -0
  186. package/dist/foundations/assistant-message/dtos/assistant-message.dto.js +45 -0
  187. package/dist/foundations/assistant-message/dtos/assistant-message.dto.js.map +1 -0
  188. package/dist/foundations/assistant-message/entities/assistant-message.d.ts +49 -0
  189. package/dist/foundations/assistant-message/entities/assistant-message.d.ts.map +1 -0
  190. package/dist/foundations/assistant-message/entities/assistant-message.js +52 -0
  191. package/dist/foundations/assistant-message/entities/assistant-message.js.map +1 -0
  192. package/dist/foundations/assistant-message/entities/assistant-message.meta.d.ts +3 -0
  193. package/dist/foundations/assistant-message/entities/assistant-message.meta.d.ts.map +1 -0
  194. package/dist/foundations/assistant-message/entities/assistant-message.meta.js +10 -0
  195. package/dist/foundations/assistant-message/entities/assistant-message.meta.js.map +1 -0
  196. package/dist/foundations/assistant-message/index.d.ts +8 -0
  197. package/dist/foundations/assistant-message/index.d.ts.map +1 -0
  198. package/dist/foundations/assistant-message/index.js +24 -0
  199. package/dist/foundations/assistant-message/index.js.map +1 -0
  200. package/dist/foundations/assistant-message/repositories/assistant-message.repository.d.ts +70 -0
  201. package/dist/foundations/assistant-message/repositories/assistant-message.repository.d.ts.map +1 -0
  202. package/dist/foundations/assistant-message/repositories/assistant-message.repository.js +119 -0
  203. package/dist/foundations/assistant-message/repositories/assistant-message.repository.js.map +1 -0
  204. package/dist/foundations/assistant-message/services/assistant-message.service.d.ts +31 -0
  205. package/dist/foundations/assistant-message/services/assistant-message.service.d.ts.map +1 -0
  206. package/dist/foundations/assistant-message/services/assistant-message.service.js +32 -0
  207. package/dist/foundations/assistant-message/services/assistant-message.service.js.map +1 -0
  208. package/dist/foundations/foundations.modules.d.ts.map +1 -1
  209. package/dist/foundations/foundations.modules.js +2 -0
  210. package/dist/foundations/foundations.modules.js.map +1 -1
  211. package/dist/foundations/index.d.ts +2 -0
  212. package/dist/foundations/index.d.ts.map +1 -1
  213. package/dist/foundations/index.js +2 -0
  214. package/dist/foundations/index.js.map +1 -1
  215. package/dist/foundations/stripe/__tests__/mocks/stripe.mock.d.ts +62 -62
  216. package/package.json +1 -1
@@ -123,7 +123,26 @@ let EntityFactory = class EntityFactory {
123
123
  const isRelationship = data.type !== undefined && data.properties !== undefined;
124
124
  if (!isNode && !isRelationship)
125
125
  return undefined;
126
- const nodeType = params.model.nodeName;
126
+ // Multi-label polymorphic: resolve the target model via the discriminator
127
+ // using the actual node labels from the row. Falls back to the placeholder
128
+ // model if the discriminator throws or the resolved model isn't registered.
129
+ let effectiveModel = params.model;
130
+ if (isNode && params.polymorphic && !params.polymorphic.discriminatorRelationship && registry_1.modelRegistry) {
131
+ try {
132
+ const resolved = params.polymorphic.discriminator({
133
+ properties: data.properties ?? {},
134
+ labels: data.labels ?? [],
135
+ });
136
+ const resolvedModel = registry_1.modelRegistry.get(resolved.nodeName);
137
+ if (resolvedModel)
138
+ effectiveModel = resolvedModel;
139
+ }
140
+ catch {
141
+ // Keep effectiveModel = params.model. The downstream mapper will produce
142
+ // a shallow entity; better than crashing the whole query.
143
+ }
144
+ }
145
+ const nodeType = effectiveModel.nodeName;
127
146
  let nodeId;
128
147
  let mapKey;
129
148
  if (isNode) {
@@ -144,7 +163,7 @@ let EntityFactory = class EntityFactory {
144
163
  // Check for polymorphic discriminator data (e.g., skill_taxonomy_hasParent)
145
164
  const hasParentKey = `${params.name}_hasParent`;
146
165
  const hasParentValue = params.record.has(hasParentKey) ? params.record.get(hasParentKey) : undefined;
147
- entity = params.model.mapper({
166
+ entity = effectiveModel.mapper({
148
167
  data: {
149
168
  ...data.properties,
150
169
  labels: data.labels,
@@ -162,8 +181,8 @@ let EntityFactory = class EntityFactory {
162
181
  if (params.record.has(discTargetKey)) {
163
182
  const parentNode = params.record.get(discTargetKey);
164
183
  if (parentNode && parentNode.properties) {
165
- // Create parent entity using same model mapper
166
- const parentEntity = params.model.mapper({
184
+ // Create parent entity using the resolved model's mapper
185
+ const parentEntity = effectiveModel.mapper({
167
186
  data: {
168
187
  ...parentNode.properties,
169
188
  labels: parentNode.labels,
@@ -178,7 +197,7 @@ let EntityFactory = class EntityFactory {
178
197
  }
179
198
  }
180
199
  else if (isRelationship) {
181
- entity = params.model.mapper({
200
+ entity = effectiveModel.mapper({
182
201
  data: {
183
202
  id: nodeId,
184
203
  ...data.properties,
@@ -193,7 +212,7 @@ let EntityFactory = class EntityFactory {
193
212
  }
194
213
  if (!registry_1.modelRegistry)
195
214
  return entity;
196
- const model = params.model;
215
+ const model = effectiveModel;
197
216
  // Handle SINGLE relationships - prefer new relationship info if available
198
217
  if (model.singleChildrenRelationships && model.singleChildrenRelationships.length > 0) {
199
218
  for (const relInfo of model.singleChildrenRelationships) {
@@ -207,6 +226,7 @@ let EntityFactory = class EntityFactory {
207
226
  record: params.record,
208
227
  name: childName,
209
228
  nodeMap: params.nodeMap,
229
+ polymorphic: relInfo.polymorphic,
210
230
  });
211
231
  if (childEntity) {
212
232
  // Use relationship name for property assignment
@@ -245,6 +265,7 @@ let EntityFactory = class EntityFactory {
245
265
  record: params.record,
246
266
  name: childName,
247
267
  nodeMap: params.nodeMap,
268
+ polymorphic: relInfo.polymorphic,
248
269
  });
249
270
  if (childEntity) {
250
271
  // Use relationship name for property assignment
@@ -1 +1 @@
1
- {"version":3,"file":"entity.factory.js","sourceRoot":"","sources":["../../../../src/core/neo4j/factories/entity.factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity.factory.js","sourceRoot":"","sources":["../../../../src/core/neo4j/factories/entity.factory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { FilterCriterion } from "../types/filter.criterion";
2
+ export interface BuildFilterClausesResult {
3
+ clause: string;
4
+ params: Record<string, unknown>;
5
+ }
6
+ export declare function buildFilterClauses(input: {
7
+ nodeAlias: string;
8
+ filters: FilterCriterion[];
9
+ paramPrefix: string;
10
+ }): BuildFilterClausesResult;
11
+ //# sourceMappingURL=build-filter-clauses.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-filter-clauses.d.ts","sourceRoot":"","sources":["../../../../src/core/neo4j/helpers/build-filter-clauses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAkB,MAAM,2BAA2B,CAAC;AAa5E,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,wBAAwB,CA0D3B"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildFilterClauses = buildFilterClauses;
4
+ const VALID_IDENTIFIER = /^[A-Za-z_][A-Za-z0-9_]*$/;
5
+ const COMPARISON_OP = {
6
+ eq: "=",
7
+ ne: "<>",
8
+ gt: ">",
9
+ gte: ">=",
10
+ lt: "<",
11
+ lte: "<=",
12
+ };
13
+ function buildFilterClauses(input) {
14
+ if (!VALID_IDENTIFIER.test(input.nodeAlias)) {
15
+ throw new Error(`Invalid nodeAlias identifier: ${input.nodeAlias}`);
16
+ }
17
+ if (!VALID_IDENTIFIER.test(input.paramPrefix)) {
18
+ throw new Error(`Invalid paramPrefix: ${input.paramPrefix}`);
19
+ }
20
+ const fragments = [];
21
+ const params = {};
22
+ input.filters.forEach((criterion, index) => {
23
+ if (!VALID_IDENTIFIER.test(criterion.field)) {
24
+ throw new Error(`Invalid field identifier: ${criterion.field}`);
25
+ }
26
+ const paramKey = `${input.paramPrefix}_${index}`;
27
+ const lhs = `${input.nodeAlias}.${criterion.field}`;
28
+ switch (criterion.op) {
29
+ case "eq":
30
+ case "ne":
31
+ case "gt":
32
+ case "gte":
33
+ case "lt":
34
+ case "lte": {
35
+ fragments.push(`${lhs} ${COMPARISON_OP[criterion.op]} $${paramKey}`);
36
+ params[paramKey] = criterion.value;
37
+ break;
38
+ }
39
+ case "in": {
40
+ fragments.push(`${lhs} IN $${paramKey}`);
41
+ params[paramKey] = criterion.value;
42
+ break;
43
+ }
44
+ case "like": {
45
+ fragments.push(`toLower(${lhs}) CONTAINS toLower($${paramKey})`);
46
+ params[paramKey] = criterion.value;
47
+ break;
48
+ }
49
+ case "isNull": {
50
+ fragments.push(`${lhs} IS NULL`);
51
+ break;
52
+ }
53
+ case "isNotNull": {
54
+ fragments.push(`${lhs} IS NOT NULL`);
55
+ break;
56
+ }
57
+ default: {
58
+ throw new Error(`Unsupported operator: ${String(criterion.op)}`);
59
+ }
60
+ }
61
+ });
62
+ if (!fragments.length)
63
+ return { clause: "", params };
64
+ return {
65
+ clause: fragments.join(" AND "),
66
+ params,
67
+ };
68
+ }
69
+ //# sourceMappingURL=build-filter-clauses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-filter-clauses.js","sourceRoot":"","sources":["../../../../src/core/neo4j/helpers/build-filter-clauses.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { SortCriterion } from "../types/filter.criterion";
2
+ export declare function buildOrderByClause(input: {
3
+ nodeAlias: string;
4
+ sort: SortCriterion[];
5
+ }): string;
6
+ //# sourceMappingURL=build-order-by.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-order-by.d.ts","sourceRoot":"","sources":["../../../../src/core/neo4j/helpers/build-order-by.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAI1D,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,aAAa,EAAE,CAAA;CAAE,GAAG,MAAM,CAa9F"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildOrderByClause = buildOrderByClause;
4
+ const VALID_IDENTIFIER = /^[A-Za-z_][A-Za-z0-9_]*$/;
5
+ function buildOrderByClause(input) {
6
+ if (!VALID_IDENTIFIER.test(input.nodeAlias)) {
7
+ throw new Error(`Invalid nodeAlias identifier: ${input.nodeAlias}`);
8
+ }
9
+ if (!input.sort.length)
10
+ return "";
11
+ const parts = input.sort.map((s) => {
12
+ if (!VALID_IDENTIFIER.test(s.field)) {
13
+ throw new Error(`Invalid field identifier: ${s.field}`);
14
+ }
15
+ const direction = s.direction.toUpperCase() === "DESC" ? "DESC" : "ASC";
16
+ return `${input.nodeAlias}.${s.field} ${direction}`;
17
+ });
18
+ return `ORDER BY ${parts.join(", ")}`;
19
+ }
20
+ //# sourceMappingURL=build-order-by.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-order-by.js","sourceRoot":"","sources":["../../../../src/core/neo4j/helpers/build-order-by.ts"],"names":[],"mappings":";;AAIA,gDAaC;AAfD,MAAM,gBAAgB,GAAG,0BAA0B,CAAC;AAEpD,SAAgB,kBAAkB,CAAC,KAAmD;IACpF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACjC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,MAAM,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QACxE,OAAO,GAAG,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC,KAAK,IAAI,SAAS,EAAE,CAAC;IACtD,CAAC,CAAC,CAAC;IACH,OAAO,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AACxC,CAAC"}
@@ -12,5 +12,6 @@ export { EntityFactory } from "./factories/entity.factory";
12
12
  export { orderBy } from "./queries/order.by";
13
13
  export { updateRelationshipQuery } from "./queries/update.relationship";
14
14
  export * from "./abstracts";
15
+ export * from "./types";
15
16
  export { ModelRegistry, modelRegistry } from "../../common/registries/registry";
16
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/neo4j/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,KAAK,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAClG,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAGxE,cAAc,aAAa,CAAC;AAG5B,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/neo4j/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,KAAK,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAClG,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAGxE,cAAc,aAAa,CAAC;AAG5B,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC"}
@@ -34,6 +34,8 @@ var update_relationship_1 = require("./queries/update.relationship");
34
34
  Object.defineProperty(exports, "updateRelationshipQuery", { enumerable: true, get: function () { return update_relationship_1.updateRelationshipQuery; } });
35
35
  // Abstracts
36
36
  __exportStar(require("./abstracts"), exports);
37
+ // Types (filter & sort criteria)
38
+ __exportStar(require("./types"), exports);
37
39
  // Re-export ModelRegistry from common
38
40
  var registry_1 = require("../../common/registries/registry");
39
41
  Object.defineProperty(exports, "ModelRegistry", { enumerable: true, get: function () { return registry_1.ModelRegistry; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/neo4j/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;AAEH,iDAA+B;AAC/B,2DAAyC;AACzC,4DAA0C;AAC1C,4EAAkG;AAAzF,8HAAA,oBAAoB,OAAA;AAC7B,6DAA2D;AAAlD,+GAAA,aAAa,OAAA;AACtB,+CAA6C;AAApC,mGAAA,OAAO,OAAA;AAChB,qEAAwE;AAA/D,8HAAA,uBAAuB,OAAA;AAEhC,YAAY;AACZ,8CAA4B;AAE5B,sCAAsC;AACtC,6DAAgF;AAAvE,yGAAA,aAAa,OAAA;AAAE,yGAAA,aAAa,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/neo4j/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;AAEH,iDAA+B;AAC/B,2DAAyC;AACzC,4DAA0C;AAC1C,4EAAkG;AAAzF,8HAAA,oBAAoB,OAAA;AAC7B,6DAA2D;AAAlD,+GAAA,aAAa,OAAA;AACtB,+CAA6C;AAApC,mGAAA,OAAO,OAAA;AAChB,qEAAwE;AAA/D,8HAAA,uBAAuB,OAAA;AAEhC,YAAY;AACZ,8CAA4B;AAE5B,iCAAiC;AACjC,0CAAwB;AAExB,sCAAsC;AACtC,6DAAgF;AAAvE,yGAAA,aAAa,OAAA;AAAE,yGAAA,aAAa,OAAA"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Supported filter operators for structured queries against AbstractRepository.
3
+ *
4
+ * Compatibility rules (enforced by build-filter-clauses):
5
+ * - eq, ne, in → any scalar type
6
+ * - like → string only
7
+ * - gt, gte, lt, lte → number, date, datetime
8
+ * - isNull, isNotNull → any type (value not used)
9
+ */
10
+ export type FilterOperator = "eq" | "ne" | "in" | "like" | "gt" | "gte" | "lt" | "lte" | "isNull" | "isNotNull";
11
+ export interface FilterCriterion {
12
+ field: string;
13
+ op: FilterOperator;
14
+ value?: string | number | boolean | string[] | number[];
15
+ }
16
+ export interface SortCriterion {
17
+ field: string;
18
+ direction: "asc" | "desc";
19
+ }
20
+ //# sourceMappingURL=filter.criterion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter.criterion.d.ts","sourceRoot":"","sources":["../../../../src/core/neo4j/types/filter.criterion.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEhH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,cAAc,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;CACzD;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;CAC3B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=filter.criterion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter.criterion.js","sourceRoot":"","sources":["../../../../src/core/neo4j/types/filter.criterion.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export type { FilterCriterion, FilterOperator, SortCriterion } from "./filter.criterion";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/neo4j/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/neo4j/types/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { OnModuleInit } from "@nestjs/common";
2
+ export declare class AssistantModule implements OnModuleInit {
3
+ onModuleInit(): void;
4
+ }
5
+ //# sourceMappingURL=assistant.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assistant.module.d.ts","sourceRoot":"","sources":["../../../src/foundations/assistant/assistant.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAStD,qBAMa,eAAgB,YAAW,YAAY;IAClD,YAAY;CAGb"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.AssistantModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const chatbot_module_1 = require("../../agents/chatbot/chatbot.module");
12
+ const registry_1 = require("../../common/registries/registry");
13
+ const assistant_message_module_1 = require("../assistant-message/assistant-message.module");
14
+ const assistant_controller_1 = require("./controllers/assistant.controller");
15
+ const assistant_1 = require("./entities/assistant");
16
+ const assistant_repository_1 = require("./repositories/assistant.repository");
17
+ const assistant_service_1 = require("./services/assistant.service");
18
+ let AssistantModule = class AssistantModule {
19
+ onModuleInit() {
20
+ registry_1.modelRegistry.register(assistant_1.AssistantDescriptor.model);
21
+ }
22
+ };
23
+ exports.AssistantModule = AssistantModule;
24
+ exports.AssistantModule = AssistantModule = __decorate([
25
+ (0, common_1.Module)({
26
+ imports: [chatbot_module_1.ChatbotModule, assistant_message_module_1.AssistantMessageModule],
27
+ controllers: [assistant_controller_1.AssistantController],
28
+ providers: [assistant_1.AssistantDescriptor.model.serialiser, assistant_repository_1.AssistantRepository, assistant_service_1.AssistantService],
29
+ exports: [assistant_service_1.AssistantService, assistant_message_module_1.AssistantMessageModule],
30
+ })
31
+ ], AssistantModule);
32
+ //# sourceMappingURL=assistant.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assistant.module.js","sourceRoot":"","sources":["../../../src/foundations/assistant/assistant.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAsD;AACtD,wEAAoE;AACpE,+DAAiE;AACjE,4FAAuF;AACvF,6EAAyE;AACzE,oDAA2D;AAC3D,8EAA0E;AAC1E,oEAAgE;AAQzD,IAAM,eAAe,GAArB,MAAM,eAAe;IAC1B,YAAY;QACV,wBAAa,CAAC,QAAQ,CAAC,+BAAmB,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;CACF,CAAA;AAJY,0CAAe;0BAAf,eAAe;IAN3B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,8BAAa,EAAE,iDAAsB,CAAC;QAChD,WAAW,EAAE,CAAC,0CAAmB,CAAC;QAClC,SAAS,EAAE,CAAC,+BAAmB,CAAC,KAAK,CAAC,UAAU,EAAE,0CAAmB,EAAE,oCAAgB,CAAC;QACxF,OAAO,EAAE,CAAC,oCAAgB,EAAE,iDAAsB,CAAC;KACpD,CAAC;GACW,eAAe,CAI3B"}
@@ -0,0 +1,67 @@
1
+ import { FastifyReply } from "fastify";
2
+ import { AuthenticatedRequest } from "../../../common/interfaces/authenticated.request.interface";
3
+ import { JsonApiService } from "../../../core/jsonapi/services/jsonapi.service";
4
+ import { AssistantAppendDto } from "../dtos/assistant-append.dto";
5
+ import { AssistantPatchDto } from "../dtos/assistant-patch.dto";
6
+ import { AssistantPostDto } from "../dtos/assistant-post.dto";
7
+ import { AssistantService } from "../services/assistant.service";
8
+ /**
9
+ * Merge two JSON:API `included` lists for the `create()` response.
10
+ *
11
+ * `buildSingle(Assistant)` traverses the Assistant's `messages` relationship and
12
+ * emits slim message entries. `buildList([userMsg, assistantMsg])` serialises
13
+ * the same messages as top-level resources, richer and carrying a
14
+ * `relationships.assistant` back-pointer. Concatenating produced duplicates
15
+ * (slim + rich per message) and leaked the back-pointer. We want one rich copy
16
+ * per (type,id), minus the back-pointer to the primary Assistant.
17
+ *
18
+ * Dedup rule: last-wins by (type,id) — `buildList` output overrides
19
+ * `buildSingle` traversal. Back-pointer rule: when an included resource's
20
+ * relationship points to `stripBackrefsTo`, drop that relationship entry;
21
+ * if the resulting `relationships` object is empty, drop the property too.
22
+ */
23
+ export declare function mergeIncluded(base: unknown[] | undefined, additions: unknown[] | undefined, stripBackrefsTo: {
24
+ type: string;
25
+ id: string;
26
+ } | null): any[];
27
+ export declare class AssistantController {
28
+ private readonly assistants;
29
+ private readonly jsonApi;
30
+ private readonly logger;
31
+ private readonly crud;
32
+ constructor(assistants: AssistantService, jsonApi: JsonApiService);
33
+ /**
34
+ * POST /assistants — create a new assistant thread with a first user message.
35
+ *
36
+ * Response shape: Assistant JSON:API document with `meta.toolCalls`. The
37
+ * first user + assistant messages are embedded in the `included` array as
38
+ * `assistant-messages` (pre-populated server-side so the client does not need
39
+ * a round-trip to render the initial thread).
40
+ */
41
+ create(body: AssistantPostDto, req: AuthenticatedRequest): Promise<any>;
42
+ /**
43
+ * POST /assistants/:assistantId/assistant-messages — append a user message to an existing
44
+ * assistant thread. Runs the agent turn synchronously and returns a JSON:API list
45
+ * document containing the two new messages (user + assistant). `toolCalls` is surfaced
46
+ * in the document's `meta`.
47
+ */
48
+ append(assistantId: string, body: AssistantAppendDto, req: AuthenticatedRequest): Promise<any>;
49
+ /**
50
+ * GET /assistants — list the current user's assistant threads.
51
+ * RBAC (company + owner) is enforced by the repository's `buildUserHasAccess` override.
52
+ */
53
+ findAll(reply: FastifyReply, query: any, search?: string, fetchAll?: boolean, orderBy?: string): Promise<void>;
54
+ /**
55
+ * GET /assistants/:assistantId — read a single assistant thread.
56
+ */
57
+ findById(reply: FastifyReply, assistantId: string): Promise<void>;
58
+ /**
59
+ * PATCH /assistants/:assistantId — partial update (e.g. rename) via JSON:API envelope.
60
+ */
61
+ patch(reply: FastifyReply, body: AssistantPatchDto): Promise<void>;
62
+ /**
63
+ * DELETE /assistants/:assistantId — permanently remove the assistant thread.
64
+ */
65
+ delete(reply: FastifyReply, assistantId: string): Promise<void>;
66
+ }
67
+ //# sourceMappingURL=assistant.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assistant.controller.d.ts","sourceRoot":"","sources":["../../../../src/foundations/assistant/controllers/assistant.controller.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,4DAA4D,CAAC;AAClG,OAAO,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAK9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,OAAO,EAAE,GAAG,SAAS,EAC3B,SAAS,EAAE,OAAO,EAAE,GAAG,SAAS,EAChC,eAAe,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GACnD,GAAG,EAAE,CA0BP;AAED,qBAEa,mBAAmB;IAK5B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAL1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;IAC/D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA6C;gBAG/C,UAAU,EAAE,gBAAgB,EAC5B,OAAO,EAAE,cAAc;IAG1C;;;;;;;OAOG;IAEG,MAAM,CAAS,IAAI,EAAE,gBAAgB,EAAS,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC;IAkC5F;;;;;OAKG;IAEG,MAAM,CACY,WAAW,EAAE,MAAM,EACjC,IAAI,EAAE,kBAAkB,EACzB,GAAG,EAAE,oBAAoB,GAC/B,OAAO,CAAC,GAAG,CAAC;IAmBf;;;OAGG;IAEG,OAAO,CACJ,KAAK,EAAE,YAAY,EACjB,KAAK,EAAE,GAAG,EACF,MAAM,CAAC,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,OAAO,EACnB,OAAO,CAAC,EAAE,MAAM;IAKpC;;OAEG;IAEG,QAAQ,CAAQ,KAAK,EAAE,YAAY,EAAwB,WAAW,EAAE,MAAM;IAIpF;;OAEG;IAEG,KAAK,CAAQ,KAAK,EAAE,YAAY,EAAU,IAAI,EAAE,iBAAiB;IAIvE;;OAEG;IAGG,MAAM,CAAQ,KAAK,EAAE,YAAY,EAAwB,WAAW,EAAE,MAAM;CAGnF"}