@sixthsummit/ship-api 0.0.0-stage → 4.1.1

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 (556) hide show
  1. package/CHANGELOG.md +605 -0
  2. package/LICENSE +202 -0
  3. package/NOTICE +4 -0
  4. package/README.md +58 -2
  5. package/cli/commands/add.js +537 -0
  6. package/cli/commands/contract.js +2 -0
  7. package/cli/commands/create.js +250 -0
  8. package/cli/commands/dev.js +227 -0
  9. package/cli/commands/doctor.js +286 -0
  10. package/cli/commands/generate.js +937 -0
  11. package/cli/commands/graph.js +2 -0
  12. package/cli/commands/migrate-orm.js +1171 -0
  13. package/cli/commands/update.js +37 -0
  14. package/cli/ship-api.js +285 -0
  15. package/lib/app/auth/AuthProvider.d.ts +91 -0
  16. package/lib/app/auth/AuthProvider.d.ts.map +1 -0
  17. package/lib/app/auth/AuthProvider.js +13 -0
  18. package/lib/app/auth/AuthProvider.js.map +1 -0
  19. package/lib/app/auth/adapters/firebase.d.ts +79 -0
  20. package/lib/app/auth/adapters/firebase.d.ts.map +1 -0
  21. package/lib/app/auth/adapters/firebase.js +122 -0
  22. package/lib/app/auth/adapters/firebase.js.map +1 -0
  23. package/lib/app/auth/adapters/jwtCookie.d.ts +55 -0
  24. package/lib/app/auth/adapters/jwtCookie.d.ts.map +1 -0
  25. package/lib/app/auth/adapters/jwtCookie.js +120 -0
  26. package/lib/app/auth/adapters/jwtCookie.js.map +1 -0
  27. package/lib/app/auth/index.d.ts +8 -0
  28. package/lib/app/auth/index.d.ts.map +1 -0
  29. package/lib/app/auth/index.js +7 -0
  30. package/lib/app/auth/index.js.map +1 -0
  31. package/lib/app/auth/jwt/AuthFlow.d.ts +94 -0
  32. package/lib/app/auth/jwt/AuthFlow.d.ts.map +1 -0
  33. package/lib/app/auth/jwt/AuthFlow.js +127 -0
  34. package/lib/app/auth/jwt/AuthFlow.js.map +1 -0
  35. package/lib/app/auth/jwt/DrizzleRefreshTokenStore.d.ts +80 -0
  36. package/lib/app/auth/jwt/DrizzleRefreshTokenStore.d.ts.map +1 -0
  37. package/lib/app/auth/jwt/DrizzleRefreshTokenStore.js +134 -0
  38. package/lib/app/auth/jwt/DrizzleRefreshTokenStore.js.map +1 -0
  39. package/lib/app/auth/jwt/JwtSigner.d.ts +123 -0
  40. package/lib/app/auth/jwt/JwtSigner.d.ts.map +1 -0
  41. package/lib/app/auth/jwt/JwtSigner.js +118 -0
  42. package/lib/app/auth/jwt/JwtSigner.js.map +1 -0
  43. package/lib/app/auth/jwt/RefreshTokenStore.d.ts +97 -0
  44. package/lib/app/auth/jwt/RefreshTokenStore.d.ts.map +1 -0
  45. package/lib/app/auth/jwt/RefreshTokenStore.js +122 -0
  46. package/lib/app/auth/jwt/RefreshTokenStore.js.map +1 -0
  47. package/lib/app/auth/permissionDefinition.d.ts +20 -0
  48. package/lib/app/auth/permissionDefinition.d.ts.map +1 -0
  49. package/lib/app/auth/permissionDefinition.js +2 -0
  50. package/lib/app/auth/permissionDefinition.js.map +1 -0
  51. package/lib/app/context/RequestContext.d.ts +59 -0
  52. package/lib/app/context/RequestContext.d.ts.map +1 -0
  53. package/lib/app/context/RequestContext.js +25 -0
  54. package/lib/app/context/RequestContext.js.map +1 -0
  55. package/lib/app/db/QueryOptions.d.ts +82 -0
  56. package/lib/app/db/QueryOptions.d.ts.map +1 -0
  57. package/lib/app/db/QueryOptions.js +37 -0
  58. package/lib/app/db/QueryOptions.js.map +1 -0
  59. package/lib/app/db/baseFields.d.ts +60 -0
  60. package/lib/app/db/baseFields.d.ts.map +1 -0
  61. package/lib/app/db/baseFields.js +54 -0
  62. package/lib/app/db/baseFields.js.map +1 -0
  63. package/lib/app/db/buildWhere.d.ts +22 -0
  64. package/lib/app/db/buildWhere.d.ts.map +1 -0
  65. package/lib/app/db/buildWhere.js +75 -0
  66. package/lib/app/db/buildWhere.js.map +1 -0
  67. package/lib/app/db/client.d.ts +111 -0
  68. package/lib/app/db/client.d.ts.map +1 -0
  69. package/lib/app/db/client.js +99 -0
  70. package/lib/app/db/client.js.map +1 -0
  71. package/lib/app/db/tenantScoped.d.ts +59 -0
  72. package/lib/app/db/tenantScoped.d.ts.map +1 -0
  73. package/lib/app/db/tenantScoped.js +54 -0
  74. package/lib/app/db/tenantScoped.js.map +1 -0
  75. package/lib/app/db/transaction.d.ts +58 -0
  76. package/lib/app/db/transaction.d.ts.map +1 -0
  77. package/lib/app/db/transaction.js +106 -0
  78. package/lib/app/db/transaction.js.map +1 -0
  79. package/lib/app/health/HealthCheck.d.ts +121 -0
  80. package/lib/app/health/HealthCheck.d.ts.map +1 -0
  81. package/lib/app/health/HealthCheck.js +151 -0
  82. package/lib/app/health/HealthCheck.js.map +1 -0
  83. package/lib/app/health/redisHealthCheck.d.ts +14 -0
  84. package/lib/app/health/redisHealthCheck.d.ts.map +1 -0
  85. package/lib/app/health/redisHealthCheck.js +21 -0
  86. package/lib/app/health/redisHealthCheck.js.map +1 -0
  87. package/lib/app/lifecycle/Bootstrapper.d.ts +92 -0
  88. package/lib/app/lifecycle/Bootstrapper.d.ts.map +1 -0
  89. package/lib/app/lifecycle/Bootstrapper.js +99 -0
  90. package/lib/app/lifecycle/Bootstrapper.js.map +1 -0
  91. package/lib/app/registry/routes.d.ts +89 -0
  92. package/lib/app/registry/routes.d.ts.map +1 -0
  93. package/lib/app/registry/routes.js +72 -0
  94. package/lib/app/registry/routes.js.map +1 -0
  95. package/lib/app/services/DrizzleEntityService.d.ts +123 -0
  96. package/lib/app/services/DrizzleEntityService.d.ts.map +1 -0
  97. package/lib/app/services/DrizzleEntityService.js +342 -0
  98. package/lib/app/services/DrizzleEntityService.js.map +1 -0
  99. package/lib/app/services/RedisProvider.d.ts +52 -0
  100. package/lib/app/services/RedisProvider.d.ts.map +1 -0
  101. package/lib/app/services/RedisProvider.js +75 -0
  102. package/lib/app/services/RedisProvider.js.map +1 -0
  103. package/lib/app/services/cache/Cache.d.ts +70 -0
  104. package/lib/app/services/cache/Cache.d.ts.map +1 -0
  105. package/lib/app/services/cache/Cache.js +18 -0
  106. package/lib/app/services/cache/Cache.js.map +1 -0
  107. package/lib/app/services/cache/InMemoryCache.d.ts +35 -0
  108. package/lib/app/services/cache/InMemoryCache.d.ts.map +1 -0
  109. package/lib/app/services/cache/InMemoryCache.js +76 -0
  110. package/lib/app/services/cache/InMemoryCache.js.map +1 -0
  111. package/lib/app/services/cache/RedisCache.d.ts +99 -0
  112. package/lib/app/services/cache/RedisCache.d.ts.map +1 -0
  113. package/lib/app/services/cache/RedisCache.js +150 -0
  114. package/lib/app/services/cache/RedisCache.js.map +1 -0
  115. package/lib/app/services/cache/cached.d.ts +30 -0
  116. package/lib/app/services/cache/cached.d.ts.map +1 -0
  117. package/lib/app/services/cache/cached.js +38 -0
  118. package/lib/app/services/cache/cached.js.map +1 -0
  119. package/lib/app/services/cache/index.d.ts +5 -0
  120. package/lib/app/services/cache/index.d.ts.map +1 -0
  121. package/lib/app/services/cache/index.js +4 -0
  122. package/lib/app/services/cache/index.js.map +1 -0
  123. package/lib/app/services/cron/defineCron.d.ts +57 -0
  124. package/lib/app/services/cron/defineCron.d.ts.map +1 -0
  125. package/lib/app/services/cron/defineCron.js +15 -0
  126. package/lib/app/services/cron/defineCron.js.map +1 -0
  127. package/lib/app/services/cron/index.d.ts +2 -0
  128. package/lib/app/services/cron/index.d.ts.map +1 -0
  129. package/lib/app/services/cron/index.js +2 -0
  130. package/lib/app/services/cron/index.js.map +1 -0
  131. package/lib/app/services/hooks/LifecycleHooks.d.ts +61 -0
  132. package/lib/app/services/hooks/LifecycleHooks.d.ts.map +1 -0
  133. package/lib/app/services/hooks/LifecycleHooks.js +85 -0
  134. package/lib/app/services/hooks/LifecycleHooks.js.map +1 -0
  135. package/lib/app/services/jobs/JobsManager.d.ts +67 -0
  136. package/lib/app/services/jobs/JobsManager.d.ts.map +1 -0
  137. package/lib/app/services/jobs/JobsManager.js +121 -0
  138. package/lib/app/services/jobs/JobsManager.js.map +1 -0
  139. package/lib/app/services/jobs/bullBoard.d.ts +72 -0
  140. package/lib/app/services/jobs/bullBoard.d.ts.map +1 -0
  141. package/lib/app/services/jobs/bullBoard.js +96 -0
  142. package/lib/app/services/jobs/bullBoard.js.map +1 -0
  143. package/lib/app/services/jobs/defineJob.d.ts +81 -0
  144. package/lib/app/services/jobs/defineJob.d.ts.map +1 -0
  145. package/lib/app/services/jobs/defineJob.js +49 -0
  146. package/lib/app/services/jobs/defineJob.js.map +1 -0
  147. package/lib/app/services/jobs/index.d.ts +4 -0
  148. package/lib/app/services/jobs/index.d.ts.map +1 -0
  149. package/lib/app/services/jobs/index.js +4 -0
  150. package/lib/app/services/jobs/index.js.map +1 -0
  151. package/lib/app/services/rateLimit/InMemorySlidingWindowBackend.d.ts +23 -0
  152. package/lib/app/services/rateLimit/InMemorySlidingWindowBackend.d.ts.map +1 -0
  153. package/lib/app/services/rateLimit/InMemorySlidingWindowBackend.js +51 -0
  154. package/lib/app/services/rateLimit/InMemorySlidingWindowBackend.js.map +1 -0
  155. package/lib/app/services/rateLimit/RateLimitBackend.d.ts +41 -0
  156. package/lib/app/services/rateLimit/RateLimitBackend.d.ts.map +1 -0
  157. package/lib/app/services/rateLimit/RateLimitBackend.js +19 -0
  158. package/lib/app/services/rateLimit/RateLimitBackend.js.map +1 -0
  159. package/lib/app/services/rateLimit/RedisSlidingWindowBackend.d.ts +16 -0
  160. package/lib/app/services/rateLimit/RedisSlidingWindowBackend.d.ts.map +1 -0
  161. package/lib/app/services/rateLimit/RedisSlidingWindowBackend.js +80 -0
  162. package/lib/app/services/rateLimit/RedisSlidingWindowBackend.js.map +1 -0
  163. package/lib/app/services/rateLimit/index.d.ts +4 -0
  164. package/lib/app/services/rateLimit/index.d.ts.map +1 -0
  165. package/lib/app/services/rateLimit/index.js +3 -0
  166. package/lib/app/services/rateLimit/index.js.map +1 -0
  167. package/lib/app/services/storage/DiskStorageAdapter.d.ts +62 -0
  168. package/lib/app/services/storage/DiskStorageAdapter.d.ts.map +1 -0
  169. package/lib/app/services/storage/DiskStorageAdapter.js +295 -0
  170. package/lib/app/services/storage/DiskStorageAdapter.js.map +1 -0
  171. package/lib/app/services/storage/GCSStorageAdapter.d.ts +44 -0
  172. package/lib/app/services/storage/GCSStorageAdapter.d.ts.map +1 -0
  173. package/lib/app/services/storage/GCSStorageAdapter.js +133 -0
  174. package/lib/app/services/storage/GCSStorageAdapter.js.map +1 -0
  175. package/lib/app/services/storage/S3StorageAdapter.d.ts +57 -0
  176. package/lib/app/services/storage/S3StorageAdapter.d.ts.map +1 -0
  177. package/lib/app/services/storage/S3StorageAdapter.js +162 -0
  178. package/lib/app/services/storage/S3StorageAdapter.js.map +1 -0
  179. package/lib/app/services/storage/StorageService.d.ts +88 -0
  180. package/lib/app/services/storage/StorageService.d.ts.map +1 -0
  181. package/lib/app/services/storage/StorageService.js +18 -0
  182. package/lib/app/services/storage/StorageService.js.map +1 -0
  183. package/lib/app/services/storage/index.d.ts +5 -0
  184. package/lib/app/services/storage/index.d.ts.map +1 -0
  185. package/lib/app/services/storage/index.js +4 -0
  186. package/lib/app/services/storage/index.js.map +1 -0
  187. package/lib/app/utils/ContextValidators.d.ts +46 -0
  188. package/lib/app/utils/ContextValidators.d.ts.map +1 -0
  189. package/lib/app/utils/ContextValidators.js +81 -0
  190. package/lib/app/utils/ContextValidators.js.map +1 -0
  191. package/lib/app/utils/defineEnv.d.ts +80 -0
  192. package/lib/app/utils/defineEnv.d.ts.map +1 -0
  193. package/lib/app/utils/defineEnv.js +95 -0
  194. package/lib/app/utils/defineEnv.js.map +1 -0
  195. package/lib/client.d.ts +139 -0
  196. package/lib/client.d.ts.map +1 -0
  197. package/lib/client.js +98 -0
  198. package/lib/client.js.map +1 -0
  199. package/lib/contract/application.d.ts +3 -0
  200. package/lib/contract/application.d.ts.map +1 -0
  201. package/lib/contract/application.js +2 -0
  202. package/lib/contract/application.js.map +1 -0
  203. package/lib/contract/client.d.ts +3 -0
  204. package/lib/contract/client.d.ts.map +1 -0
  205. package/lib/contract/client.js +3 -0
  206. package/lib/contract/client.js.map +1 -0
  207. package/lib/contract/index.d.ts +3 -0
  208. package/lib/contract/index.d.ts.map +1 -0
  209. package/lib/contract/index.js +3 -0
  210. package/lib/contract/index.js.map +1 -0
  211. package/lib/contract/manifest.d.ts +3 -0
  212. package/lib/contract/manifest.d.ts.map +1 -0
  213. package/lib/contract/manifest.js +2 -0
  214. package/lib/contract/manifest.js.map +1 -0
  215. package/lib/contract/openapi.d.ts +3 -0
  216. package/lib/contract/openapi.d.ts.map +1 -0
  217. package/lib/contract/openapi.js +3 -0
  218. package/lib/contract/openapi.js.map +1 -0
  219. package/lib/contract/project.d.ts +3 -0
  220. package/lib/contract/project.d.ts.map +1 -0
  221. package/lib/contract/project.js +3 -0
  222. package/lib/contract/project.js.map +1 -0
  223. package/lib/contract/schema.d.ts +3 -0
  224. package/lib/contract/schema.d.ts.map +1 -0
  225. package/lib/contract/schema.js +3 -0
  226. package/lib/contract/schema.js.map +1 -0
  227. package/lib/drizzle/index.d.ts +3 -0
  228. package/lib/drizzle/index.d.ts.map +1 -0
  229. package/lib/drizzle/index.js +3 -0
  230. package/lib/drizzle/index.js.map +1 -0
  231. package/lib/hono/auth.d.ts +6 -0
  232. package/lib/hono/auth.d.ts.map +1 -0
  233. package/lib/hono/auth.js +54 -0
  234. package/lib/hono/auth.js.map +1 -0
  235. package/lib/hono/index.d.ts +4 -0
  236. package/lib/hono/index.d.ts.map +1 -0
  237. package/lib/hono/index.js +4 -0
  238. package/lib/hono/index.js.map +1 -0
  239. package/lib/http/app/createApp.d.ts +132 -0
  240. package/lib/http/app/createApp.d.ts.map +1 -0
  241. package/lib/http/app/createApp.js +215 -0
  242. package/lib/http/app/createApp.js.map +1 -0
  243. package/lib/http/app/devRoutes.d.ts +31 -0
  244. package/lib/http/app/devRoutes.d.ts.map +1 -0
  245. package/lib/http/app/devRoutes.js +145 -0
  246. package/lib/http/app/devRoutes.js.map +1 -0
  247. package/lib/http/app/errors.d.ts +45 -0
  248. package/lib/http/app/errors.d.ts.map +1 -0
  249. package/lib/http/app/errors.js +93 -0
  250. package/lib/http/app/errors.js.map +1 -0
  251. package/lib/http/app/health.d.ts +66 -0
  252. package/lib/http/app/health.d.ts.map +1 -0
  253. package/lib/http/app/health.js +104 -0
  254. package/lib/http/app/health.js.map +1 -0
  255. package/lib/http/errors/AppError.d.ts +10 -0
  256. package/lib/http/errors/AppError.d.ts.map +1 -0
  257. package/lib/http/errors/AppError.js +19 -0
  258. package/lib/http/errors/AppError.js.map +1 -0
  259. package/lib/http/errors/AuthenticationError.d.ts +8 -0
  260. package/lib/http/errors/AuthenticationError.d.ts.map +1 -0
  261. package/lib/http/errors/AuthenticationError.js +10 -0
  262. package/lib/http/errors/AuthenticationError.js.map +1 -0
  263. package/lib/http/errors/AuthorizationError.d.ts +8 -0
  264. package/lib/http/errors/AuthorizationError.d.ts.map +1 -0
  265. package/lib/http/errors/AuthorizationError.js +10 -0
  266. package/lib/http/errors/AuthorizationError.js.map +1 -0
  267. package/lib/http/errors/BadRequestError.d.ts +8 -0
  268. package/lib/http/errors/BadRequestError.d.ts.map +1 -0
  269. package/lib/http/errors/BadRequestError.js +10 -0
  270. package/lib/http/errors/BadRequestError.js.map +1 -0
  271. package/lib/http/errors/ConflictError.d.ts +8 -0
  272. package/lib/http/errors/ConflictError.d.ts.map +1 -0
  273. package/lib/http/errors/ConflictError.js +10 -0
  274. package/lib/http/errors/ConflictError.js.map +1 -0
  275. package/lib/http/errors/InternalServerError.d.ts +8 -0
  276. package/lib/http/errors/InternalServerError.d.ts.map +1 -0
  277. package/lib/http/errors/InternalServerError.js +10 -0
  278. package/lib/http/errors/InternalServerError.js.map +1 -0
  279. package/lib/http/errors/NotFoundError.d.ts +8 -0
  280. package/lib/http/errors/NotFoundError.d.ts.map +1 -0
  281. package/lib/http/errors/NotFoundError.js +10 -0
  282. package/lib/http/errors/NotFoundError.js.map +1 -0
  283. package/lib/http/errors/RateLimitError.d.ts +13 -0
  284. package/lib/http/errors/RateLimitError.d.ts.map +1 -0
  285. package/lib/http/errors/RateLimitError.js +16 -0
  286. package/lib/http/errors/RateLimitError.js.map +1 -0
  287. package/lib/http/errors/ServiceUnavailableError.d.ts +8 -0
  288. package/lib/http/errors/ServiceUnavailableError.d.ts.map +1 -0
  289. package/lib/http/errors/ServiceUnavailableError.js +10 -0
  290. package/lib/http/errors/ServiceUnavailableError.js.map +1 -0
  291. package/lib/http/errors/ValidationError.d.ts +9 -0
  292. package/lib/http/errors/ValidationError.d.ts.map +1 -0
  293. package/lib/http/errors/ValidationError.js +12 -0
  294. package/lib/http/errors/ValidationError.js.map +1 -0
  295. package/lib/http/errors/index.d.ts +11 -0
  296. package/lib/http/errors/index.d.ts.map +1 -0
  297. package/lib/http/errors/index.js +12 -0
  298. package/lib/http/errors/index.js.map +1 -0
  299. package/lib/http/middleware/apiKey.d.ts +9 -0
  300. package/lib/http/middleware/apiKey.d.ts.map +1 -0
  301. package/lib/http/middleware/apiKey.js +71 -0
  302. package/lib/http/middleware/apiKey.js.map +1 -0
  303. package/lib/http/middleware/csrf.d.ts +63 -0
  304. package/lib/http/middleware/csrf.d.ts.map +1 -0
  305. package/lib/http/middleware/csrf.js +169 -0
  306. package/lib/http/middleware/csrf.js.map +1 -0
  307. package/lib/http/middleware/httpLogger.d.ts +39 -0
  308. package/lib/http/middleware/httpLogger.d.ts.map +1 -0
  309. package/lib/http/middleware/httpLogger.js +118 -0
  310. package/lib/http/middleware/httpLogger.js.map +1 -0
  311. package/lib/http/middleware/idempotency.d.ts +48 -0
  312. package/lib/http/middleware/idempotency.d.ts.map +1 -0
  313. package/lib/http/middleware/idempotency.js +180 -0
  314. package/lib/http/middleware/idempotency.js.map +1 -0
  315. package/lib/http/middleware/rateLimit.d.ts +105 -0
  316. package/lib/http/middleware/rateLimit.d.ts.map +1 -0
  317. package/lib/http/middleware/rateLimit.js +84 -0
  318. package/lib/http/middleware/rateLimit.js.map +1 -0
  319. package/lib/http/middleware/requireAuth.d.ts +58 -0
  320. package/lib/http/middleware/requireAuth.d.ts.map +1 -0
  321. package/lib/http/middleware/requireAuth.js +63 -0
  322. package/lib/http/middleware/requireAuth.js.map +1 -0
  323. package/lib/http/middleware/requirePermission.d.ts +23 -0
  324. package/lib/http/middleware/requirePermission.d.ts.map +1 -0
  325. package/lib/http/middleware/requirePermission.js +50 -0
  326. package/lib/http/middleware/requirePermission.js.map +1 -0
  327. package/lib/http/middleware/resolveTenant.d.ts +41 -0
  328. package/lib/http/middleware/resolveTenant.d.ts.map +1 -0
  329. package/lib/http/middleware/resolveTenant.js +17 -0
  330. package/lib/http/middleware/resolveTenant.js.map +1 -0
  331. package/lib/http/streaming/sse.d.ts +31 -0
  332. package/lib/http/streaming/sse.d.ts.map +1 -0
  333. package/lib/http/streaming/sse.js +11 -0
  334. package/lib/http/streaming/sse.js.map +1 -0
  335. package/lib/http/streaming/streamLLM.d.ts +94 -0
  336. package/lib/http/streaming/streamLLM.d.ts.map +1 -0
  337. package/lib/http/streaming/streamLLM.js +94 -0
  338. package/lib/http/streaming/streamLLM.js.map +1 -0
  339. package/lib/http/utils/authCookies.d.ts +74 -0
  340. package/lib/http/utils/authCookies.d.ts.map +1 -0
  341. package/lib/http/utils/authCookies.js +102 -0
  342. package/lib/http/utils/authCookies.js.map +1 -0
  343. package/lib/http/utils/clientIp.d.ts +85 -0
  344. package/lib/http/utils/clientIp.d.ts.map +1 -0
  345. package/lib/http/utils/clientIp.js +249 -0
  346. package/lib/http/utils/clientIp.js.map +1 -0
  347. package/lib/http/utils/index.d.ts +4 -0
  348. package/lib/http/utils/index.d.ts.map +1 -0
  349. package/lib/http/utils/index.js +5 -0
  350. package/lib/http/utils/index.js.map +1 -0
  351. package/lib/http/utils/metaTags.d.ts +49 -0
  352. package/lib/http/utils/metaTags.d.ts.map +1 -0
  353. package/lib/http/utils/metaTags.js +32 -0
  354. package/lib/http/utils/metaTags.js.map +1 -0
  355. package/lib/http/utils/publicSuffix.d.ts +34 -0
  356. package/lib/http/utils/publicSuffix.d.ts.map +1 -0
  357. package/lib/http/utils/publicSuffix.js +276 -0
  358. package/lib/http/utils/publicSuffix.js.map +1 -0
  359. package/lib/http/utils/uploads.d.ts +92 -0
  360. package/lib/http/utils/uploads.d.ts.map +1 -0
  361. package/lib/http/utils/uploads.js +126 -0
  362. package/lib/http/utils/uploads.js.map +1 -0
  363. package/lib/http/utils/validate.d.ts +41 -0
  364. package/lib/http/utils/validate.d.ts.map +1 -0
  365. package/lib/http/utils/validate.js +55 -0
  366. package/lib/http/utils/validate.js.map +1 -0
  367. package/lib/http/utils/webhooks.d.ts +63 -0
  368. package/lib/http/utils/webhooks.d.ts.map +1 -0
  369. package/lib/http/utils/webhooks.js +133 -0
  370. package/lib/http/utils/webhooks.js.map +1 -0
  371. package/lib/http/ws/auth.d.ts +46 -0
  372. package/lib/http/ws/auth.d.ts.map +1 -0
  373. package/lib/http/ws/auth.js +123 -0
  374. package/lib/http/ws/auth.js.map +1 -0
  375. package/lib/index.d.ts +80 -0
  376. package/lib/index.d.ts.map +1 -0
  377. package/lib/index.js +61 -0
  378. package/lib/index.js.map +1 -0
  379. package/lib/kernel/index.d.ts +3 -0
  380. package/lib/kernel/index.d.ts.map +1 -0
  381. package/lib/kernel/index.js +3 -0
  382. package/lib/kernel/index.js.map +1 -0
  383. package/lib/libraries/.gitkeep +0 -0
  384. package/lib/libraries/ai/CHANGELOG.md +17 -0
  385. package/lib/libraries/ai/README.md +164 -0
  386. package/lib/libraries/ai/adapters/AnthropicAdapter.ts +382 -0
  387. package/lib/libraries/ai/adapters/LLMProvider.ts +76 -0
  388. package/lib/libraries/ai/adapters/OpenAIAdapter.ts +466 -0
  389. package/lib/libraries/ai/experimental/index.ts +20 -0
  390. package/lib/libraries/ai/index.ts +128 -0
  391. package/lib/libraries/ai/library.json +19 -0
  392. package/lib/libraries/ai/loop/agentLoop.ts +377 -0
  393. package/lib/libraries/ai/prompts/definePrompt.ts +0 -0
  394. package/lib/libraries/ai/rag/retrieveAndAnswer.ts +177 -0
  395. package/lib/libraries/ai/streaming/streamLLM.ts +94 -0
  396. package/lib/libraries/ai/structured/completeStructured.ts +143 -0
  397. package/lib/libraries/ai/tokens/Tokenizer.ts +216 -0
  398. package/lib/libraries/ai/tools/defineTool.ts +208 -0
  399. package/lib/libraries/ai/types.ts +260 -0
  400. package/lib/libraries/chunking/ChunkingService.ts +103 -0
  401. package/lib/libraries/chunking/README.md +104 -0
  402. package/lib/libraries/chunking/docs/api-reference.md +549 -0
  403. package/lib/libraries/chunking/docs/best-practices.md +321 -0
  404. package/lib/libraries/chunking/docs/code-organization.md +538 -0
  405. package/lib/libraries/chunking/docs/configuration.md +418 -0
  406. package/lib/libraries/chunking/docs/index.md +236 -0
  407. package/lib/libraries/chunking/docs/quick-start.md +298 -0
  408. package/lib/libraries/chunking/docs/strategies.md +407 -0
  409. package/lib/libraries/chunking/docs/summary.md +258 -0
  410. package/lib/libraries/chunking/docs/troubleshooting.md +527 -0
  411. package/lib/libraries/chunking/index.ts +17 -0
  412. package/lib/libraries/chunking/library.json +16 -0
  413. package/lib/libraries/chunking/strategies/ChunkingStrategy.ts +13 -0
  414. package/lib/libraries/chunking/strategies/FixedLengthChunkingStrategy.ts +88 -0
  415. package/lib/libraries/chunking/strategies/SemanticChunkingStrategy.ts +389 -0
  416. package/lib/libraries/chunking/strategies/SlidingWindowChunkingStrategy.ts +258 -0
  417. package/lib/libraries/chunking/types/index.ts +63 -0
  418. package/lib/libraries/email/EmailService.ts +591 -0
  419. package/lib/libraries/email/README.md +777 -0
  420. package/lib/libraries/email/TemplateRegistry.ts +148 -0
  421. package/lib/libraries/email/TemplateRenderer.ts +273 -0
  422. package/lib/libraries/email/index.ts +4 -0
  423. package/lib/libraries/email/initializeEmailService.ts +60 -0
  424. package/lib/libraries/email/library.json +12 -0
  425. package/lib/libraries/email/types/EmailAddress.ts +4 -0
  426. package/lib/libraries/email/types/EmailAttachment.ts +11 -0
  427. package/lib/libraries/email/types/EmailTag.ts +9 -0
  428. package/lib/libraries/email/types/EmailTemplate.ts +124 -0
  429. package/lib/libraries/email/types/SendBatchEmailsOptions.ts +9 -0
  430. package/lib/libraries/email/types/SendBatchEmailsResult.ts +9 -0
  431. package/lib/libraries/email/types/SendEmailOptions.ts +33 -0
  432. package/lib/libraries/email/types/SendEmailResult.ts +9 -0
  433. package/lib/libraries/email/types/index.ts +8 -0
  434. package/lib/libraries/weaviate/QueryBuilder.ts +292 -0
  435. package/lib/libraries/weaviate/README.md +284 -0
  436. package/lib/libraries/weaviate/Weaviate.ts +1419 -0
  437. package/lib/libraries/weaviate/WeaviateConfig.ts +268 -0
  438. package/lib/libraries/weaviate/docs/.gitkeep +1 -0
  439. package/lib/libraries/weaviate/docs/API_REFERENCE.md +1067 -0
  440. package/lib/libraries/weaviate/docs/CONFIGURATION.md +320 -0
  441. package/lib/libraries/weaviate/docs/ERROR_HANDLING.md +271 -0
  442. package/lib/libraries/weaviate/docs/MULTI_TENANCY.md +348 -0
  443. package/lib/libraries/weaviate/docs/PERFORMANCE.md +602 -0
  444. package/lib/libraries/weaviate/docs/PLUGIN_DEVELOPMENT.md +547 -0
  445. package/lib/libraries/weaviate/docs/QUICK_START.md +443 -0
  446. package/lib/libraries/weaviate/docs/README.md +269 -0
  447. package/lib/libraries/weaviate/docs/SCHEMA_GUIDE.md +630 -0
  448. package/lib/libraries/weaviate/docs/WEAVIATE_README.md +520 -0
  449. package/lib/libraries/weaviate/errors/WeaviateError.ts +92 -0
  450. package/lib/libraries/weaviate/errors/index.ts +1 -0
  451. package/lib/libraries/weaviate/index.ts +35 -0
  452. package/lib/libraries/weaviate/library.json +26 -0
  453. package/lib/libraries/weaviate/plugins/index.ts +2 -0
  454. package/lib/libraries/weaviate/schemas/SchemaRegistry.ts +284 -0
  455. package/lib/libraries/weaviate/schemas/index.ts +2 -0
  456. package/lib/libraries/weaviate/types/BM25SearchOptions.ts +9 -0
  457. package/lib/libraries/weaviate/types/ExtendedWeaviateClient.ts +7 -0
  458. package/lib/libraries/weaviate/types/HybridSearchOptions.ts +11 -0
  459. package/lib/libraries/weaviate/types/MultiTenancy.ts +81 -0
  460. package/lib/libraries/weaviate/types/Plugin.ts +17 -0
  461. package/lib/libraries/weaviate/types/SchemaConfig.ts +25 -0
  462. package/lib/libraries/weaviate/types/SearchMethod.ts +8 -0
  463. package/lib/libraries/weaviate/types/SearchOptions.ts +16 -0
  464. package/lib/libraries/weaviate/types/SearchRequest.ts +19 -0
  465. package/lib/libraries/weaviate/types/SearchResult.ts +16 -0
  466. package/lib/libraries/weaviate/types/SearchableField.ts +87 -0
  467. package/lib/libraries/weaviate/types/VectorIndexConfig.ts +19 -0
  468. package/lib/libraries/weaviate/types/VectorSearchOptions.ts +18 -0
  469. package/lib/libraries/weaviate/types/VectorizerConfig.ts +8 -0
  470. package/lib/libraries/weaviate/types/index.ts +29 -0
  471. package/lib/libraries/weaviate/utils/TenantContextManager.ts +94 -0
  472. package/lib/modules/accounts/index.ts +47 -0
  473. package/lib/modules/accounts/module.json +15 -0
  474. package/lib/modules/accounts/permissions.ts +33 -0
  475. package/lib/modules/accounts/routes.ts +200 -0
  476. package/lib/modules/accounts/schema.ts +219 -0
  477. package/lib/modules/accounts/services/AccountService.ts +44 -0
  478. package/lib/modules/accounts/validation/schemas.ts +70 -0
  479. package/lib/modules/oauth/adapters/GmailOAuthAdapter.ts +35 -0
  480. package/lib/modules/oauth/adapters/GoogleOAuthAdapter.ts +278 -0
  481. package/lib/modules/oauth/adapters/MicrosoftOAuthAdapter.ts +269 -0
  482. package/lib/modules/oauth/adapters/MockOAuthAdapter.ts +138 -0
  483. package/lib/modules/oauth/adapters/OAuthAdapter.ts +211 -0
  484. package/lib/modules/oauth/adapters/OAuthAdapterRegistry.ts +77 -0
  485. package/lib/modules/oauth/adapters/OutlookOAuthAdapter.ts +38 -0
  486. package/lib/modules/oauth/index.ts +79 -0
  487. package/lib/modules/oauth/module.json +23 -0
  488. package/lib/modules/oauth/permissions.ts +39 -0
  489. package/lib/modules/oauth/routes.ts +497 -0
  490. package/lib/modules/oauth/schema.ts +127 -0
  491. package/lib/modules/oauth/services/OAuthConnectionService.ts +147 -0
  492. package/lib/modules/oauth/state.ts +234 -0
  493. package/lib/modules/oauth/stateJtiCache.ts +85 -0
  494. package/lib/modules/oauth/verifyIdToken.ts +178 -0
  495. package/lib/modules/outbox/EventEmitter.ts +106 -0
  496. package/lib/modules/outbox/OutboxDrainer.ts +163 -0
  497. package/lib/modules/outbox/handlers/EventHandler.ts +115 -0
  498. package/lib/modules/outbox/index.ts +43 -0
  499. package/lib/modules/outbox/module.json +15 -0
  500. package/lib/modules/outbox/permissions.ts +36 -0
  501. package/lib/modules/outbox/routes.ts +219 -0
  502. package/lib/modules/outbox/schema.ts +207 -0
  503. package/lib/modules/outbox/services/OutboxEventService.ts +223 -0
  504. package/lib/observability/logger.d.ts +30 -0
  505. package/lib/observability/logger.d.ts.map +1 -0
  506. package/lib/observability/logger.js +110 -0
  507. package/lib/observability/logger.js.map +1 -0
  508. package/lib/observability/metrics.d.ts +3 -0
  509. package/lib/observability/metrics.d.ts.map +1 -0
  510. package/lib/observability/metrics.js +3 -0
  511. package/lib/observability/metrics.js.map +1 -0
  512. package/lib/observability/otel.d.ts +3 -0
  513. package/lib/observability/otel.d.ts.map +1 -0
  514. package/lib/observability/otel.js +3 -0
  515. package/lib/observability/otel.js.map +1 -0
  516. package/lib/observability/safeErrorFields.d.ts +14 -0
  517. package/lib/observability/safeErrorFields.d.ts.map +1 -0
  518. package/lib/observability/safeErrorFields.js +14 -0
  519. package/lib/observability/safeErrorFields.js.map +1 -0
  520. package/lib/observability/tracing.d.ts +3 -0
  521. package/lib/observability/tracing.d.ts.map +1 -0
  522. package/lib/observability/tracing.js +3 -0
  523. package/lib/observability/tracing.js.map +1 -0
  524. package/lib/package.json +4 -0
  525. package/lib/testing.d.ts +3 -0
  526. package/lib/testing.d.ts.map +1 -0
  527. package/lib/testing.js +3 -0
  528. package/lib/testing.js.map +1 -0
  529. package/package.json +193 -3
  530. package/templates/default/.claude/agents/qa-brief.md +106 -0
  531. package/templates/default/.claude/commands/sherpa-brief.md +23 -0
  532. package/templates/default/.cursor/rules/api.mdc +80 -0
  533. package/templates/default/.cursor/rules/commits.mdc +88 -0
  534. package/templates/default/.cursor/rules/security.mdc +92 -0
  535. package/templates/default/.cursor/rules/testing.mdc +123 -0
  536. package/templates/default/.cursor/rules/typescript.mdc +86 -0
  537. package/templates/default/.env.example +79 -0
  538. package/templates/default/.github/workflows/sherpa-brief.yml +180 -0
  539. package/templates/default/AGENTS.md +166 -0
  540. package/templates/default/CLAUDE.md +17 -0
  541. package/templates/default/README.md +97 -0
  542. package/templates/default/_gitignore +27 -0
  543. package/templates/default/docker-compose.yml +83 -0
  544. package/templates/default/drizzle.config.ts +34 -0
  545. package/templates/default/eslint.config.mjs +106 -0
  546. package/templates/default/package.json +57 -0
  547. package/templates/default/ship-api.config.ts +21 -0
  548. package/templates/default/src/client.ts +34 -0
  549. package/templates/default/src/config/modules.ts +23 -0
  550. package/templates/default/src/db/schema.ts +26 -0
  551. package/templates/default/src/environment.ts +81 -0
  552. package/templates/default/src/index.test.ts +53 -0
  553. package/templates/default/src/index.ts +11 -0
  554. package/templates/default/src/instrumentation.ts +13 -0
  555. package/templates/default/src/server.ts +90 -0
  556. package/templates/default/tsconfig.json +24 -0
@@ -0,0 +1,1067 @@
1
+ # API Reference
2
+
3
+ Complete reference for all Weaviate framework methods, types, and interfaces.
4
+
5
+ ## 🏗️ Core Classes
6
+
7
+ ### Weaviate
8
+
9
+ Main framework class for vector search operations.
10
+
11
+ ```typescript
12
+ import Weaviate from "./Weaviate.js";
13
+
14
+ const weaviate = new Weaviate();
15
+ ```
16
+
17
+ #### Constructor
18
+
19
+ ```typescript
20
+ constructor(options?: WeaviateOptions);
21
+ ```
22
+
23
+ Creates a new Weaviate instance.
24
+
25
+ **Options:**
26
+ - `registry?`: Custom SchemaRegistry instance (optional)
27
+ - `plugins?`: Array of custom plugins to register (optional)
28
+
29
+ The client is lazily initialized on first use via `WeaviateConfigService`.
30
+
31
+ #### Methods
32
+
33
+ ##### `initializeSchemas(schemas: SchemaConfig[]): Promise<void>`
34
+
35
+ Initialize schemas in Weaviate. Registers schemas in the registry and creates them in the database.
36
+
37
+ ```typescript
38
+ await weaviate.initializeSchemas([PersonSchema, OrganizationSchema]);
39
+ ```
40
+
41
+ **Parameters:**
42
+
43
+ - `schemas`: Array of schema configurations
44
+
45
+ **Returns:** Promise that resolves when schemas are initialized
46
+
47
+ ##### `search<T>(schemaName: string, request: SearchRequest): Promise<SearchResult<T>>`
48
+
49
+ Generic search method with type-safe discriminated union.
50
+
51
+ ```typescript
52
+ // Vector search
53
+ const results = await weaviate.search("Person", {
54
+ method: "vector",
55
+ options: {
56
+ nearText: { concepts: ["engineer"], certainty: 0.7 },
57
+ limit: 10
58
+ }
59
+ });
60
+
61
+ // BM25 search
62
+ const results = await weaviate.search("Person", {
63
+ method: "bm25",
64
+ options: {
65
+ bm25: { query: "software engineer" },
66
+ limit: 10
67
+ }
68
+ });
69
+
70
+ // Hybrid search
71
+ const results = await weaviate.search("Person", {
72
+ method: "hybrid",
73
+ options: {
74
+ hybrid: { query: "machine learning expert", alpha: 0.5 },
75
+ limit: 10
76
+ }
77
+ });
78
+ ```
79
+
80
+ **Parameters:**
81
+
82
+ - `schemaName`: Name of the schema to search
83
+ - `request`: Search request object with discriminated union
84
+ - `method`: Search method ("vector", "bm25", "hybrid")
85
+ - `options`: Search options specific to the method
86
+
87
+ **Returns:** Promise resolving to search results
88
+
89
+ ##### `smartSearch<T>(schemaName: string, query: string, options?: Omit<SearchOptions, "query">): Promise<SearchResult<T>>`
90
+
91
+ Smart search with automatic method selection.
92
+
93
+ ```typescript
94
+ const results = await weaviate.smartSearch("Person", "machine learning expert", {
95
+ limit: 10,
96
+ });
97
+ ```
98
+
99
+ **Parameters:**
100
+
101
+ - `schemaName`: Name of the schema to search
102
+ - `query`: Search query string
103
+ - `options`: Optional search options
104
+
105
+ **Returns:** Promise resolving to search results
106
+
107
+ ##### `searchAll<T>(schemaNames: string[], request: SearchRequest): Promise<Record<string, SearchResult<T>>>`
108
+
109
+ Search across multiple schemas.
110
+
111
+ ```typescript
112
+ const results = await weaviate.searchAll(["Person", "Organization", "Conversation"], {
113
+ method: "hybrid",
114
+ options: {
115
+ hybrid: { query: "AI", alpha: 0.6 },
116
+ limit: 5
117
+ }
118
+ });
119
+ ```
120
+
121
+ **Parameters:**
122
+
123
+ - `schemaNames`: Array of schema names to search
124
+ - `request`: Search request object with discriminated union
125
+ - `method`: Search method ("vector", "bm25", "hybrid")
126
+ - `options`: Search options specific to the method
127
+
128
+ **Returns:** Promise resolving to results object with schema names as keys
129
+
130
+ ##### `vectorSearch<T>(schemaName: string, concepts: string[], options?: Omit<SearchOptions & VectorSearchOptions, "nearText">): Promise<SearchResult<T>>`
131
+
132
+ Convenience method for vector search.
133
+
134
+ ```typescript
135
+ const results = await weaviate.vectorSearch("Person", ["engineer", "developer"], {
136
+ certainty: 0.8,
137
+ limit: 10,
138
+ });
139
+ ```
140
+
141
+ ##### `textSearch<T>(schemaName: string, query: string, options?: Omit<SearchOptions & BM25SearchOptions, "bm25">): Promise<SearchResult<T>>`
142
+
143
+ Convenience method for BM25 text search.
144
+
145
+ ```typescript
146
+ const results = await weaviate.textSearch("Person", "software engineer", {
147
+ limit: 10,
148
+ });
149
+ ```
150
+
151
+ ##### `hybridSearch<T>(schemaName: string, query: string, options?: Omit<SearchOptions & HybridSearchOptions, "hybrid">): Promise<SearchResult<T>>`
152
+
153
+ Convenience method for hybrid search.
154
+
155
+ ```typescript
156
+ const results = await weaviate.hybridSearch("Person", "AI researcher", {
157
+ alpha: 0.5,
158
+ limit: 10,
159
+ });
160
+ ```
161
+
162
+ ##### `queryBuilder(schemaName: string): QueryBuilder`
163
+
164
+ Create a query builder for a specific schema.
165
+
166
+ ```typescript
167
+ const query = weaviate
168
+ .queryBuilder("Person")
169
+ .limit(10)
170
+ .whereField("city", "Equal", "San Francisco")
171
+ .sort("createdAt", "desc");
172
+ ```
173
+
174
+ **Returns:** QueryBuilder instance
175
+
176
+ ##### `getSchemaInfo(schemaName: string): any`
177
+
178
+ Get schema information.
179
+
180
+ ```typescript
181
+ const info = weaviate.getSchemaInfo("Person");
182
+ ```
183
+
184
+ **Returns:** Schema information object
185
+
186
+ ##### `getStats(): any`
187
+
188
+ Get service statistics.
189
+
190
+ ```typescript
191
+ const stats = weaviate.getStats();
192
+ ```
193
+
194
+ **Returns:** Statistics object
195
+
196
+ ##### `healthCheck(): Promise<boolean>`
197
+
198
+ Check if the service is healthy.
199
+
200
+ ```typescript
201
+ const isHealthy = await weaviate.healthCheck();
202
+ ```
203
+
204
+ **Returns:** Promise resolving to boolean
205
+
206
+ ##### `resetClient(): void`
207
+
208
+ Reset the client connection. Useful after connection errors - next getClient() call will re-establish the connection.
209
+
210
+ ```typescript
211
+ weaviate.resetClient();
212
+ ```
213
+
214
+ ##### `addProperty(collectionName: string, property: SearchableField): Promise<void>`
215
+
216
+ Add a property to an existing schema/collection. Use this for schema migrations when adding new fields.
217
+
218
+ ```typescript
219
+ await weaviate.addProperty("Person", {
220
+ name: "networkUserIds",
221
+ dataType: ["text[]"],
222
+ description: "User IDs who have this person in their network",
223
+ indexInverted: true,
224
+ });
225
+ ```
226
+
227
+ **Parameters:**
228
+ - `collectionName`: Name of the collection (e.g., "Person")
229
+ - `property`: Property configuration
230
+
231
+ **Throws:** Error if property already exists or collection not found
232
+
233
+ ##### `registerSchema(schema: SchemaConfig): void`
234
+
235
+ Register a custom schema.
236
+
237
+ ```typescript
238
+ weaviate.registerSchema(customSchema);
239
+ ```
240
+
241
+ ##### `registerPlugin(plugin: any): void`
242
+
243
+ Register a custom plugin.
244
+
245
+ ```typescript
246
+ weaviate.registerPlugin(new MyCustomPlugin());
247
+ ```
248
+
249
+ ##### `getRegistry(): SchemaRegistry`
250
+
251
+ Get the schema registry.
252
+
253
+ ```typescript
254
+ const registry = weaviate.getRegistry();
255
+ ```
256
+
257
+ **Returns:** SchemaRegistry instance
258
+
259
+ ### Multi-Tenancy Methods
260
+
261
+ ##### `createTenant(className: string, options: CreateTenantOptions): Promise<TenantManagementResult>`
262
+
263
+ Create a new tenant for a multi-tenant collection.
264
+
265
+ ```typescript
266
+ const result = await weaviate.createTenant("UserDocuments", {
267
+ name: "acme-corp",
268
+ activityStatus: "HOT",
269
+ });
270
+ ```
271
+
272
+ **Parameters:**
273
+
274
+ - `className`: Name of the collection
275
+ - `options`: Tenant creation options
276
+
277
+ **Returns:** Promise resolving to tenant management result
278
+
279
+ ##### `listTenants(className: string): Promise<Tenant[]>`
280
+
281
+ List all tenants for a multi-tenant collection.
282
+
283
+ ```typescript
284
+ const tenants = await weaviate.listTenants("UserDocuments");
285
+ ```
286
+
287
+ **Parameters:**
288
+
289
+ - `className`: Name of the collection
290
+
291
+ **Returns:** Promise resolving to array of tenants
292
+
293
+ ##### `getTenant(className: string, tenantName: string): Promise<Tenant | null>`
294
+
295
+ Get a specific tenant.
296
+
297
+ ```typescript
298
+ const tenant = await weaviate.getTenant("UserDocuments", "acme-corp");
299
+ ```
300
+
301
+ **Parameters:**
302
+
303
+ - `className`: Name of the collection
304
+ - `tenantName`: Name of the tenant
305
+
306
+ **Returns:** Promise resolving to tenant or null
307
+
308
+ ##### `updateTenant(className: string, tenantName: string, options: UpdateTenantOptions): Promise<TenantManagementResult>`
309
+
310
+ Update a tenant.
311
+
312
+ ```typescript
313
+ const result = await weaviate.updateTenant("UserDocuments", "acme-corp", {
314
+ activityStatus: "COLD",
315
+ });
316
+ ```
317
+
318
+ **Parameters:**
319
+
320
+ - `className`: Name of the collection
321
+ - `tenantName`: Name of the tenant
322
+ - `options`: Update options
323
+
324
+ **Returns:** Promise resolving to tenant management result
325
+
326
+ ##### `deleteTenant(className: string, tenantName: string): Promise<TenantManagementResult>`
327
+
328
+ Delete a tenant.
329
+
330
+ ```typescript
331
+ const result = await weaviate.deleteTenant("UserDocuments", "acme-corp");
332
+ ```
333
+
334
+ **Parameters:**
335
+
336
+ - `className`: Name of the collection
337
+ - `tenantName`: Name of the tenant
338
+
339
+ **Returns:** Promise resolving to tenant management result
340
+
341
+ ##### `getTenantStats(className: string): Promise<TenantStats>`
342
+
343
+ Get tenant statistics for a collection.
344
+
345
+ ```typescript
346
+ const stats = await weaviate.getTenantStats("UserDocuments");
347
+ ```
348
+
349
+ **Parameters:**
350
+
351
+ - `className`: Name of the collection
352
+
353
+ **Returns:** Promise resolving to tenant statistics
354
+
355
+ ##### `isMultiTenant(className: string): Promise<boolean>`
356
+
357
+ Check if a collection supports multi-tenancy.
358
+
359
+ ```typescript
360
+ const isMultiTenant = await weaviate.isMultiTenant("UserDocuments");
361
+ ```
362
+
363
+ **Parameters:**
364
+
365
+ - `className`: Name of the collection
366
+
367
+ **Returns:** Promise resolving to boolean
368
+
369
+ ##### `searchWithTenant<T>(schemaName: string, request: SearchRequest, tenant: string): Promise<SearchResult<T>>`
370
+
371
+ Search with tenant context.
372
+
373
+ ```typescript
374
+ const results = await weaviate.searchWithTenant(
375
+ "UserDocuments",
376
+ {
377
+ method: "hybrid",
378
+ options: {
379
+ hybrid: { query: "machine learning", alpha: 0.5 }
380
+ }
381
+ },
382
+ "acme-corp"
383
+ );
384
+ ```
385
+
386
+ **Parameters:**
387
+
388
+ - `schemaName`: Name of the schema
389
+ - `request`: Search request object with discriminated union
390
+ - `method`: Search method ("vector", "bm25", "hybrid")
391
+ - `options`: Search options specific to the method
392
+ - `tenant`: Tenant name
393
+
394
+ **Returns:** Promise resolving to search results
395
+
396
+ ##### `smartSearchWithTenant<T>(schemaName: string, query: string, tenant: string, options?: Omit<SearchOptions, "query" | "tenant">): Promise<SearchResult<T>>`
397
+
398
+ Smart search with tenant context.
399
+
400
+ ```typescript
401
+ const results = await weaviate.smartSearchWithTenant("UserDocuments", "AI expert", "acme-corp");
402
+ ```
403
+
404
+ **Parameters:**
405
+
406
+ - `schemaName`: Name of the schema
407
+ - `query`: Search query
408
+ - `tenant`: Tenant name
409
+ - `options`: Optional search options
410
+
411
+ **Returns:** Promise resolving to search results
412
+
413
+ ## 💾 CRUD Operations
414
+
415
+ ##### `createObject(obj: { class: string; properties: any }): Promise<string>`
416
+
417
+ Create a single object in Weaviate.
418
+
419
+ ```typescript
420
+ const id = await weaviate.createObject({
421
+ class: "Person",
422
+ properties: { fullName: "John Doe", email: "john@example.com" }
423
+ });
424
+ ```
425
+
426
+ **Returns:** Promise resolving to the created object's ID
427
+
428
+ ##### `createObjectsBatch(objects: Array<{ class: string; properties: any }>): Promise<string[]>`
429
+
430
+ Create multiple objects in batch.
431
+
432
+ ```typescript
433
+ const ids = await weaviate.createObjectsBatch([
434
+ { class: "Person", properties: { fullName: "Alice" } },
435
+ { class: "Person", properties: { fullName: "Bob" } }
436
+ ]);
437
+ ```
438
+
439
+ **Returns:** Promise resolving to array of created object IDs
440
+
441
+ ##### `createObjectWithVector(className: string, properties: any, vector: number[], id?: string, tenant?: string): Promise<string>`
442
+
443
+ Create an object with a custom vector.
444
+
445
+ ```typescript
446
+ const id = await weaviate.createObjectWithVector(
447
+ "Person",
448
+ { fullName: "John Doe" },
449
+ [0.1, 0.2, 0.3, ...], // embedding vector
450
+ "custom-uuid", // optional ID
451
+ "tenant-123" // optional tenant
452
+ );
453
+ ```
454
+
455
+ **Returns:** Promise resolving to the created object's ID
456
+
457
+ ##### `getObject<T>(className: string, objectId: string, tenant?: string): Promise<T | null>`
458
+
459
+ Get an object by ID.
460
+
461
+ ```typescript
462
+ const person = await weaviate.getObject<Person>("Person", "uuid-123");
463
+ const tenantPerson = await weaviate.getObject<Person>("Person", "uuid-123", "tenant-123");
464
+ ```
465
+
466
+ **Returns:** Promise resolving to the object or null
467
+
468
+ ##### `updateObject(className: string, objectId: string, properties: any): Promise<void>`
469
+
470
+ Update an object's properties.
471
+
472
+ ```typescript
473
+ await weaviate.updateObject("Person", "uuid-123", {
474
+ email: "newemail@example.com"
475
+ });
476
+ ```
477
+
478
+ ##### `updateObjectWithTenant(className: string, objectId: string, properties: any, tenant?: string, skipHealthCheck?: boolean): Promise<void>`
479
+
480
+ Update an object with tenant support.
481
+
482
+ ```typescript
483
+ await weaviate.updateObjectWithTenant("Person", "uuid-123", { email: "new@example.com" }, "tenant-123");
484
+ ```
485
+
486
+ ##### `updateObjectWithVector(className: string, objectId: string, properties: any, vector: number[], tenant?: string): Promise<void>`
487
+
488
+ Update an object with a new vector.
489
+
490
+ ```typescript
491
+ await weaviate.updateObjectWithVector(
492
+ "Person",
493
+ "uuid-123",
494
+ { fullName: "Updated Name" },
495
+ [0.2, 0.3, 0.4, ...],
496
+ "tenant-123"
497
+ );
498
+ ```
499
+
500
+ ##### `deleteObject(className: string, objectId: string): Promise<void>`
501
+
502
+ Delete an object by ID.
503
+
504
+ ```typescript
505
+ await weaviate.deleteObject("Person", "uuid-123");
506
+ ```
507
+
508
+ ##### `getObjectCount(className: string): Promise<number>`
509
+
510
+ Get the total count of objects in a class.
511
+
512
+ ```typescript
513
+ const count = await weaviate.getObjectCount("Person");
514
+ console.log(`Total people: ${count}`);
515
+ ```
516
+
517
+ **Returns:** Promise resolving to the count
518
+
519
+ ## 🔧 QueryBuilder
520
+
521
+ Fluent API for building complex queries.
522
+
523
+ ```typescript
524
+ import { QueryBuilder, createQueryBuilder } from "./QueryBuilder.js";
525
+
526
+ const query = createQueryBuilder("Person");
527
+ ```
528
+
529
+ ### Methods
530
+
531
+ ##### `limit(count: number): QueryBuilder`
532
+
533
+ Set the maximum number of results.
534
+
535
+ ```typescript
536
+ query.limit(10);
537
+ ```
538
+
539
+ ##### `offset(count: number): QueryBuilder`
540
+
541
+ Set the number of results to skip.
542
+
543
+ ```typescript
544
+ query.offset(20);
545
+ ```
546
+
547
+ ##### `whereField(field: string, operator: string, value: any): QueryBuilder`
548
+
549
+ Add a field filter.
550
+
551
+ ```typescript
552
+ query.whereField("city", "Equal", "San Francisco");
553
+ query.whereField("age", "GreaterThan", 25);
554
+ ```
555
+
556
+ **Supported operators:**
557
+
558
+ - `Equal`, `NotEqual`
559
+ - `GreaterThan`, `GreaterThanEqual`
560
+ - `LessThan`, `LessThanEqual`
561
+ - `Like`, `NotLike`
562
+ - `In`, `NotIn`
563
+
564
+ ##### `sort(field: string, direction: "asc" | "desc"): QueryBuilder`
565
+
566
+ Add sorting.
567
+
568
+ ```typescript
569
+ query.sort("createdAt", "desc");
570
+ ```
571
+
572
+ ##### `buildVectorSearch(concepts: string[], options?: VectorSearchOptions): SearchOptions`
573
+
574
+ Build vector search options.
575
+
576
+ ```typescript
577
+ const options = query.buildVectorSearch(["engineer", "developer"], {
578
+ certainty: 0.8,
579
+ });
580
+ ```
581
+
582
+ ##### `buildBM25Search(query: string, options?: BM25SearchOptions): SearchOptions`
583
+
584
+ Build BM25 search options.
585
+
586
+ ```typescript
587
+ const options = query.buildBM25Search("software engineer");
588
+ ```
589
+
590
+ ##### `buildHybridSearch(query: string, options?: HybridSearchOptions): SearchOptions`
591
+
592
+ Build hybrid search options.
593
+
594
+ ```typescript
595
+ const options = query.buildHybridSearch("AI researcher", {
596
+ alpha: 0.5,
597
+ });
598
+ ```
599
+
600
+ ## 🎯 QueryPatterns
601
+
602
+ Pre-built query patterns for common operations.
603
+
604
+ ```typescript
605
+ import { QueryPatterns } from "./QueryBuilder.js";
606
+ ```
607
+
608
+ ### Methods
609
+
610
+ ##### `dateRange(field: string, startDate: Date, endDate: Date): any`
611
+
612
+ Create a date range filter.
613
+
614
+ ```typescript
615
+ const dateFilter = QueryPatterns.dateRange("createdAt", startDate, endDate);
616
+ ```
617
+
618
+ ##### `textContains(field: string, value: string): any`
619
+
620
+ Create a text contains filter.
621
+
622
+ ```typescript
623
+ const textFilter = QueryPatterns.textContains("bio", "engineer");
624
+ ```
625
+
626
+ ##### `exactMatch(field: string, value: any): any`
627
+
628
+ Create an exact match filter.
629
+
630
+ ```typescript
631
+ const exactFilter = QueryPatterns.exactMatch("email", "john@example.com");
632
+ ```
633
+
634
+ ##### `arrayContains(field: string, value: any): any`
635
+
636
+ Create an array contains filter.
637
+
638
+ ```typescript
639
+ const arrayFilter = QueryPatterns.arrayContains("skills", "JavaScript");
640
+ ```
641
+
642
+ ## 🔧 WeaviateConfigService
643
+
644
+ Configuration service for Weaviate client.
645
+
646
+ ```typescript
647
+ import { WeaviateConfigService } from "./WeaviateConfig.js";
648
+ ```
649
+
650
+ ### Methods
651
+
652
+ ##### `static initializeClient(config?: WeaviateConfig): Promise<WeaviateClient>`
653
+
654
+ Initialize Weaviate client.
655
+
656
+ ```typescript
657
+ const client = await WeaviateConfigService.initializeClient();
658
+ ```
659
+
660
+ **Parameters:**
661
+
662
+ - `config`: Optional custom configuration
663
+
664
+ **Returns:** Promise resolving to WeaviateClient
665
+
666
+ ##### `static async getClient(skipHealthCheck?: boolean): Promise<WeaviateClient>`
667
+
668
+ Get the initialized client with optional health check. Lazily initializes if not already done.
669
+
670
+ ```typescript
671
+ const client = await WeaviateConfigService.getClient();
672
+
673
+ // Skip health check for batch operations
674
+ const client = await WeaviateConfigService.getClient(true);
675
+ ```
676
+
677
+ **Parameters:**
678
+ - `skipHealthCheck`: Skip periodic health check (default: `false`)
679
+
680
+ **Returns:** Promise resolving to WeaviateClient instance
681
+
682
+ ##### `static getClientSync(): WeaviateClient`
683
+
684
+ Get the initialized client synchronously (without health check). Throws if not initialized.
685
+
686
+ ```typescript
687
+ const client = WeaviateConfigService.getClientSync();
688
+ ```
689
+
690
+ **Returns:** WeaviateClient instance
691
+
692
+ **Throws:** Error if client not initialized
693
+
694
+ ##### `static healthCheck(): Promise<boolean>`
695
+
696
+ Check client health.
697
+
698
+ ```typescript
699
+ const isHealthy = await WeaviateConfigService.healthCheck();
700
+ ```
701
+
702
+ **Returns:** Promise resolving to boolean
703
+
704
+ ##### `static getClusterInfo(): Promise<any>`
705
+
706
+ Get cluster information.
707
+
708
+ ```typescript
709
+ const info = await WeaviateConfigService.getClusterInfo();
710
+ ```
711
+
712
+ **Returns:** Promise resolving to cluster info
713
+
714
+ ##### `static resetClient(): void`
715
+
716
+ Reset the client (useful for testing).
717
+
718
+ ```typescript
719
+ WeaviateConfigService.resetClient();
720
+ ```
721
+
722
+ ## 📊 Types and Interfaces
723
+
724
+ ### SearchOptions
725
+
726
+ Base interface for all search options.
727
+
728
+ ```typescript
729
+ interface SearchOptions {
730
+ query?: string;
731
+ limit?: number;
732
+ offset?: number;
733
+ where?: Record<string, any>;
734
+ sort?: Array<{ field: string; order: "asc" | "desc" }>;
735
+ fields?: string[]; // Specific fields to return
736
+ includeVector?: boolean;
737
+ includeMetadata?: boolean;
738
+ tenant?: TenantContext; // Tenant context for multi-tenant operations
739
+ }
740
+ ```
741
+
742
+ ### VectorSearchOptions
743
+
744
+ Options for vector search (extends SearchOptions).
745
+
746
+ ```typescript
747
+ interface VectorSearchOptions extends SearchOptions {
748
+ nearText?: {
749
+ concepts: string[];
750
+ certainty?: number;
751
+ moveAwayFrom?: { concepts: string[]; force: number };
752
+ moveTo?: { concepts: string[]; force: number };
753
+ };
754
+ nearVector?: {
755
+ vector: number[];
756
+ certainty?: number;
757
+ };
758
+ nearObject?: {
759
+ id: string;
760
+ certainty?: number;
761
+ };
762
+ }
763
+ ```
764
+
765
+ ### BM25SearchOptions
766
+
767
+ Options for BM25 keyword search (extends SearchOptions).
768
+
769
+ ```typescript
770
+ interface BM25SearchOptions extends SearchOptions {
771
+ bm25?: {
772
+ query: string;
773
+ properties?: string[];
774
+ boost?: number;
775
+ };
776
+ }
777
+ ```
778
+
779
+ ### HybridSearchOptions
780
+
781
+ Options for hybrid search combining vector and BM25 (extends SearchOptions).
782
+
783
+ ```typescript
784
+ interface HybridSearchOptions extends SearchOptions {
785
+ hybrid?: {
786
+ query: string;
787
+ alpha?: number; // 0 = pure BM25, 1 = pure vector
788
+ properties?: string[];
789
+ vector?: number[];
790
+ fusionType?: "RelativeScore" | "Ranked";
791
+ };
792
+ }
793
+ ```
794
+
795
+ ### SearchResult
796
+
797
+ Result structure for search operations.
798
+
799
+ ```typescript
800
+ interface SearchResult<T = any> {
801
+ objects: Array<{
802
+ id: string;
803
+ properties: T;
804
+ vector?: number[];
805
+ certainty?: number;
806
+ distance?: number;
807
+ score?: number;
808
+ metadata?: {
809
+ explainScore?: string;
810
+ [key: string]: any;
811
+ };
812
+ }>;
813
+ total?: number;
814
+ took?: number;
815
+ }
816
+ ```
817
+
818
+ ### SchemaConfig
819
+
820
+ Schema configuration interface.
821
+
822
+ ```typescript
823
+ interface SchemaConfig {
824
+ name: string;
825
+ description?: string;
826
+ vectorizer?: Vectorizer;
827
+ vectorIndexConfig?: VectorIndexConfig;
828
+ properties: SearchableField[];
829
+ searchableFields?: string[];
830
+ filterableFields?: string[];
831
+ sortableFields?: string[];
832
+ relationships?: {
833
+ [fieldName: string]: {
834
+ targetClass: string;
835
+ type: "one-to-one" | "one-to-many" | "many-to-one" | "many-to-many";
836
+ required?: boolean;
837
+ };
838
+ };
839
+ plugins?: string[];
840
+ metadata?: Record<string, any>;
841
+ multiTenancy?: MultiTenancyConfig;
842
+ }
843
+ ```
844
+
845
+ ### Multi-Tenancy Types
846
+
847
+ #### MultiTenancyConfig
848
+
849
+ Multi-tenancy configuration for schemas.
850
+
851
+ ```typescript
852
+ interface MultiTenancyConfig {
853
+ enabled: boolean;
854
+ autoTenantCreation?: boolean;
855
+ autoTenantActivation?: boolean;
856
+ }
857
+ ```
858
+
859
+ #### Tenant
860
+
861
+ Tenant information.
862
+
863
+ ```typescript
864
+ interface Tenant {
865
+ name: string;
866
+ status: "ACTIVE" | "INACTIVE" | "COLD";
867
+ activityStatus?: "HOT" | "WARM" | "COLD";
868
+ createdAt?: string;
869
+ updatedAt?: string;
870
+ }
871
+ ```
872
+
873
+ #### CreateTenantOptions
874
+
875
+ Options for creating a tenant.
876
+
877
+ ```typescript
878
+ interface CreateTenantOptions {
879
+ name: string;
880
+ activityStatus?: "HOT" | "WARM" | "COLD";
881
+ }
882
+ ```
883
+
884
+ #### UpdateTenantOptions
885
+
886
+ Options for updating a tenant.
887
+
888
+ ```typescript
889
+ interface UpdateTenantOptions {
890
+ activityStatus?: "HOT" | "WARM" | "COLD";
891
+ }
892
+ ```
893
+
894
+ #### TenantContext
895
+
896
+ Tenant context for operations.
897
+
898
+ ```typescript
899
+ interface TenantContext {
900
+ tenant: string;
901
+ activityStatus?: "HOT" | "WARM" | "COLD";
902
+ }
903
+ ```
904
+
905
+ #### TenantStats
906
+
907
+ Tenant statistics.
908
+
909
+ ```typescript
910
+ interface TenantStats {
911
+ totalTenants: number;
912
+ activeTenants: number;
913
+ inactiveTenants: number;
914
+ coldTenants: number;
915
+ }
916
+ ```
917
+
918
+ #### TenantManagementResult
919
+
920
+ Result of tenant management operations.
921
+
922
+ ```typescript
923
+ interface TenantManagementResult {
924
+ success: boolean;
925
+ tenant?: Tenant;
926
+ error?: string;
927
+ }
928
+ ```
929
+
930
+ ### SearchableField
931
+
932
+ Field configuration interface for Weaviate schema properties.
933
+
934
+ ```typescript
935
+ interface SearchableField {
936
+ /** The name of the field in the Weaviate schema */
937
+ name: string;
938
+
939
+ /** Array of data types that this field can contain (e.g., ['string', 'text']) */
940
+ dataType: string[];
941
+
942
+ /** Optional human-readable description of what this field represents */
943
+ description?: string;
944
+
945
+ /** Whether to create an inverted index for this field (enables full-text search) */
946
+ indexInverted?: boolean;
947
+
948
+ /** Whether this field can be used in filter operations (WHERE clauses) */
949
+ indexFilterable?: boolean;
950
+
951
+ /** Whether this field is included in search operations */
952
+ indexSearchable?: boolean;
953
+
954
+ /** Weight for BM25 scoring algorithm (higher = more important) */
955
+ weight?: number;
956
+
957
+ /** Boost factor for vector search similarity scores */
958
+ boost?: number;
959
+
960
+ /** Tokenization method for text fields */
961
+ tokenization?: "field" | "word" | "lowercase" | "whitespace";
962
+ }
963
+ ```
964
+
965
+ ### Plugin
966
+
967
+ Plugin interface for extending Weaviate functionality.
968
+
969
+ ```typescript
970
+ interface Plugin {
971
+ /** Unique plugin identifier */
972
+ name: string;
973
+
974
+ /** Plugin version string */
975
+ version: string;
976
+
977
+ /** Optional human-readable description */
978
+ description?: string;
979
+
980
+ /** List of schema names this plugin applies to (empty = all schemas) */
981
+ schemas?: string[];
982
+
983
+ /** Hook functions for intercepting operations */
984
+ hooks: {
985
+ /** Called before search operations - can modify search options */
986
+ beforeSearch?: (schemaName: string, options: SearchOptions) => SearchOptions;
987
+
988
+ /** Called after search operations - can modify results */
989
+ afterSearch?: <T>(schemaName: string, result: SearchResult<T>) => SearchResult<T>;
990
+
991
+ /** Called before object creation */
992
+ beforeCreate?: (schemaName: string, data: any) => any;
993
+
994
+ /** Called after object creation */
995
+ afterCreate?: (schemaName: string, data: any, id: string) => void;
996
+ };
997
+ }
998
+ ```
999
+
1000
+ ## 🚀 Usage Examples
1001
+
1002
+ ### Basic Search
1003
+
1004
+ ```typescript
1005
+ // Initialize
1006
+ await WeaviateConfigService.initializeClient();
1007
+ const weaviate = new Weaviate();
1008
+ await weaviate.initializeSchemas(schemas);
1009
+
1010
+ // Search using discriminated union pattern
1011
+ const results = await weaviate.search("Person", {
1012
+ method: "hybrid",
1013
+ options: {
1014
+ hybrid: { query: "software engineer", alpha: 0.5 },
1015
+ limit: 10,
1016
+ }
1017
+ });
1018
+ ```
1019
+
1020
+ ### Advanced Query Building
1021
+
1022
+ ```typescript
1023
+ const query = weaviate
1024
+ .queryBuilder("Person")
1025
+ .limit(10)
1026
+ .whereField("city", "Equal", "San Francisco")
1027
+ .whereField("age", "GreaterThan", 25)
1028
+ .sort("createdAt", "desc");
1029
+
1030
+ const results = await weaviate.search("Person", {
1031
+ method: "hybrid",
1032
+ options: query.buildHybridSearch("engineer", { alpha: 0.6 }),
1033
+ });
1034
+ ```
1035
+
1036
+ ### Multi-Schema Search
1037
+
1038
+ ```typescript
1039
+ const results = await weaviate.searchAll(["Person", "Organization"], {
1040
+ method: "hybrid",
1041
+ options: {
1042
+ hybrid: { query: "AI", alpha: 0.5 },
1043
+ limit: 5,
1044
+ }
1045
+ });
1046
+
1047
+ console.log("People:", results.Person.objects);
1048
+ console.log("Organizations:", results.Organization.objects);
1049
+ ```
1050
+
1051
+ ### Custom Plugin Registration
1052
+
1053
+ ```typescript
1054
+ // Register custom plugin
1055
+ weaviate.registerPlugin(new MyCustomPlugin());
1056
+
1057
+ // Use in schema
1058
+ const Person: SchemaConfig = {
1059
+ name: "Person",
1060
+ plugins: ["myCustomPlugin"],
1061
+ // ... rest of schema
1062
+ };
1063
+ ```
1064
+
1065
+ ---
1066
+
1067
+ **Next Steps**: For performance optimization tips, see the [Performance Guide](./PERFORMANCE.md).