@venizia/ignis 0.0.10-5 → 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 (694) hide show
  1. package/dist/base/applications/abstract.d.ts +7 -1
  2. package/dist/base/applications/abstract.d.ts.map +1 -1
  3. package/dist/base/applications/abstract.js +81 -9
  4. package/dist/base/applications/abstract.js.map +1 -1
  5. package/dist/base/applications/base.d.ts.map +1 -1
  6. package/dist/base/applications/base.js +0 -13
  7. package/dist/base/applications/base.js.map +1 -1
  8. package/dist/base/components/base.d.ts +3 -3
  9. package/dist/base/components/base.d.ts.map +1 -1
  10. package/dist/base/controllers/common/types.d.ts.map +1 -1
  11. package/dist/base/controllers/factory/controller.d.ts +8 -6
  12. package/dist/base/controllers/factory/controller.d.ts.map +1 -1
  13. package/dist/base/controllers/factory/controller.js +5 -5
  14. package/dist/base/controllers/factory/controller.js.map +1 -1
  15. package/dist/base/controllers/factory/crud/abstract.d.ts +2 -8
  16. package/dist/base/controllers/factory/crud/abstract.d.ts.map +1 -1
  17. package/dist/base/controllers/factory/crud/abstract.js +2 -13
  18. package/dist/base/controllers/factory/crud/abstract.js.map +1 -1
  19. package/dist/base/controllers/factory/crud/readable.js +4 -4
  20. package/dist/base/controllers/factory/crud/readable.js.map +1 -1
  21. package/dist/base/controllers/factory/definition.d.ts +8 -8
  22. package/dist/base/controllers/factory/definition.d.ts.map +1 -1
  23. package/dist/base/controllers/factory/definition.js +25 -3
  24. package/dist/base/controllers/factory/definition.js.map +1 -1
  25. package/dist/base/controllers/grpc/abstract.d.ts.map +1 -1
  26. package/dist/base/controllers/grpc/abstract.js +0 -2
  27. package/dist/base/controllers/grpc/abstract.js.map +1 -1
  28. package/dist/base/controllers/grpc/adapter.d.ts.map +1 -1
  29. package/dist/base/controllers/grpc/adapter.js +4 -3
  30. package/dist/base/controllers/grpc/adapter.js.map +1 -1
  31. package/dist/base/controllers/rest/abstract.d.ts +7 -2
  32. package/dist/base/controllers/rest/abstract.d.ts.map +1 -1
  33. package/dist/base/controllers/rest/abstract.js +23 -7
  34. package/dist/base/controllers/rest/abstract.js.map +1 -1
  35. package/dist/base/controllers/rest/base.d.ts +6 -0
  36. package/dist/base/controllers/rest/base.d.ts.map +1 -1
  37. package/dist/base/controllers/rest/base.js +12 -0
  38. package/dist/base/controllers/rest/base.js.map +1 -1
  39. package/dist/base/datasources/common/types.d.ts +4 -0
  40. package/dist/base/datasources/common/types.d.ts.map +1 -1
  41. package/dist/base/datasources/common/types.js +14 -1
  42. package/dist/base/datasources/common/types.js.map +1 -1
  43. package/dist/base/metadata/injectors.d.ts +2 -2
  44. package/dist/base/metadata/injectors.d.ts.map +1 -1
  45. package/dist/base/metadata/injectors.js.map +1 -1
  46. package/dist/base/metadata/persistents.d.ts.map +1 -1
  47. package/dist/base/metadata/persistents.js +11 -4
  48. package/dist/base/metadata/persistents.js.map +1 -1
  49. package/dist/base/metadata/routes/common.d.ts +26 -0
  50. package/dist/base/metadata/routes/common.d.ts.map +1 -0
  51. package/dist/base/metadata/routes/common.js +40 -0
  52. package/dist/base/metadata/routes/common.js.map +1 -0
  53. package/dist/base/metadata/routes/rest.d.ts.map +1 -1
  54. package/dist/base/metadata/routes/rest.js +4 -0
  55. package/dist/base/metadata/routes/rest.js.map +1 -1
  56. package/dist/base/metadata/routes/rpc.d.ts.map +1 -1
  57. package/dist/base/metadata/routes/rpc.js +4 -0
  58. package/dist/base/metadata/routes/rpc.js.map +1 -1
  59. package/dist/base/middlewares/app-error/app-error.middleware.d.ts.map +1 -1
  60. package/dist/base/middlewares/app-error/app-error.middleware.js +7 -4
  61. package/dist/base/middlewares/app-error/app-error.middleware.js.map +1 -1
  62. package/dist/base/middlewares/app-error/database.handler.js +2 -2
  63. package/dist/base/middlewares/app-error/database.handler.js.map +1 -1
  64. package/dist/base/middlewares/app-error/definition.d.ts +1 -1
  65. package/dist/base/middlewares/app-error/definition.d.ts.map +1 -1
  66. package/dist/base/middlewares/app-error/definition.js +2 -1
  67. package/dist/base/middlewares/app-error/definition.js.map +1 -1
  68. package/dist/base/middlewares/app-error/zod.handler.d.ts +1 -1
  69. package/dist/base/middlewares/app-error/zod.handler.d.ts.map +1 -1
  70. package/dist/base/middlewares/app-error/zod.handler.js +3 -1
  71. package/dist/base/middlewares/app-error/zod.handler.js.map +1 -1
  72. package/dist/base/middlewares/request-spy/request-spy.middleware.d.ts.map +1 -1
  73. package/dist/base/middlewares/request-spy/request-spy.middleware.js +8 -8
  74. package/dist/base/middlewares/request-spy/request-spy.middleware.js.map +1 -1
  75. package/dist/base/mixins/index.d.ts +0 -3
  76. package/dist/base/mixins/index.d.ts.map +1 -1
  77. package/dist/base/mixins/index.js +0 -3
  78. package/dist/base/mixins/index.js.map +1 -1
  79. package/dist/base/models/common/types.js +1 -1
  80. package/dist/base/repositories/common/constants.d.ts +10 -0
  81. package/dist/base/repositories/common/constants.d.ts.map +1 -1
  82. package/dist/base/repositories/common/constants.js +13 -1
  83. package/dist/base/repositories/common/constants.js.map +1 -1
  84. package/dist/base/repositories/common/types.d.ts +12 -4
  85. package/dist/base/repositories/common/types.d.ts.map +1 -1
  86. package/dist/base/repositories/common/types.js +10 -1
  87. package/dist/base/repositories/common/types.js.map +1 -1
  88. package/dist/base/repositories/core/abstract.d.ts +6 -8
  89. package/dist/base/repositories/core/abstract.d.ts.map +1 -1
  90. package/dist/base/repositories/core/abstract.js +8 -3
  91. package/dist/base/repositories/core/abstract.js.map +1 -1
  92. package/dist/base/repositories/query-schemas/filter.js +3 -3
  93. package/dist/base/repositories/query-schemas/filter.js.map +1 -1
  94. package/dist/base/repositories/query-schemas/where.js +5 -5
  95. package/dist/base/repositories/query-schemas/where.js.map +1 -1
  96. package/dist/base/services/base.d.ts +1 -4
  97. package/dist/base/services/base.d.ts.map +1 -1
  98. package/dist/base/services/base.js +1 -5
  99. package/dist/base/services/base.js.map +1 -1
  100. package/dist/common/error-codes.d.ts +21 -0
  101. package/dist/common/error-codes.d.ts.map +1 -0
  102. package/dist/common/error-codes.js +40 -0
  103. package/dist/common/error-codes.js.map +1 -0
  104. package/dist/common/index.d.ts +1 -0
  105. package/dist/common/index.d.ts.map +1 -1
  106. package/dist/common/index.js +1 -0
  107. package/dist/common/index.js.map +1 -1
  108. package/dist/components/api-reference/common/constants.d.ts.map +1 -0
  109. package/dist/components/api-reference/common/constants.js.map +1 -0
  110. package/dist/components/api-reference/common/index.d.ts.map +1 -0
  111. package/dist/components/api-reference/common/index.js.map +1 -0
  112. package/dist/components/api-reference/common/keys.d.ts +9 -0
  113. package/dist/components/api-reference/common/keys.d.ts.map +1 -0
  114. package/dist/components/api-reference/common/keys.js +14 -0
  115. package/dist/components/api-reference/common/keys.js.map +1 -0
  116. package/dist/components/{swagger → api-reference}/common/types.d.ts +14 -11
  117. package/dist/components/api-reference/common/types.d.ts.map +1 -0
  118. package/dist/components/api-reference/common/types.js.map +1 -0
  119. package/dist/components/api-reference/component.d.ts +12 -0
  120. package/dist/components/api-reference/component.d.ts.map +1 -0
  121. package/dist/components/{swagger → api-reference}/component.js +54 -38
  122. package/dist/components/api-reference/component.js.map +1 -0
  123. package/dist/components/api-reference/index.d.ts.map +1 -0
  124. package/dist/components/api-reference/index.js.map +1 -0
  125. package/dist/components/api-reference/ui-factory.d.ts.map +1 -0
  126. package/dist/components/api-reference/ui-factory.js.map +1 -0
  127. package/dist/components/auth/authenticate/common/types.d.ts.map +1 -1
  128. package/dist/components/auth/authenticate/component.d.ts.map +1 -1
  129. package/dist/components/auth/authenticate/component.js +1 -8
  130. package/dist/components/auth/authenticate/component.js.map +1 -1
  131. package/dist/components/auth/authenticate/controllers/factory.d.ts +8 -1
  132. package/dist/components/auth/authenticate/controllers/factory.d.ts.map +1 -1
  133. package/dist/components/auth/authenticate/middlewares/authenticate.middleware.d.ts.map +1 -1
  134. package/dist/components/auth/authenticate/middlewares/authenticate.middleware.js +0 -1
  135. package/dist/components/auth/authenticate/middlewares/authenticate.middleware.js.map +1 -1
  136. package/dist/components/auth/authenticate/providers/authentication.provider.d.ts.map +1 -1
  137. package/dist/components/auth/authenticate/providers/authentication.provider.js +1 -7
  138. package/dist/components/auth/authenticate/providers/authentication.provider.js.map +1 -1
  139. package/dist/components/auth/authenticate/services/basic/service.d.ts.map +1 -1
  140. package/dist/components/auth/authenticate/services/basic/service.js +21 -15
  141. package/dist/components/auth/authenticate/services/basic/service.js.map +1 -1
  142. package/dist/components/auth/authenticate/services/bearer/jwks/abstract.service.d.ts.map +1 -1
  143. package/dist/components/auth/authenticate/services/bearer/jwks/abstract.service.js +4 -6
  144. package/dist/components/auth/authenticate/services/bearer/jwks/abstract.service.js.map +1 -1
  145. package/dist/components/auth/authenticate/strategies/strategy-registry.d.ts.map +1 -1
  146. package/dist/components/auth/authenticate/strategies/strategy-registry.js +0 -1
  147. package/dist/components/auth/authenticate/strategies/strategy-registry.js.map +1 -1
  148. package/dist/components/auth/authorize/adapters/base-filtered.d.ts +9 -0
  149. package/dist/components/auth/authorize/adapters/base-filtered.d.ts.map +1 -1
  150. package/dist/components/auth/authorize/adapters/base-filtered.js +10 -0
  151. package/dist/components/auth/authorize/adapters/base-filtered.js.map +1 -1
  152. package/dist/components/auth/authorize/adapters/scoped-casbin.adapter.d.ts.map +1 -1
  153. package/dist/components/auth/authorize/adapters/scoped-casbin.adapter.js +35 -21
  154. package/dist/components/auth/authorize/adapters/scoped-casbin.adapter.js.map +1 -1
  155. package/dist/components/auth/authorize/adapters/types.d.ts +8 -3
  156. package/dist/components/auth/authorize/adapters/types.d.ts.map +1 -1
  157. package/dist/components/auth/authorize/common/resolve-request-domain.d.ts.map +1 -1
  158. package/dist/components/auth/authorize/common/resolve-request-domain.js +0 -4
  159. package/dist/components/auth/authorize/common/resolve-request-domain.js.map +1 -1
  160. package/dist/components/auth/authorize/enforcers/casbin.enforcer.d.ts +11 -18
  161. package/dist/components/auth/authorize/enforcers/casbin.enforcer.d.ts.map +1 -1
  162. package/dist/components/auth/authorize/enforcers/casbin.enforcer.js +18 -27
  163. package/dist/components/auth/authorize/enforcers/casbin.enforcer.js.map +1 -1
  164. package/dist/components/auth/authorize/enforcers/enforcer-registry.d.ts.map +1 -1
  165. package/dist/components/auth/authorize/enforcers/enforcer-registry.js +0 -3
  166. package/dist/components/auth/authorize/enforcers/enforcer-registry.js.map +1 -1
  167. package/dist/components/auth/authorize/middlewares/authorize.middleware.d.ts.map +1 -1
  168. package/dist/components/auth/authorize/middlewares/authorize.middleware.js +0 -1
  169. package/dist/components/auth/authorize/middlewares/authorize.middleware.js.map +1 -1
  170. package/dist/components/auth/authorize/providers/authorization.provider.d.ts.map +1 -1
  171. package/dist/components/auth/authorize/providers/authorization.provider.js +4 -12
  172. package/dist/components/auth/authorize/providers/authorization.provider.js.map +1 -1
  173. package/dist/components/auth/base/abstract-auth-registry.d.ts.map +1 -1
  174. package/dist/components/auth/base/abstract-auth-registry.js.map +1 -1
  175. package/dist/components/auth/context-variables.d.ts.map +1 -1
  176. package/dist/components/health-check/common/types.d.ts +3 -2
  177. package/dist/components/health-check/common/types.d.ts.map +1 -1
  178. package/dist/components/health-check/component.d.ts.map +1 -1
  179. package/dist/components/health-check/component.js +6 -3
  180. package/dist/components/health-check/component.js.map +1 -1
  181. package/dist/components/index.d.ts +1 -1
  182. package/dist/components/index.d.ts.map +1 -1
  183. package/dist/components/index.js +1 -1
  184. package/dist/components/index.js.map +1 -1
  185. package/dist/components/mail/common/constants.d.ts +15 -6
  186. package/dist/components/mail/common/constants.d.ts.map +1 -1
  187. package/dist/components/mail/common/constants.js +28 -7
  188. package/dist/components/mail/common/constants.js.map +1 -1
  189. package/dist/components/mail/common/types.d.ts +18 -3
  190. package/dist/components/mail/common/types.d.ts.map +1 -1
  191. package/dist/components/mail/common/types.js.map +1 -1
  192. package/dist/components/mail/component.d.ts.map +1 -1
  193. package/dist/components/mail/component.js +13 -5
  194. package/dist/components/mail/component.js.map +1 -1
  195. package/dist/components/mail/helpers/executors/bull-mq-executor.helper.d.ts +13 -16
  196. package/dist/components/mail/helpers/executors/bull-mq-executor.helper.d.ts.map +1 -1
  197. package/dist/components/mail/helpers/executors/bull-mq-executor.helper.js +83 -7
  198. package/dist/components/mail/helpers/executors/bull-mq-executor.helper.js.map +1 -1
  199. package/dist/components/mail/helpers/executors/direct-executor.helper.d.ts +2 -7
  200. package/dist/components/mail/helpers/executors/direct-executor.helper.d.ts.map +1 -1
  201. package/dist/components/mail/helpers/executors/direct-executor.helper.js +2 -1
  202. package/dist/components/mail/helpers/executors/direct-executor.helper.js.map +1 -1
  203. package/dist/components/mail/helpers/executors/internal-queue-executor.helper.d.ts +7 -7
  204. package/dist/components/mail/helpers/executors/internal-queue-executor.helper.d.ts.map +1 -1
  205. package/dist/components/mail/helpers/executors/internal-queue-executor.helper.js +34 -6
  206. package/dist/components/mail/helpers/executors/internal-queue-executor.helper.js.map +1 -1
  207. package/dist/components/mail/helpers/transporters/mailgun-transporter.helper.d.ts +9 -0
  208. package/dist/components/mail/helpers/transporters/mailgun-transporter.helper.d.ts.map +1 -1
  209. package/dist/components/mail/helpers/transporters/mailgun-transporter.helper.js +28 -5
  210. package/dist/components/mail/helpers/transporters/mailgun-transporter.helper.js.map +1 -1
  211. package/dist/components/mail/helpers/transporters/nodemail-transporter.helper.d.ts +3 -0
  212. package/dist/components/mail/helpers/transporters/nodemail-transporter.helper.d.ts.map +1 -1
  213. package/dist/components/mail/helpers/transporters/nodemail-transporter.helper.js +5 -5
  214. package/dist/components/mail/helpers/transporters/nodemail-transporter.helper.js.map +1 -1
  215. package/dist/components/mail/services/generator.service.d.ts +1 -1
  216. package/dist/components/mail/services/generator.service.d.ts.map +1 -1
  217. package/dist/components/mail/services/generator.service.js.map +1 -1
  218. package/dist/components/mail/services/mail.service.d.ts +1 -1
  219. package/dist/components/mail/services/mail.service.d.ts.map +1 -1
  220. package/dist/components/mail/services/mail.service.js +13 -3
  221. package/dist/components/mail/services/mail.service.js.map +1 -1
  222. package/dist/components/socket-io/component.d.ts.map +1 -1
  223. package/dist/components/socket-io/component.js +0 -1
  224. package/dist/components/socket-io/component.js.map +1 -1
  225. package/dist/components/static-asset/common/types.d.ts +2 -0
  226. package/dist/components/static-asset/common/types.d.ts.map +1 -1
  227. package/dist/components/static-asset/component.d.ts.map +1 -1
  228. package/dist/components/static-asset/component.js +6 -9
  229. package/dist/components/static-asset/component.js.map +1 -1
  230. package/dist/components/static-asset/controller/factory.d.ts +12 -1
  231. package/dist/components/static-asset/controller/factory.d.ts.map +1 -1
  232. package/dist/components/static-asset/controller/factory.js +98 -61
  233. package/dist/components/static-asset/controller/factory.js.map +1 -1
  234. package/dist/components/websocket/component.d.ts.map +1 -1
  235. package/dist/components/websocket/component.js +0 -1
  236. package/dist/components/websocket/component.js.map +1 -1
  237. package/dist/components/websocket/handlers/bun.handler.d.ts.map +1 -1
  238. package/dist/components/websocket/handlers/bun.handler.js +0 -1
  239. package/dist/components/websocket/handlers/bun.handler.js.map +1 -1
  240. package/dist/connectors/index.d.ts +0 -1
  241. package/dist/connectors/index.d.ts.map +1 -1
  242. package/dist/connectors/index.js +0 -1
  243. package/dist/connectors/index.js.map +1 -1
  244. package/dist/connectors/meilisearch/compiler.d.ts +16 -0
  245. package/dist/connectors/meilisearch/compiler.d.ts.map +1 -0
  246. package/dist/connectors/meilisearch/compiler.js +130 -0
  247. package/dist/connectors/meilisearch/compiler.js.map +1 -0
  248. package/dist/connectors/meilisearch/connector.d.ts +225 -0
  249. package/dist/connectors/meilisearch/connector.d.ts.map +1 -0
  250. package/dist/connectors/meilisearch/connector.js +821 -0
  251. package/dist/connectors/meilisearch/connector.js.map +1 -0
  252. package/dist/connectors/meilisearch/datasources/datasource.d.ts +28 -0
  253. package/dist/connectors/meilisearch/datasources/datasource.d.ts.map +1 -0
  254. package/dist/connectors/meilisearch/datasources/datasource.js +48 -0
  255. package/dist/connectors/meilisearch/datasources/datasource.js.map +1 -0
  256. package/dist/connectors/meilisearch/datasources/index.d.ts.map +1 -0
  257. package/dist/connectors/meilisearch/datasources/index.js.map +1 -0
  258. package/dist/connectors/meilisearch/index.d.ts +6 -0
  259. package/dist/connectors/meilisearch/index.d.ts.map +1 -0
  260. package/dist/connectors/meilisearch/index.js +22 -0
  261. package/dist/connectors/meilisearch/index.js.map +1 -0
  262. package/dist/connectors/meilisearch/internal/connector-internal.d.ts +32 -0
  263. package/dist/connectors/meilisearch/internal/connector-internal.d.ts.map +1 -0
  264. package/dist/connectors/meilisearch/internal/connector-internal.js +60 -0
  265. package/dist/connectors/meilisearch/internal/connector-internal.js.map +1 -0
  266. package/dist/connectors/meilisearch/internal/index.d.ts +2 -0
  267. package/dist/connectors/meilisearch/internal/index.d.ts.map +1 -0
  268. package/dist/connectors/{memory → meilisearch/internal}/index.js +1 -2
  269. package/dist/connectors/meilisearch/internal/index.js.map +1 -0
  270. package/dist/connectors/meilisearch/repositories/common/index.d.ts +2 -0
  271. package/dist/connectors/meilisearch/repositories/common/index.d.ts.map +1 -0
  272. package/dist/connectors/{memory/repositories → meilisearch/repositories/common}/index.js +1 -1
  273. package/dist/connectors/meilisearch/repositories/common/index.js.map +1 -0
  274. package/dist/connectors/meilisearch/repositories/common/types.d.ts +12 -0
  275. package/dist/connectors/meilisearch/repositories/common/types.d.ts.map +1 -0
  276. package/dist/connectors/meilisearch/repositories/common/types.js +3 -0
  277. package/dist/connectors/meilisearch/repositories/common/types.js.map +1 -0
  278. package/dist/connectors/meilisearch/repositories/dialect/index.d.ts +2 -0
  279. package/dist/connectors/meilisearch/repositories/dialect/index.d.ts.map +1 -0
  280. package/dist/connectors/{memory/internal → meilisearch/repositories/dialect}/index.js +1 -1
  281. package/dist/connectors/meilisearch/repositories/dialect/index.js.map +1 -0
  282. package/dist/connectors/meilisearch/repositories/dialect/query-dialect.d.ts +45 -0
  283. package/dist/connectors/meilisearch/repositories/dialect/query-dialect.d.ts.map +1 -0
  284. package/dist/connectors/meilisearch/repositories/dialect/query-dialect.js +383 -0
  285. package/dist/connectors/meilisearch/repositories/dialect/query-dialect.js.map +1 -0
  286. package/dist/connectors/meilisearch/repositories/index.d.ts +3 -0
  287. package/dist/connectors/meilisearch/repositories/index.d.ts.map +1 -0
  288. package/dist/connectors/meilisearch/repositories/index.js +19 -0
  289. package/dist/connectors/meilisearch/repositories/index.js.map +1 -0
  290. package/dist/connectors/meilisearch/types.d.ts +45 -0
  291. package/dist/connectors/meilisearch/types.d.ts.map +1 -0
  292. package/dist/connectors/meilisearch/types.js +30 -0
  293. package/dist/connectors/meilisearch/types.js.map +1 -0
  294. package/dist/connectors/postgres/datasources/abstract.d.ts +39 -6
  295. package/dist/connectors/postgres/datasources/abstract.d.ts.map +1 -1
  296. package/dist/connectors/postgres/datasources/abstract.js +61 -4
  297. package/dist/connectors/postgres/datasources/abstract.js.map +1 -1
  298. package/dist/connectors/postgres/datasources/base.d.ts +2 -1
  299. package/dist/connectors/postgres/datasources/base.d.ts.map +1 -1
  300. package/dist/connectors/postgres/datasources/base.js +56 -38
  301. package/dist/connectors/postgres/datasources/base.js.map +1 -1
  302. package/dist/connectors/postgres/datasources/common/types.d.ts +28 -8
  303. package/dist/connectors/postgres/datasources/common/types.d.ts.map +1 -1
  304. package/dist/connectors/postgres/datasources/common/types.js +0 -1
  305. package/dist/connectors/postgres/datasources/common/types.js.map +1 -1
  306. package/dist/connectors/postgres/drivers/driver.d.ts +55 -0
  307. package/dist/connectors/postgres/drivers/driver.d.ts.map +1 -0
  308. package/dist/connectors/postgres/drivers/driver.js +3 -0
  309. package/dist/connectors/postgres/drivers/driver.js.map +1 -0
  310. package/dist/connectors/postgres/drivers/index.d.ts +3 -0
  311. package/dist/connectors/postgres/drivers/index.d.ts.map +1 -0
  312. package/dist/connectors/postgres/drivers/index.js +19 -0
  313. package/dist/connectors/postgres/drivers/index.js.map +1 -0
  314. package/dist/connectors/postgres/drivers/node-postgres.d.ts +24 -0
  315. package/dist/connectors/postgres/drivers/node-postgres.d.ts.map +1 -0
  316. package/dist/connectors/postgres/drivers/node-postgres.js +63 -0
  317. package/dist/connectors/postgres/drivers/node-postgres.js.map +1 -0
  318. package/dist/connectors/postgres/drivers/postgres-js.d.ts +25 -0
  319. package/dist/connectors/postgres/drivers/postgres-js.d.ts.map +1 -0
  320. package/dist/connectors/postgres/drivers/postgres-js.js +66 -0
  321. package/dist/connectors/postgres/drivers/postgres-js.js.map +1 -0
  322. package/dist/connectors/postgres/drivers/resolve.d.ts +15 -0
  323. package/dist/connectors/postgres/drivers/resolve.d.ts.map +1 -0
  324. package/dist/connectors/postgres/drivers/resolve.js +44 -0
  325. package/dist/connectors/postgres/drivers/resolve.js.map +1 -0
  326. package/dist/connectors/postgres/index.d.ts +1 -0
  327. package/dist/connectors/postgres/index.d.ts.map +1 -1
  328. package/dist/connectors/postgres/index.js +1 -0
  329. package/dist/connectors/postgres/index.js.map +1 -1
  330. package/dist/connectors/postgres/models/base.js +1 -1
  331. package/dist/connectors/postgres/models/common/types.d.ts.map +1 -1
  332. package/dist/connectors/postgres/models/enrichers/principal.enricher.d.ts.map +1 -1
  333. package/dist/connectors/postgres/models/enrichers/principal.enricher.js +4 -1
  334. package/dist/connectors/postgres/models/enrichers/principal.enricher.js.map +1 -1
  335. package/dist/connectors/postgres/models/enrichers/user-audit.enricher.d.ts.map +1 -1
  336. package/dist/connectors/postgres/models/enrichers/user-audit.enricher.js +0 -2
  337. package/dist/connectors/postgres/models/enrichers/user-audit.enricher.js.map +1 -1
  338. package/dist/connectors/postgres/repositories/common/shared.d.ts +0 -1
  339. package/dist/connectors/postgres/repositories/common/shared.d.ts.map +1 -1
  340. package/dist/connectors/postgres/repositories/common/shared.js +0 -2
  341. package/dist/connectors/postgres/repositories/common/shared.js.map +1 -1
  342. package/dist/connectors/postgres/repositories/common/types.d.ts +2 -6
  343. package/dist/connectors/postgres/repositories/common/types.d.ts.map +1 -1
  344. package/dist/connectors/postgres/repositories/core/base.d.ts +39 -3
  345. package/dist/connectors/postgres/repositories/core/base.d.ts.map +1 -1
  346. package/dist/connectors/postgres/repositories/core/base.js +15 -5
  347. package/dist/connectors/postgres/repositories/core/base.js.map +1 -1
  348. package/dist/connectors/postgres/repositories/core/index.js +1 -1
  349. package/dist/connectors/postgres/repositories/core/index.js.map +1 -1
  350. package/dist/connectors/postgres/repositories/core/persistable.d.ts +7 -2
  351. package/dist/connectors/postgres/repositories/core/persistable.d.ts.map +1 -1
  352. package/dist/connectors/postgres/repositories/core/persistable.js +11 -19
  353. package/dist/connectors/postgres/repositories/core/persistable.js.map +1 -1
  354. package/dist/connectors/postgres/repositories/core/readable.d.ts.map +1 -1
  355. package/dist/connectors/postgres/repositories/core/readable.js +26 -33
  356. package/dist/connectors/postgres/repositories/core/readable.js.map +1 -1
  357. package/dist/connectors/postgres/repositories/core/soft-deletable.d.ts.map +1 -1
  358. package/dist/connectors/postgres/repositories/core/soft-deletable.js +2 -8
  359. package/dist/connectors/postgres/repositories/core/soft-deletable.js.map +1 -1
  360. package/dist/connectors/postgres/repositories/dialect/filter.d.ts +40 -4
  361. package/dist/connectors/postgres/repositories/dialect/filter.d.ts.map +1 -1
  362. package/dist/connectors/postgres/repositories/dialect/filter.js +178 -13
  363. package/dist/connectors/postgres/repositories/dialect/filter.js.map +1 -1
  364. package/dist/connectors/postgres/repositories/dialect/internal/json-utils.d.ts +0 -2
  365. package/dist/connectors/postgres/repositories/dialect/internal/json-utils.d.ts.map +1 -1
  366. package/dist/connectors/postgres/repositories/dialect/internal/json-utils.js +0 -2
  367. package/dist/connectors/postgres/repositories/dialect/internal/json-utils.js.map +1 -1
  368. package/dist/connectors/postgres/repositories/dialect/query.d.ts +2 -0
  369. package/dist/connectors/postgres/repositories/dialect/query.d.ts.map +1 -1
  370. package/dist/connectors/postgres/repositories/dialect/query.js +28 -27
  371. package/dist/connectors/postgres/repositories/dialect/query.js.map +1 -1
  372. package/dist/connectors/postgres/repositories/dialect/update.d.ts +0 -1
  373. package/dist/connectors/postgres/repositories/dialect/update.d.ts.map +1 -1
  374. package/dist/connectors/postgres/repositories/dialect/update.js +0 -1
  375. package/dist/connectors/postgres/repositories/dialect/update.js.map +1 -1
  376. package/dist/connectors/postgres/supabase/index.d.ts +4 -0
  377. package/dist/connectors/postgres/supabase/index.d.ts.map +1 -0
  378. package/dist/connectors/postgres/supabase/index.js +33 -0
  379. package/dist/connectors/postgres/supabase/index.js.map +1 -0
  380. package/dist/connectors/postgres/supabase/pooler.d.ts +27 -0
  381. package/dist/connectors/postgres/supabase/pooler.d.ts.map +1 -0
  382. package/dist/connectors/postgres/supabase/pooler.js +38 -0
  383. package/dist/connectors/postgres/supabase/pooler.js.map +1 -0
  384. package/dist/connectors/postgres/supabase/rls.d.ts +17 -0
  385. package/dist/connectors/postgres/supabase/rls.d.ts.map +1 -0
  386. package/dist/connectors/postgres/supabase/rls.js +35 -0
  387. package/dist/connectors/postgres/supabase/rls.js.map +1 -0
  388. package/dist/connectors/search/connector.d.ts +252 -0
  389. package/dist/connectors/search/connector.d.ts.map +1 -0
  390. package/dist/connectors/search/connector.js +65 -0
  391. package/dist/connectors/search/connector.js.map +1 -0
  392. package/dist/connectors/{typesense → search}/controllers/abstract.d.ts +0 -6
  393. package/dist/connectors/search/controllers/abstract.d.ts.map +1 -0
  394. package/dist/connectors/{typesense → search}/controllers/abstract.js +4 -13
  395. package/dist/connectors/search/controllers/abstract.js.map +1 -0
  396. package/dist/connectors/{typesense → search}/controllers/definition.d.ts +6 -44
  397. package/dist/connectors/search/controllers/definition.d.ts.map +1 -0
  398. package/dist/connectors/{typesense → search}/controllers/definition.js +4 -1
  399. package/dist/connectors/search/controllers/definition.js.map +1 -0
  400. package/dist/connectors/{typesense → search}/controllers/factory.d.ts +9 -8
  401. package/dist/connectors/search/controllers/factory.d.ts.map +1 -0
  402. package/dist/connectors/{typesense → search}/controllers/factory.js +5 -5
  403. package/dist/connectors/search/controllers/factory.js.map +1 -0
  404. package/dist/connectors/search/controllers/index.d.ts +4 -0
  405. package/dist/connectors/search/controllers/index.d.ts.map +1 -0
  406. package/dist/connectors/search/controllers/index.js +20 -0
  407. package/dist/connectors/search/controllers/index.js.map +1 -0
  408. package/dist/connectors/search/datasources/abstract.d.ts +25 -0
  409. package/dist/connectors/search/datasources/abstract.d.ts.map +1 -0
  410. package/dist/connectors/search/datasources/abstract.js.map +1 -0
  411. package/dist/connectors/search/datasources/base.d.ts +73 -0
  412. package/dist/connectors/search/datasources/base.d.ts.map +1 -0
  413. package/dist/connectors/search/datasources/base.js +195 -0
  414. package/dist/connectors/search/datasources/base.js.map +1 -0
  415. package/dist/connectors/search/datasources/common/index.d.ts +2 -0
  416. package/dist/connectors/search/datasources/common/index.d.ts.map +1 -0
  417. package/dist/connectors/search/datasources/common/index.js +18 -0
  418. package/dist/connectors/search/datasources/common/index.js.map +1 -0
  419. package/dist/connectors/search/datasources/common/types.d.ts +8 -0
  420. package/dist/connectors/search/datasources/common/types.d.ts.map +1 -0
  421. package/dist/connectors/search/datasources/common/types.js +3 -0
  422. package/dist/connectors/search/datasources/common/types.js.map +1 -0
  423. package/dist/connectors/search/datasources/index.d.ts +4 -0
  424. package/dist/connectors/search/datasources/index.d.ts.map +1 -0
  425. package/dist/connectors/search/datasources/index.js +20 -0
  426. package/dist/connectors/search/datasources/index.js.map +1 -0
  427. package/dist/connectors/search/index.d.ts +6 -0
  428. package/dist/connectors/search/index.d.ts.map +1 -0
  429. package/dist/connectors/search/index.js +22 -0
  430. package/dist/connectors/search/index.js.map +1 -0
  431. package/dist/connectors/search/internal/index.d.ts +2 -0
  432. package/dist/connectors/search/internal/index.d.ts.map +1 -0
  433. package/dist/connectors/search/internal/index.js +18 -0
  434. package/dist/connectors/search/internal/index.js.map +1 -0
  435. package/dist/connectors/search/internal/search-connector-internal.d.ts.map +1 -0
  436. package/dist/connectors/{typesense → search}/internal/search-connector-internal.js +14 -4
  437. package/dist/connectors/search/internal/search-connector-internal.js.map +1 -0
  438. package/dist/connectors/search/models/base.d.ts.map +1 -0
  439. package/dist/connectors/search/models/base.js.map +1 -0
  440. package/dist/connectors/search/models/define-search-collection.d.ts.map +1 -0
  441. package/dist/connectors/search/models/define-search-collection.js.map +1 -0
  442. package/dist/connectors/search/models/index.d.ts.map +1 -0
  443. package/dist/connectors/search/models/index.js.map +1 -0
  444. package/dist/connectors/{typesense → search}/models/types.d.ts +11 -11
  445. package/dist/connectors/search/models/types.d.ts.map +1 -0
  446. package/dist/connectors/{typesense → search}/models/types.js +1 -1
  447. package/dist/connectors/search/models/types.js.map +1 -0
  448. package/dist/connectors/search/models/zod-derivation.d.ts.map +1 -0
  449. package/dist/connectors/{typesense → search}/models/zod-derivation.js +5 -2
  450. package/dist/connectors/search/models/zod-derivation.js.map +1 -0
  451. package/dist/connectors/{typesense → search}/repositories/common/constants.d.ts +9 -58
  452. package/dist/connectors/search/repositories/common/constants.d.ts.map +1 -0
  453. package/dist/connectors/{typesense → search}/repositories/common/constants.js +17 -20
  454. package/dist/connectors/search/repositories/common/constants.js.map +1 -0
  455. package/dist/connectors/search/repositories/common/dialect-helpers.d.ts +19 -0
  456. package/dist/connectors/search/repositories/common/dialect-helpers.d.ts.map +1 -0
  457. package/dist/connectors/search/repositories/common/dialect-helpers.js +50 -0
  458. package/dist/connectors/search/repositories/common/dialect-helpers.js.map +1 -0
  459. package/dist/connectors/search/repositories/common/index.d.ts +3 -0
  460. package/dist/connectors/search/repositories/common/index.d.ts.map +1 -0
  461. package/dist/connectors/search/repositories/common/index.js +19 -0
  462. package/dist/connectors/search/repositories/common/index.js.map +1 -0
  463. package/dist/connectors/search/repositories/common/types.d.ts +60 -0
  464. package/dist/connectors/search/repositories/common/types.d.ts.map +1 -0
  465. package/dist/connectors/search/repositories/common/types.js +3 -0
  466. package/dist/connectors/search/repositories/common/types.js.map +1 -0
  467. package/dist/connectors/search/repositories/core/base.d.ts +56 -0
  468. package/dist/connectors/search/repositories/core/base.d.ts.map +1 -0
  469. package/dist/connectors/{typesense → search}/repositories/core/base.js +27 -3
  470. package/dist/connectors/search/repositories/core/base.js.map +1 -0
  471. package/dist/connectors/search/repositories/core/default.d.ts +6 -0
  472. package/dist/connectors/search/repositories/core/default.d.ts.map +1 -0
  473. package/dist/connectors/search/repositories/core/default.js.map +1 -0
  474. package/dist/connectors/search/repositories/core/index.d.ts.map +1 -0
  475. package/dist/connectors/search/repositories/core/index.js.map +1 -0
  476. package/dist/connectors/{typesense → search}/repositories/core/persistable.d.ts +27 -35
  477. package/dist/connectors/search/repositories/core/persistable.d.ts.map +1 -0
  478. package/dist/connectors/{typesense → search}/repositories/core/persistable.js +47 -39
  479. package/dist/connectors/search/repositories/core/persistable.js.map +1 -0
  480. package/dist/connectors/{typesense → search}/repositories/core/readable.d.ts +20 -46
  481. package/dist/connectors/search/repositories/core/readable.d.ts.map +1 -0
  482. package/dist/connectors/search/repositories/core/readable.js +130 -0
  483. package/dist/connectors/search/repositories/core/readable.js.map +1 -0
  484. package/dist/connectors/search/repositories/index.d.ts +3 -0
  485. package/dist/connectors/search/repositories/index.d.ts.map +1 -0
  486. package/dist/connectors/search/repositories/index.js +19 -0
  487. package/dist/connectors/search/repositories/index.js.map +1 -0
  488. package/dist/connectors/typesense/compiler.d.ts +1 -1
  489. package/dist/connectors/typesense/compiler.d.ts.map +1 -1
  490. package/dist/connectors/typesense/compiler.js +9 -2
  491. package/dist/connectors/typesense/compiler.js.map +1 -1
  492. package/dist/connectors/typesense/connector.d.ts +11 -207
  493. package/dist/connectors/typesense/connector.d.ts.map +1 -1
  494. package/dist/connectors/typesense/connector.js +53 -64
  495. package/dist/connectors/typesense/connector.js.map +1 -1
  496. package/dist/connectors/typesense/controllers/index.d.ts +1 -3
  497. package/dist/connectors/typesense/controllers/index.d.ts.map +1 -1
  498. package/dist/connectors/typesense/controllers/index.js +1 -3
  499. package/dist/connectors/typesense/controllers/index.js.map +1 -1
  500. package/dist/connectors/typesense/datasources/datasource.d.ts +26 -14
  501. package/dist/connectors/typesense/datasources/datasource.d.ts.map +1 -1
  502. package/dist/connectors/typesense/datasources/datasource.js +10 -31
  503. package/dist/connectors/typesense/datasources/datasource.js.map +1 -1
  504. package/dist/connectors/typesense/datasources/index.d.ts +0 -2
  505. package/dist/connectors/typesense/datasources/index.d.ts.map +1 -1
  506. package/dist/connectors/typesense/datasources/index.js +0 -2
  507. package/dist/connectors/typesense/datasources/index.js.map +1 -1
  508. package/dist/connectors/typesense/index.d.ts +1 -2
  509. package/dist/connectors/typesense/index.d.ts.map +1 -1
  510. package/dist/connectors/typesense/index.js +3 -2
  511. package/dist/connectors/typesense/index.js.map +1 -1
  512. package/dist/connectors/typesense/internal/index.d.ts +0 -1
  513. package/dist/connectors/typesense/internal/index.d.ts.map +1 -1
  514. package/dist/connectors/typesense/internal/index.js +0 -1
  515. package/dist/connectors/typesense/internal/index.js.map +1 -1
  516. package/dist/connectors/typesense/repositories/common/index.d.ts +0 -1
  517. package/dist/connectors/typesense/repositories/common/index.d.ts.map +1 -1
  518. package/dist/connectors/typesense/repositories/common/index.js +0 -1
  519. package/dist/connectors/typesense/repositories/common/index.js.map +1 -1
  520. package/dist/connectors/typesense/repositories/common/types.d.ts +10 -63
  521. package/dist/connectors/typesense/repositories/common/types.d.ts.map +1 -1
  522. package/dist/connectors/typesense/repositories/dialect/query-dialect.d.ts +21 -16
  523. package/dist/connectors/typesense/repositories/dialect/query-dialect.d.ts.map +1 -1
  524. package/dist/connectors/typesense/repositories/dialect/query-dialect.js +124 -71
  525. package/dist/connectors/typesense/repositories/dialect/query-dialect.js.map +1 -1
  526. package/dist/connectors/typesense/repositories/index.d.ts +1 -1
  527. package/dist/connectors/typesense/repositories/index.d.ts.map +1 -1
  528. package/dist/connectors/typesense/repositories/index.js +2 -1
  529. package/dist/connectors/typesense/repositories/index.js.map +1 -1
  530. package/dist/connectors/typesense/types.d.ts +1 -8
  531. package/dist/connectors/typesense/types.d.ts.map +1 -1
  532. package/dist/connectors/typesense/types.js.map +1 -1
  533. package/dist/helpers/inversion/common/types.d.ts +0 -1
  534. package/dist/helpers/inversion/common/types.d.ts.map +1 -1
  535. package/dist/helpers/inversion/index.d.ts +1 -1
  536. package/dist/helpers/inversion/index.d.ts.map +1 -1
  537. package/dist/helpers/inversion/index.js +1 -2
  538. package/dist/helpers/inversion/index.js.map +1 -1
  539. package/dist/helpers/inversion/mixins/controllers/controller.d.ts +5 -5
  540. package/dist/helpers/inversion/mixins/controllers/controller.js +1 -1
  541. package/dist/helpers/inversion/mixins/controllers/grpc.d.ts +5 -9
  542. package/dist/helpers/inversion/mixins/controllers/grpc.d.ts.map +1 -1
  543. package/dist/helpers/inversion/mixins/controllers/grpc.js +5 -5
  544. package/dist/helpers/inversion/mixins/controllers/grpc.js.map +1 -1
  545. package/dist/helpers/inversion/mixins/controllers/rest.d.ts +5 -9
  546. package/dist/helpers/inversion/mixins/controllers/rest.d.ts.map +1 -1
  547. package/dist/helpers/inversion/mixins/controllers/rest.js +6 -5
  548. package/dist/helpers/inversion/mixins/controllers/rest.js.map +1 -1
  549. package/dist/helpers/inversion/mixins/datasource.mixin.d.ts +5 -5
  550. package/dist/helpers/inversion/mixins/datasource.mixin.d.ts.map +1 -1
  551. package/dist/helpers/inversion/mixins/datasource.mixin.js +1 -2
  552. package/dist/helpers/inversion/mixins/datasource.mixin.js.map +1 -1
  553. package/dist/helpers/inversion/mixins/model.mixin.d.ts +5 -5
  554. package/dist/helpers/inversion/mixins/model.mixin.d.ts.map +1 -1
  555. package/dist/helpers/inversion/mixins/model.mixin.js +2 -2
  556. package/dist/helpers/inversion/mixins/model.mixin.js.map +1 -1
  557. package/dist/helpers/inversion/mixins/repository.mixin.d.ts +17 -7
  558. package/dist/helpers/inversion/mixins/repository.mixin.d.ts.map +1 -1
  559. package/dist/helpers/inversion/mixins/repository.mixin.js +35 -30
  560. package/dist/helpers/inversion/mixins/repository.mixin.js.map +1 -1
  561. package/dist/helpers/inversion/registry.d.ts +42 -39
  562. package/dist/helpers/inversion/registry.d.ts.map +1 -1
  563. package/dist/helpers/inversion/registry.js +2 -3
  564. package/dist/helpers/inversion/registry.js.map +1 -1
  565. package/dist/utilities/drizzle-result.utility.d.ts +9 -0
  566. package/dist/utilities/drizzle-result.utility.d.ts.map +1 -0
  567. package/dist/utilities/drizzle-result.utility.js +59 -0
  568. package/dist/utilities/drizzle-result.utility.js.map +1 -0
  569. package/dist/utilities/error.utility.d.ts.map +1 -1
  570. package/dist/utilities/error.utility.js +2 -1
  571. package/dist/utilities/error.utility.js.map +1 -1
  572. package/dist/utilities/index.d.ts +3 -2
  573. package/dist/utilities/index.d.ts.map +1 -1
  574. package/dist/utilities/index.js +3 -2
  575. package/dist/utilities/index.js.map +1 -1
  576. package/dist/utilities/network.utility.d.ts.map +1 -1
  577. package/dist/utilities/network.utility.js +0 -1
  578. package/dist/utilities/network.utility.js.map +1 -1
  579. package/package.json +49 -19
  580. package/dist/base/mixins/component.mixin.d.ts +0 -88
  581. package/dist/base/mixins/component.mixin.d.ts.map +0 -1
  582. package/dist/base/mixins/component.mixin.js +0 -40
  583. package/dist/base/mixins/component.mixin.js.map +0 -1
  584. package/dist/base/mixins/repository.mixin.d.ts +0 -92
  585. package/dist/base/mixins/repository.mixin.d.ts.map +0 -1
  586. package/dist/base/mixins/repository.mixin.js +0 -51
  587. package/dist/base/mixins/repository.mixin.js.map +0 -1
  588. package/dist/base/mixins/service.mixin.d.ts +0 -89
  589. package/dist/base/mixins/service.mixin.d.ts.map +0 -1
  590. package/dist/base/mixins/service.mixin.js +0 -19
  591. package/dist/base/mixins/service.mixin.js.map +0 -1
  592. package/dist/components/swagger/common/constants.d.ts.map +0 -1
  593. package/dist/components/swagger/common/constants.js.map +0 -1
  594. package/dist/components/swagger/common/index.d.ts.map +0 -1
  595. package/dist/components/swagger/common/index.js.map +0 -1
  596. package/dist/components/swagger/common/keys.d.ts +0 -4
  597. package/dist/components/swagger/common/keys.d.ts.map +0 -1
  598. package/dist/components/swagger/common/keys.js +0 -8
  599. package/dist/components/swagger/common/keys.js.map +0 -1
  600. package/dist/components/swagger/common/types.d.ts.map +0 -1
  601. package/dist/components/swagger/common/types.js.map +0 -1
  602. package/dist/components/swagger/component.d.ts +0 -8
  603. package/dist/components/swagger/component.d.ts.map +0 -1
  604. package/dist/components/swagger/component.js.map +0 -1
  605. package/dist/components/swagger/index.d.ts.map +0 -1
  606. package/dist/components/swagger/index.js.map +0 -1
  607. package/dist/components/swagger/ui-factory.d.ts.map +0 -1
  608. package/dist/components/swagger/ui-factory.js.map +0 -1
  609. package/dist/connectors/memory/datasources/datasource.d.ts +0 -35
  610. package/dist/connectors/memory/datasources/datasource.d.ts.map +0 -1
  611. package/dist/connectors/memory/datasources/datasource.js +0 -51
  612. package/dist/connectors/memory/datasources/datasource.js.map +0 -1
  613. package/dist/connectors/memory/datasources/index.d.ts.map +0 -1
  614. package/dist/connectors/memory/datasources/index.js.map +0 -1
  615. package/dist/connectors/memory/index.d.ts +0 -3
  616. package/dist/connectors/memory/index.d.ts.map +0 -1
  617. package/dist/connectors/memory/index.js.map +0 -1
  618. package/dist/connectors/memory/internal/index.d.ts +0 -2
  619. package/dist/connectors/memory/internal/index.d.ts.map +0 -1
  620. package/dist/connectors/memory/internal/index.js.map +0 -1
  621. package/dist/connectors/memory/internal/where-matcher.d.ts +0 -13
  622. package/dist/connectors/memory/internal/where-matcher.d.ts.map +0 -1
  623. package/dist/connectors/memory/internal/where-matcher.js +0 -326
  624. package/dist/connectors/memory/internal/where-matcher.js.map +0 -1
  625. package/dist/connectors/memory/repositories/index.d.ts +0 -2
  626. package/dist/connectors/memory/repositories/index.d.ts.map +0 -1
  627. package/dist/connectors/memory/repositories/index.js.map +0 -1
  628. package/dist/connectors/memory/repositories/repository.d.ts +0 -175
  629. package/dist/connectors/memory/repositories/repository.d.ts.map +0 -1
  630. package/dist/connectors/memory/repositories/repository.js +0 -345
  631. package/dist/connectors/memory/repositories/repository.js.map +0 -1
  632. package/dist/connectors/typesense/controllers/abstract.d.ts.map +0 -1
  633. package/dist/connectors/typesense/controllers/abstract.js.map +0 -1
  634. package/dist/connectors/typesense/controllers/definition.d.ts.map +0 -1
  635. package/dist/connectors/typesense/controllers/definition.js.map +0 -1
  636. package/dist/connectors/typesense/controllers/factory.d.ts.map +0 -1
  637. package/dist/connectors/typesense/controllers/factory.js.map +0 -1
  638. package/dist/connectors/typesense/datasources/abstract.d.ts +0 -16
  639. package/dist/connectors/typesense/datasources/abstract.d.ts.map +0 -1
  640. package/dist/connectors/typesense/datasources/abstract.js.map +0 -1
  641. package/dist/connectors/typesense/datasources/base.d.ts +0 -40
  642. package/dist/connectors/typesense/datasources/base.d.ts.map +0 -1
  643. package/dist/connectors/typesense/datasources/base.js +0 -102
  644. package/dist/connectors/typesense/datasources/base.js.map +0 -1
  645. package/dist/connectors/typesense/internal/search-connector-internal.d.ts.map +0 -1
  646. package/dist/connectors/typesense/internal/search-connector-internal.js.map +0 -1
  647. package/dist/connectors/typesense/models/base.d.ts.map +0 -1
  648. package/dist/connectors/typesense/models/base.js.map +0 -1
  649. package/dist/connectors/typesense/models/define-search-collection.d.ts.map +0 -1
  650. package/dist/connectors/typesense/models/define-search-collection.js.map +0 -1
  651. package/dist/connectors/typesense/models/index.d.ts.map +0 -1
  652. package/dist/connectors/typesense/models/index.js.map +0 -1
  653. package/dist/connectors/typesense/models/types.d.ts.map +0 -1
  654. package/dist/connectors/typesense/models/types.js.map +0 -1
  655. package/dist/connectors/typesense/models/zod-derivation.d.ts.map +0 -1
  656. package/dist/connectors/typesense/models/zod-derivation.js.map +0 -1
  657. package/dist/connectors/typesense/repositories/common/constants.d.ts.map +0 -1
  658. package/dist/connectors/typesense/repositories/common/constants.js.map +0 -1
  659. package/dist/connectors/typesense/repositories/core/base.d.ts +0 -47
  660. package/dist/connectors/typesense/repositories/core/base.d.ts.map +0 -1
  661. package/dist/connectors/typesense/repositories/core/base.js.map +0 -1
  662. package/dist/connectors/typesense/repositories/core/default.d.ts +0 -5
  663. package/dist/connectors/typesense/repositories/core/default.d.ts.map +0 -1
  664. package/dist/connectors/typesense/repositories/core/default.js.map +0 -1
  665. package/dist/connectors/typesense/repositories/core/index.d.ts.map +0 -1
  666. package/dist/connectors/typesense/repositories/core/index.js.map +0 -1
  667. package/dist/connectors/typesense/repositories/core/persistable.d.ts.map +0 -1
  668. package/dist/connectors/typesense/repositories/core/persistable.js.map +0 -1
  669. package/dist/connectors/typesense/repositories/core/readable.d.ts.map +0 -1
  670. package/dist/connectors/typesense/repositories/core/readable.js +0 -260
  671. package/dist/connectors/typesense/repositories/core/readable.js.map +0 -1
  672. /package/dist/components/{swagger → api-reference}/common/constants.d.ts +0 -0
  673. /package/dist/components/{swagger → api-reference}/common/constants.js +0 -0
  674. /package/dist/components/{swagger → api-reference}/common/index.d.ts +0 -0
  675. /package/dist/components/{swagger → api-reference}/common/index.js +0 -0
  676. /package/dist/components/{swagger → api-reference}/common/types.js +0 -0
  677. /package/dist/components/{swagger → api-reference}/index.d.ts +0 -0
  678. /package/dist/components/{swagger → api-reference}/index.js +0 -0
  679. /package/dist/components/{swagger → api-reference}/ui-factory.d.ts +0 -0
  680. /package/dist/components/{swagger → api-reference}/ui-factory.js +0 -0
  681. /package/dist/connectors/{memory → meilisearch}/datasources/index.d.ts +0 -0
  682. /package/dist/connectors/{memory → meilisearch}/datasources/index.js +0 -0
  683. /package/dist/connectors/{typesense → search}/datasources/abstract.js +0 -0
  684. /package/dist/connectors/{typesense → search}/internal/search-connector-internal.d.ts +0 -0
  685. /package/dist/connectors/{typesense → search}/models/base.d.ts +0 -0
  686. /package/dist/connectors/{typesense → search}/models/base.js +0 -0
  687. /package/dist/connectors/{typesense → search}/models/define-search-collection.d.ts +0 -0
  688. /package/dist/connectors/{typesense → search}/models/define-search-collection.js +0 -0
  689. /package/dist/connectors/{typesense → search}/models/index.d.ts +0 -0
  690. /package/dist/connectors/{typesense → search}/models/index.js +0 -0
  691. /package/dist/connectors/{typesense → search}/models/zod-derivation.d.ts +0 -0
  692. /package/dist/connectors/{typesense → search}/repositories/core/default.js +0 -0
  693. /package/dist/connectors/{typesense → search}/repositories/core/index.d.ts +0 -0
  694. /package/dist/connectors/{typesense → search}/repositories/core/index.js +0 -0
@@ -0,0 +1,821 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MeilisearchConnector = void 0;
4
+ const common_1 = require("../../common");
5
+ const search_1 = require("../../connectors/search");
6
+ const internal_1 = require("../../connectors/search/internal");
7
+ const ignis_helpers_1 = require("@venizia/ignis-helpers");
8
+ const ignis_helpers_2 = require("@venizia/ignis-helpers");
9
+ const meilisearch_1 = require("meilisearch");
10
+ const internal_2 = require("./internal");
11
+ const types_1 = require("./types");
12
+ const DEFAULT_TASK_TIMEOUT_MS = 5 * 60_000;
13
+ const DEFAULT_TASK_INTERVAL_MS = 50;
14
+ /** Ceiling for the exponential poll backoff - one poll per second once a task runs long. */
15
+ const MAX_TASK_INTERVAL_MS = 1000;
16
+ const isRecord = (value) => {
17
+ return typeof value === 'object' && value !== null;
18
+ };
19
+ /**
20
+ * Meilisearch's reserved RESPONSE keys - metadata the engine attaches to a hit. Listed explicitly
21
+ * rather than matched by `_` prefix, because `_geo` is a stored DOCUMENT field (the only name
22
+ * Meilisearch accepts for a geo field) and prefix-stripping would delete it from every hit.
23
+ */
24
+ const RESERVED_HIT_KEYS = new Set([
25
+ '_formatted',
26
+ '_matchesPosition',
27
+ '_rankingScore',
28
+ '_rankingScoreDetails',
29
+ '_vectors',
30
+ '_federation',
31
+ '_geoDistance',
32
+ ]);
33
+ /** Strips Meilisearch's reserved response metadata, leaving the caller's own document intact. */
34
+ const extractDocument = (hit) => {
35
+ const document = {};
36
+ for (const [key, value] of Object.entries(hit)) {
37
+ if (RESERVED_HIT_KEYS.has(key)) {
38
+ continue;
39
+ }
40
+ document[key] = value;
41
+ }
42
+ return document;
43
+ };
44
+ /**
45
+ * Maps a Meilisearch search response onto the neutral `ISearchResult`. `totalHits` (the exhaustive
46
+ * page/hitsPerPage mode) is preferred; `estimatedTotalHits` is approximate, and saying so is what
47
+ * `isFoundExact` exists for. Wire keys are read via bracket string access, never as identifiers.
48
+ */
49
+ const mapSearchResult = (raw) => {
50
+ if (!isRecord(raw)) {
51
+ return { found: 0, isFoundExact: true };
52
+ }
53
+ const totalHits = raw['totalHits'];
54
+ const isFoundExact = typeof totalHits === 'number';
55
+ const estimated = raw['estimatedTotalHits'];
56
+ const result = {
57
+ found: isFoundExact ? totalHits : typeof estimated === 'number' ? estimated : 0,
58
+ isFoundExact,
59
+ };
60
+ if (typeof raw['processingTimeMs'] === 'number') {
61
+ result.searchTimeMs = raw['processingTimeMs'];
62
+ }
63
+ if (isRecord(raw['facetDistribution'])) {
64
+ result.facetCounts = [raw['facetDistribution']];
65
+ }
66
+ if (Array.isArray(raw['hits'])) {
67
+ result.hits = raw['hits'].filter(isRecord).map(hit => {
68
+ const entry = { document: extractDocument(hit) };
69
+ if (hit['_formatted'] !== undefined) {
70
+ entry.highlight = hit['_formatted'];
71
+ }
72
+ if (typeof hit['_rankingScore'] === 'number') {
73
+ entry.score = hit['_rankingScore'];
74
+ }
75
+ return entry;
76
+ });
77
+ }
78
+ return result;
79
+ };
80
+ /** Adapts the SDK client onto the structural view this connector needs. */
81
+ const adaptClient = (sdk) => {
82
+ // The SDK's task/index return types carry more detail than this connector reads, so each delegate
83
+ // widens to AnyType at the seam rather than restating the SDK's shapes.
84
+ const client = sdk;
85
+ return {
86
+ index: (uid) => client.index(uid),
87
+ createIndex: (uid, options) => client.createIndex(uid, options),
88
+ getIndex: (uid) => client.getIndex(uid),
89
+ getIndexes: () => client.getIndexes(),
90
+ deleteIndex: (uid) => client.deleteIndex(uid),
91
+ swapIndexes: (pairs) => client.swapIndexes(pairs),
92
+ // The one real divergence: the SDK exposes getTask under `client.tasks`, not at the root.
93
+ getTask: (taskUid) => client.tasks.getTask(taskUid),
94
+ health: () => client.health(),
95
+ multiSearch: (params) => client.multiSearch(params),
96
+ };
97
+ };
98
+ /** Meilisearch-backed search connector. Every write awaits its task, so `create()` resolves only once the document is retrievable. */
99
+ class MeilisearchConnector extends search_1.BaseSearchConnector {
100
+ constructor(opts) {
101
+ super({
102
+ scope: opts.scope ?? MeilisearchConnector.name,
103
+ identifier: opts.identifier ?? opts.name,
104
+ });
105
+ this.primaryKeyByCollection = new Map();
106
+ this.collection = {
107
+ create: opts => this.createCollection(opts),
108
+ ensure: opts => this.ensureCollection(opts),
109
+ get: opts => this.getCollection(opts),
110
+ list: () => this.listCollections(),
111
+ exists: opts => this.collectionExists(opts),
112
+ patchSchema: () => this.patchCollectionSchema(),
113
+ delete: opts => this.deleteCollection(opts),
114
+ };
115
+ /** Meilisearch has no alias layer; a zero-downtime reindex swaps two index uids atomically. */
116
+ this.swap = {
117
+ indexes: opts => this.swapIndexes(opts),
118
+ };
119
+ /** A flat per-index dictionary. There is no named, linkable synonym-set resource. */
120
+ this.synonyms = {
121
+ set: opts => this.setSynonyms(opts),
122
+ get: opts => this.getSynonyms(opts),
123
+ reset: opts => this.resetSynonyms(opts),
124
+ };
125
+ this.document = {
126
+ get: (opts) => this.getDocument(opts),
127
+ count: opts => this.countDocuments(opts),
128
+ create: (opts) => this.createDocument(opts),
129
+ upsert: (opts) => this.upsertDocument(opts),
130
+ update: (opts) => this.updateDocument(opts),
131
+ updateBy: (opts) => this.updateByFilter(opts),
132
+ delete: opts => this.deleteDocument(opts),
133
+ deleteBy: opts => this.deleteByFilter(opts),
134
+ deleteAll: opts => this.deleteAllDocuments(opts),
135
+ import: (opts) => this.importDocuments(opts),
136
+ export: opts => this.exportDocuments(opts),
137
+ };
138
+ this.taskTimeoutMs = opts.taskTimeoutMs ?? DEFAULT_TASK_TIMEOUT_MS;
139
+ this.taskIntervalMs = opts.taskIntervalMs ?? DEFAULT_TASK_INTERVAL_MS;
140
+ try {
141
+ if (opts.client) {
142
+ this.client = opts.client;
143
+ }
144
+ else {
145
+ this.rawClient = new meilisearch_1.Meilisearch({ host: opts.host, apiKey: opts.apiKey });
146
+ this.client = adaptClient(this.rawClient);
147
+ }
148
+ opts.onInitialized?.({ name: opts.name });
149
+ }
150
+ catch (error) {
151
+ this.logger
152
+ .for('constructor')
153
+ .error('Failed to initialize Meilisearch client | error: %s', internal_1.SearchConnectorInternal.describeError({ error }));
154
+ opts.onError?.({ name: opts.name, error });
155
+ throw error;
156
+ }
157
+ }
158
+ /** The raw SDK client - the escape hatch for anything this connector does not model (fire-and-forget writes, federation, facet search). */
159
+ getClient() {
160
+ if (!this.rawClient) {
161
+ throw (0, ignis_helpers_2.getError)({
162
+ message: `[${MeilisearchConnector.name}] No raw client available - this connector was constructed with an injected client.`,
163
+ });
164
+ }
165
+ return this.rawClient;
166
+ }
167
+ isNotFoundError(opts) {
168
+ return internal_2.MeilisearchInternal.isNotFoundError(opts);
169
+ }
170
+ async getHealth() {
171
+ const rs = await this.runEngineCall({
172
+ method: this.getHealth.name,
173
+ run: async () => {
174
+ const health = await this.client.health();
175
+ return { ok: health.status === 'available' };
176
+ },
177
+ });
178
+ return rs;
179
+ }
180
+ /**
181
+ * Every Meilisearch write returns a task uid and is invisible to search until the task reaches
182
+ * `succeeded`. The SDK's own `waitForTask` defaults to a 5 s timeout - far too short for a bulk
183
+ * import - so the connector polls itself against a caller-configured ceiling.
184
+ */
185
+ async waitForTask(opts) {
186
+ const { taskUid, method } = opts;
187
+ const deadline = Date.now() + this.taskTimeoutMs;
188
+ // Exponential backoff: a fast task still resolves in the first poll or two, but a long-running
189
+ // one is not polled ~20x/s for its whole duration - the interval doubles up to a 1 s ceiling.
190
+ let intervalMs = this.taskIntervalMs;
191
+ for (;;) {
192
+ const task = await this.client.getTask(taskUid);
193
+ if (task.status === types_1.MeilisearchTaskStatuses.SUCCEEDED) {
194
+ return task;
195
+ }
196
+ if (types_1.MeilisearchTaskStatuses.isTerminal(task.status)) {
197
+ this.logger
198
+ .for(method)
199
+ .error('Task did not succeed | uid: %s | status: %s | error: %s', taskUid, task.status, internal_1.SearchConnectorInternal.describeError({ error: task.error }));
200
+ internal_1.SearchConnectorInternal.wrapDependencyError({
201
+ method,
202
+ error: task.error ?? task.status,
203
+ logger: this.logger,
204
+ });
205
+ }
206
+ if (Date.now() >= deadline) {
207
+ throw (0, ignis_helpers_2.getError)({
208
+ statusCode: ignis_helpers_2.HTTP.ResultCodes.RS_5.GatewayTimeout,
209
+ messageCode: common_1.SearchErrorCodes.TASK_TIMEOUT,
210
+ message: `[${method}] Search engine task timed out after ${this.taskTimeoutMs}ms.`,
211
+ });
212
+ }
213
+ await new Promise(resolve => setTimeout(resolve, intervalMs));
214
+ intervalMs = Math.min(intervalMs * 2, MAX_TASK_INTERVAL_MS);
215
+ }
216
+ }
217
+ /**
218
+ * Every Meilisearch write returns a task uid and only becomes visible once that task succeeds. This
219
+ * runs the write, awaits its task to completion, and returns the FINISHED task - callers that read
220
+ * `details` (e.g. deleteByFilter's `deletedDocuments`) get the terminal record.
221
+ */
222
+ async awaitWrite(opts) {
223
+ const { method, run } = opts;
224
+ const enqueued = await run();
225
+ return this.waitForTask({ taskUid: enqueued.taskUid, method });
226
+ }
227
+ async createCollection(opts) {
228
+ const { schema } = opts;
229
+ this.assertNonEmpty({ value: schema.uid, name: 'uid', method: this.createCollection.name });
230
+ await this.runEngineCall({
231
+ method: this.createCollection.name,
232
+ run: async () => {
233
+ await this.awaitWrite({
234
+ method: this.createCollection.name,
235
+ run: () => this.client.createIndex(schema.uid, { primaryKey: schema.primaryKey }),
236
+ });
237
+ this.logger.for(this.createCollection.name).info('Created index | uid: %s', schema.uid);
238
+ },
239
+ tolerate: {
240
+ when: error => internal_2.MeilisearchInternal.isAlreadyExistsError({ error }),
241
+ handle: () => {
242
+ this.logger
243
+ .for(this.createCollection.name)
244
+ .info('Index already exists, skipping | uid: %s', schema.uid);
245
+ },
246
+ },
247
+ });
248
+ if (schema.primaryKey) {
249
+ this.primaryKeyByCollection.set(schema.uid, schema.primaryKey);
250
+ }
251
+ }
252
+ /** Create-if-absent, then apply settings. Both steps await their task, so the index is queryable on return. */
253
+ async ensureCollection(opts) {
254
+ const { schema } = opts;
255
+ await this.createCollection(opts);
256
+ await this.runEngineCall({
257
+ method: this.ensureCollection.name,
258
+ run: async () => {
259
+ await this.awaitWrite({
260
+ method: this.ensureCollection.name,
261
+ run: () => this.client.index(schema.uid).updateSettings(schema.settings),
262
+ });
263
+ },
264
+ });
265
+ return schema;
266
+ }
267
+ async getCollection(opts) {
268
+ const { name } = opts;
269
+ this.assertNonEmpty({ value: name, name: 'collection', method: this.getCollection.name });
270
+ const rs = await this.runEngineCall({
271
+ method: this.getCollection.name,
272
+ run: () => this.client.getIndex(name),
273
+ tolerate: this.notFoundTolerance({
274
+ method: this.getCollection.name,
275
+ subject: `Collection '${name}'`,
276
+ }),
277
+ });
278
+ return rs;
279
+ }
280
+ async listCollections() {
281
+ const rs = await this.runEngineCall({
282
+ method: this.listCollections.name,
283
+ run: async () => {
284
+ const page = await this.client.getIndexes();
285
+ return page.results;
286
+ },
287
+ });
288
+ return rs;
289
+ }
290
+ async collectionExists(opts) {
291
+ const { name } = opts;
292
+ const rs = await this.runEngineCall({
293
+ method: this.collectionExists.name,
294
+ run: async () => {
295
+ await this.client.getIndex(name);
296
+ return true;
297
+ },
298
+ tolerate: this.notFoundFallback({
299
+ method: this.collectionExists.name,
300
+ message: 'Index not found, treating as absent | uid: %s',
301
+ args: [name],
302
+ fallback: false,
303
+ }),
304
+ });
305
+ return rs;
306
+ }
307
+ /** Meilisearch is schemaless: there is no field schema to patch. Settings are applied by ensureCollection. */
308
+ patchCollectionSchema() {
309
+ throw (0, ignis_helpers_2.getError)({
310
+ statusCode: ignis_helpers_2.HTTP.ResultCodes.RS_5.NotImplemented,
311
+ messageCode: common_1.CoreErrorCodes.NOT_SUPPORTED,
312
+ message: `[${MeilisearchConnector.name}] Field-schema patching is not supported - Meilisearch is schemaless; change index settings via ensureCollection instead.`,
313
+ });
314
+ }
315
+ async deleteCollection(opts) {
316
+ const { name } = opts;
317
+ const rs = await this.runEngineCall({
318
+ method: this.deleteCollection.name,
319
+ run: async () => {
320
+ await this.awaitWrite({
321
+ method: this.deleteCollection.name,
322
+ run: () => this.client.deleteIndex(name),
323
+ });
324
+ return true;
325
+ },
326
+ tolerate: this.notFoundFallback({
327
+ method: this.deleteCollection.name,
328
+ message: 'Index not found, treating as already deleted | uid: %s',
329
+ args: [name],
330
+ fallback: false,
331
+ }),
332
+ });
333
+ return rs;
334
+ }
335
+ async swapIndexes(opts) {
336
+ const { pairs } = opts;
337
+ await this.runEngineCall({
338
+ method: this.swapIndexes.name,
339
+ run: async () => {
340
+ await this.awaitWrite({
341
+ method: this.swapIndexes.name,
342
+ run: () => this.client.swapIndexes(pairs.map(indexes => ({ indexes }))),
343
+ });
344
+ this.logger
345
+ .for(this.swapIndexes.name)
346
+ .info('Swapped index pair(s) | count: %s', pairs.length);
347
+ },
348
+ });
349
+ }
350
+ async setSynonyms(opts) {
351
+ const { collection, items } = opts;
352
+ const dictionary = {};
353
+ for (const entry of items) {
354
+ if (entry.root) {
355
+ dictionary[entry.root] = entry.synonyms;
356
+ continue;
357
+ }
358
+ for (const term of entry.synonyms) {
359
+ dictionary[term] = entry.synonyms.filter(other => other !== term);
360
+ }
361
+ }
362
+ await this.runEngineCall({
363
+ method: this.setSynonyms.name,
364
+ run: async () => {
365
+ await this.awaitWrite({
366
+ method: this.setSynonyms.name,
367
+ run: () => this.client.index(collection).updateSynonyms(dictionary),
368
+ });
369
+ },
370
+ });
371
+ }
372
+ async getSynonyms(opts) {
373
+ const { collection } = opts;
374
+ const rs = await this.runEngineCall({
375
+ method: this.getSynonyms.name,
376
+ run: async () => {
377
+ const settings = await this.client.index(collection).getSettings();
378
+ const dictionary = settings['synonyms'];
379
+ if (!isRecord(dictionary)) {
380
+ return [];
381
+ }
382
+ return Object.entries(dictionary).map(([id, synonyms]) => ({
383
+ id,
384
+ synonyms: Array.isArray(synonyms) ? synonyms : [],
385
+ }));
386
+ },
387
+ });
388
+ return rs;
389
+ }
390
+ async resetSynonyms(opts) {
391
+ const { collection } = opts;
392
+ await this.runEngineCall({
393
+ method: this.resetSynonyms.name,
394
+ run: async () => {
395
+ await this.awaitWrite({
396
+ method: this.resetSynonyms.name,
397
+ run: () => this.client.index(collection).resetSynonyms(),
398
+ });
399
+ },
400
+ });
401
+ }
402
+ async getDocument(opts) {
403
+ const { collection, id } = opts;
404
+ this.assertNonEmpty({ value: collection, name: 'collection', method: this.getDocument.name });
405
+ this.assertNonEmpty({ value: id, name: 'document id', method: this.getDocument.name });
406
+ const rs = await this.runEngineCall({
407
+ method: this.getDocument.name,
408
+ run: async () => {
409
+ const document = (await this.client.index(collection).getDocument(id));
410
+ return document;
411
+ },
412
+ tolerate: this.notFoundTolerance({
413
+ method: this.getDocument.name,
414
+ subject: `Document '${id}' in collection '${collection}'`,
415
+ }),
416
+ });
417
+ return rs;
418
+ }
419
+ /**
420
+ * Exact and uncapped. `pagination.maxTotalHits` bounds the SEARCH route only - Meilisearch's own
421
+ * documentation states it "has no effect on the get documents" endpoints - so reading `total` from
422
+ * `documents/fetch` is what keeps `count()` from quietly lying on large filtered sets.
423
+ */
424
+ async countDocuments(opts) {
425
+ const { collection, filterBy } = opts;
426
+ this.assertNonEmpty({
427
+ value: collection,
428
+ name: 'collection',
429
+ method: this.countDocuments.name,
430
+ });
431
+ const rs = await this.runEngineCall({
432
+ method: this.countDocuments.name,
433
+ run: async () => {
434
+ const params = { limit: 0 };
435
+ if (filterBy) {
436
+ params['filter'] = filterBy;
437
+ }
438
+ const page = await this.client.index(collection).getDocuments(params);
439
+ return page.total;
440
+ },
441
+ });
442
+ return rs;
443
+ }
444
+ /**
445
+ * Create-only, matching the neutral contract (and Typesense, whose `documents().create()` rejects a
446
+ * duplicate id). Meilisearch has no conditional insert - `addDocuments` is add-or-REPLACE - so the id
447
+ * is checked first. That check is NOT atomic: two concurrent creates of the same id can both pass it,
448
+ * and the second write wins. Callers needing last-write-wins should use `upsert` and say so.
449
+ */
450
+ async createDocument(opts) {
451
+ const { collection, document } = opts;
452
+ this.assertNonEmpty({
453
+ value: collection,
454
+ name: 'collection',
455
+ method: this.createDocument.name,
456
+ });
457
+ const primaryKey = await this.resolvePrimaryKey({ collection });
458
+ const id = document[primaryKey];
459
+ if (id !== undefined && (await this.documentExists({ collection, id: String(id) }))) {
460
+ throw (0, ignis_helpers_2.getError)({
461
+ statusCode: ignis_helpers_2.HTTP.ResultCodes.RS_4.Conflict,
462
+ messageCode: common_1.SearchErrorCodes.ALREADY_EXISTS,
463
+ message: `[${this.createDocument.name}] Document '${String(id)}' already exists in collection '${collection}'.`,
464
+ });
465
+ }
466
+ return this.upsertDocument(opts);
467
+ }
468
+ async documentExists(opts) {
469
+ const { collection, id } = opts;
470
+ const rs = await this.runEngineCall({
471
+ method: this.documentExists.name,
472
+ run: async () => {
473
+ await this.client.index(collection).getDocument(id);
474
+ return true;
475
+ },
476
+ tolerate: this.notFoundFallback({
477
+ method: this.documentExists.name,
478
+ message: 'Document not found, treating as absent | collection: %s | id: %s',
479
+ args: [collection, id],
480
+ fallback: false,
481
+ }),
482
+ });
483
+ return rs;
484
+ }
485
+ /** Add-or-replace by primary key. Awaits the task, so the document is retrievable when this resolves. */
486
+ async upsertDocument(opts) {
487
+ const { collection, document } = opts;
488
+ this.assertNonEmpty({
489
+ value: collection,
490
+ name: 'collection',
491
+ method: this.upsertDocument.name,
492
+ });
493
+ await this.runEngineCall({
494
+ method: this.upsertDocument.name,
495
+ run: async () => {
496
+ await this.awaitWrite({
497
+ method: this.upsertDocument.name,
498
+ run: () => this.client.index(collection).addDocuments([document]),
499
+ });
500
+ },
501
+ });
502
+ return document;
503
+ }
504
+ /**
505
+ * Merge-update by primary key: fields absent from the patch are preserved. Meilisearch's write
506
+ * returns only a task, never the row, so the merged document must be read back - one extra round
507
+ * trip versus Typesense, and NOT atomic: a concurrent write landing between the task succeeding and
508
+ * this read means the returned document is not necessarily what this call wrote.
509
+ */
510
+ async updateDocument(opts) {
511
+ const { collection, id, document } = opts;
512
+ this.assertNonEmpty({
513
+ value: collection,
514
+ name: 'collection',
515
+ method: this.updateDocument.name,
516
+ });
517
+ this.assertNonEmpty({ value: id, name: 'document id', method: this.updateDocument.name });
518
+ const primaryKey = await this.resolvePrimaryKey({ collection });
519
+ // Meilisearch's updateDocuments is add-or-update, so a missing id would silently upsert; the
520
+ // neutral contract (and Typesense) throws 404 instead. Existence is checked before any write.
521
+ if (!(await this.documentExists({ collection, id }))) {
522
+ internal_1.SearchConnectorInternal.throwNotFoundError({
523
+ method: this.updateDocument.name,
524
+ subject: `Document '${id}' in collection '${collection}'`,
525
+ });
526
+ }
527
+ await this.runEngineCall({
528
+ method: this.updateDocument.name,
529
+ // `[primaryKey]: id` last: the path id is authoritative, so a patch carrying its own primary
530
+ // key cannot redirect the write onto a different row.
531
+ run: () => this.awaitWrite({
532
+ method: this.updateDocument.name,
533
+ run: () => this.client.index(collection).updateDocuments([{ ...document, [primaryKey]: id }]),
534
+ }),
535
+ });
536
+ return this.getDocument({ collection, id });
537
+ }
538
+ /**
539
+ * Meilisearch has no update-by-filter endpoint. `documents/edit` would do it server-side, but it is
540
+ * gated behind an experimental flag, is documented as breaking between minor versions, and has an
541
+ * open correctness bug - so this pages ids out of the uncapped `documents/fetch` route and merges
542
+ * them back in batches. NOT atomic: a concurrent write to a matched document may be overwritten.
543
+ */
544
+ async updateByFilter(opts) {
545
+ const { collection, document, filterBy } = opts;
546
+ this.assertNonEmpty({
547
+ value: collection,
548
+ name: 'collection',
549
+ method: this.updateByFilter.name,
550
+ });
551
+ this.assertNonEmpty({ value: filterBy, name: 'filterBy', method: this.updateByFilter.name });
552
+ const primaryKey = await this.resolvePrimaryKey({ collection });
553
+ const rs = await this.runEngineCall({
554
+ method: this.updateByFilter.name,
555
+ run: async () => {
556
+ const ids = await this.collectMatchingIds({ collection, filterBy, primaryKey });
557
+ for (let index = 0; index < ids.length; index += types_1.MEILISEARCH_DEFAULT_UPDATE_BATCH_SIZE) {
558
+ const batch = ids.slice(index, index + types_1.MEILISEARCH_DEFAULT_UPDATE_BATCH_SIZE);
559
+ // `[primaryKey]: id` last: each matched row keeps its own id even if the patch carries one.
560
+ const documents = batch.map(id => ({ ...document, [primaryKey]: id }));
561
+ await this.awaitWrite({
562
+ method: this.updateByFilter.name,
563
+ run: () => this.client.index(collection).updateDocuments(documents),
564
+ });
565
+ }
566
+ this.logger
567
+ .for(this.updateByFilter.name)
568
+ .info('Updated documents by filter | collection: %s | count: %s', collection, ids.length);
569
+ return { updatedCount: ids.length };
570
+ },
571
+ });
572
+ return rs;
573
+ }
574
+ /** Walks `documents/fetch` until exhausted. Not bounded by `pagination.maxTotalHits`. */
575
+ async fetchAllDocuments(opts) {
576
+ const { collection, filterBy, fields } = opts;
577
+ const rows = [];
578
+ let offset = 0;
579
+ for (;;) {
580
+ const params = {
581
+ limit: types_1.MEILISEARCH_DEFAULT_FETCH_PAGE_SIZE,
582
+ offset,
583
+ };
584
+ if (filterBy) {
585
+ params['filter'] = filterBy;
586
+ }
587
+ if (fields?.length) {
588
+ params['fields'] = fields;
589
+ }
590
+ const page = await this.client.index(collection).getDocuments(params);
591
+ rows.push(...page.results);
592
+ offset += types_1.MEILISEARCH_DEFAULT_FETCH_PAGE_SIZE;
593
+ if (offset >= page.total || page.results.length === 0) {
594
+ return rows;
595
+ }
596
+ }
597
+ }
598
+ async collectMatchingIds(opts) {
599
+ const { collection, filterBy, primaryKey } = opts;
600
+ const ids = [];
601
+ const rows = await this.fetchAllDocuments({
602
+ collection,
603
+ filterBy,
604
+ fields: [primaryKey],
605
+ });
606
+ for (const row of rows) {
607
+ if (isRecord(row) && row[primaryKey] !== undefined) {
608
+ ids.push(String(row[primaryKey]));
609
+ }
610
+ }
611
+ return ids;
612
+ }
613
+ async deleteDocument(opts) {
614
+ const { collection, id } = opts;
615
+ const rs = await this.runEngineCall({
616
+ method: this.deleteDocument.name,
617
+ run: async () => {
618
+ await this.awaitWrite({
619
+ method: this.deleteDocument.name,
620
+ run: () => this.client.index(collection).deleteDocument(id),
621
+ });
622
+ return true;
623
+ },
624
+ tolerate: this.notFoundFallback({
625
+ method: this.deleteDocument.name,
626
+ message: 'Document not found, returning false | collection: %s | id: %s',
627
+ args: [collection, id],
628
+ fallback: false,
629
+ }),
630
+ });
631
+ return rs;
632
+ }
633
+ /**
634
+ * Delete-by-filter IS native here (unlike update-by-filter). The count is read from the FINISHED
635
+ * task's `details.deletedDocuments` - a pre-count would be wrong in both directions if a concurrent
636
+ * write added or removed a matching document between counting and deleting.
637
+ */
638
+ async deleteByFilter(opts) {
639
+ const { collection, filterBy } = opts;
640
+ this.assertNonEmpty({ value: filterBy, name: 'filterBy', method: this.deleteByFilter.name });
641
+ const rs = await this.runEngineCall({
642
+ method: this.deleteByFilter.name,
643
+ run: async () => {
644
+ const task = await this.awaitWrite({
645
+ method: this.deleteByFilter.name,
646
+ run: () => this.client.index(collection).deleteDocuments({ filter: filterBy }),
647
+ });
648
+ const deleted = task.details?.['deletedDocuments'];
649
+ if (typeof deleted !== 'number') {
650
+ throw (0, ignis_helpers_2.getError)({
651
+ message: `[${this.deleteByFilter.name}] Task ${task.taskUid} reported no deletedDocuments count | collection: ${collection}`,
652
+ });
653
+ }
654
+ return deleted;
655
+ },
656
+ });
657
+ return rs;
658
+ }
659
+ async deleteAllDocuments(opts) {
660
+ const { collection } = opts;
661
+ const rs = await this.runEngineCall({
662
+ method: this.deleteAllDocuments.name,
663
+ run: async () => {
664
+ await this.awaitWrite({
665
+ method: this.deleteAllDocuments.name,
666
+ run: () => this.client.index(collection).deleteAllDocuments(),
667
+ });
668
+ return true;
669
+ },
670
+ });
671
+ return rs;
672
+ }
673
+ /**
674
+ * Batches through addDocuments, awaiting each batch's task before starting the next. Meilisearch
675
+ * import is batch-atomic, so `count.fail` is structurally always 0: a batch either lands whole or
676
+ * throws. A thrown import means the batches after the failure point did not land - the error's
677
+ * `details` carry `processedCount` so callers can resume from there.
678
+ */
679
+ async importDocuments(opts) {
680
+ const { collection, documents, batchSize } = opts;
681
+ const size = batchSize ?? types_1.MEILISEARCH_DEFAULT_UPDATE_BATCH_SIZE;
682
+ const rs = await this.runEngineCall({
683
+ method: this.importDocuments.name,
684
+ run: async () => {
685
+ const responses = [];
686
+ let processedCount = 0;
687
+ for (let index = 0; index < documents.length; index += size) {
688
+ const batch = documents.slice(index, index + size);
689
+ try {
690
+ const task = await this.awaitWrite({
691
+ method: this.importDocuments.name,
692
+ run: () => this.client.index(collection).addDocuments(batch),
693
+ });
694
+ responses.push(task);
695
+ processedCount += batch.length;
696
+ }
697
+ catch (error) {
698
+ // Earlier batches are already persisted server-side, so EVERY failure carries partial
699
+ // progress - callers decide to resume from processedCount or retry the whole import.
700
+ const details = { totalCount: documents.length, processedCount };
701
+ // An error the framework already shaped (waitForTask's 504 task_timeout, its
702
+ // task-failed 503, a sanitized 4xx) keeps its statusCode/messageCode - re-wrapping
703
+ // would erase those semantics behind a generic 503. Progress is merged onto it.
704
+ if ((0, ignis_helpers_1.isApplicationError)(error)) {
705
+ error.extra = {
706
+ ...error.extra,
707
+ details: { ...error.extra?.['details'], ...details },
708
+ };
709
+ throw error;
710
+ }
711
+ internal_1.SearchConnectorInternal.wrapDependencyError({
712
+ method: this.importDocuments.name,
713
+ error,
714
+ logger: this.logger,
715
+ details,
716
+ });
717
+ }
718
+ }
719
+ this.logger
720
+ .for(this.importDocuments.name)
721
+ .info('Imported documents | collection: %s | ok: %s', collection, documents.length);
722
+ // A task that did not succeed already threw, so every document in a resolved import landed.
723
+ return { count: { success: documents.length, fail: 0 }, responses };
724
+ },
725
+ });
726
+ return rs;
727
+ }
728
+ /** Newline-delimited JSON, matching the Typesense connector's export contract. */
729
+ async exportDocuments(opts) {
730
+ const { collection, filterBy, includeFields } = opts;
731
+ const rs = await this.runEngineCall({
732
+ method: this.exportDocuments.name,
733
+ run: async () => {
734
+ // Pages to exhaustion. A single fetch would silently truncate at the page size, which for an
735
+ // export - the primitive people back up and reindex with - is data loss without an error.
736
+ const rows = await this.fetchAllDocuments({
737
+ collection,
738
+ ...(filterBy ? { filterBy } : {}),
739
+ ...(includeFields?.length ? { fields: includeFields } : {}),
740
+ });
741
+ return rows.map(row => JSON.stringify(row)).join('\n');
742
+ },
743
+ });
744
+ return rs;
745
+ }
746
+ async search(opts) {
747
+ const { collection, params } = opts;
748
+ const rs = await this.runEngineCall({
749
+ method: this.search.name,
750
+ run: async () => {
751
+ const wire = isRecord(params) ? params : {};
752
+ const { q, ...rest } = wire;
753
+ const raw = await this.client
754
+ .index(collection)
755
+ .search(typeof q === 'string' && q !== '*' ? q : null, rest);
756
+ return mapSearchResult(raw);
757
+ },
758
+ tolerate: {
759
+ when: error => internal_2.MeilisearchInternal.isNotFoundError({ error }),
760
+ handle: () => {
761
+ this.logger
762
+ .for(this.search.name)
763
+ .warn('Search on missing collection, returning empty | name: %s', collection);
764
+ return { found: 0, isFoundExact: true, hits: [] };
765
+ },
766
+ },
767
+ });
768
+ return rs;
769
+ }
770
+ /**
771
+ * Batched, non-federated: N queries in one round trip, N result sets back. `commonParams` are
772
+ * defaults - a per-query param always wins over them, so a query's own `q` is never clobbered.
773
+ */
774
+ async multiSearch(opts) {
775
+ const { searches, union: isUnion, commonParams, options } = opts;
776
+ if (isUnion) {
777
+ throw (0, ignis_helpers_2.getError)({
778
+ statusCode: ignis_helpers_2.HTTP.ResultCodes.RS_5.NotImplemented,
779
+ messageCode: common_1.CoreErrorCodes.NOT_SUPPORTED,
780
+ message: `[${MeilisearchConnector.name}] Union multi-search is not supported - Meilisearch merges results through its federation option, which this connector does not model.`,
781
+ });
782
+ }
783
+ const rs = await this.runEngineCall({
784
+ method: this.multiSearch.name,
785
+ run: () => {
786
+ const common = isRecord(commonParams) ? commonParams : {};
787
+ const queries = searches.filter(isRecord).map(entry => {
788
+ const { collection, ...rest } = entry;
789
+ // `common` first: a per-query param overrides the shared default, never the reverse.
790
+ return { indexUid: collection, q: '', ...common, ...rest };
791
+ });
792
+ return this.client.multiSearch({ queries, ...(isRecord(options) ? options : {}) });
793
+ },
794
+ });
795
+ return rs;
796
+ }
797
+ /** Meilisearch infers the primary key from the first document; the compiler pins it, and the index reports it. */
798
+ async resolvePrimaryKey(opts) {
799
+ const { collection } = opts;
800
+ const cached = this.primaryKeyByCollection.get(collection);
801
+ if (cached) {
802
+ return cached;
803
+ }
804
+ // Wrapped so a raw getIndex failure is sanitized here rather than escaping through whichever
805
+ // write (create/update/updateBy) triggered the lookup and leaking engine detail.
806
+ const index = await this.runEngineCall({
807
+ method: this.resolvePrimaryKey.name,
808
+ run: () => this.client.getIndex(collection),
809
+ });
810
+ const primaryKey = isRecord(index) ? index['primaryKey'] : undefined;
811
+ if (typeof primaryKey !== 'string' || primaryKey.length === 0) {
812
+ throw (0, ignis_helpers_2.getError)({
813
+ message: `[${this.resolvePrimaryKey.name}] Collection '${collection}' has no primary key - Meilisearch cannot merge-update without one.`,
814
+ });
815
+ }
816
+ this.primaryKeyByCollection.set(collection, primaryKey);
817
+ return primaryKey;
818
+ }
819
+ }
820
+ exports.MeilisearchConnector = MeilisearchConnector;
821
+ //# sourceMappingURL=connector.js.map