@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.
- package/CHANGELOG.md +605 -0
- package/LICENSE +202 -0
- package/NOTICE +4 -0
- package/README.md +58 -2
- package/cli/commands/add.js +537 -0
- package/cli/commands/contract.js +2 -0
- package/cli/commands/create.js +250 -0
- package/cli/commands/dev.js +227 -0
- package/cli/commands/doctor.js +286 -0
- package/cli/commands/generate.js +937 -0
- package/cli/commands/graph.js +2 -0
- package/cli/commands/migrate-orm.js +1171 -0
- package/cli/commands/update.js +37 -0
- package/cli/ship-api.js +285 -0
- package/lib/app/auth/AuthProvider.d.ts +91 -0
- package/lib/app/auth/AuthProvider.d.ts.map +1 -0
- package/lib/app/auth/AuthProvider.js +13 -0
- package/lib/app/auth/AuthProvider.js.map +1 -0
- package/lib/app/auth/adapters/firebase.d.ts +79 -0
- package/lib/app/auth/adapters/firebase.d.ts.map +1 -0
- package/lib/app/auth/adapters/firebase.js +122 -0
- package/lib/app/auth/adapters/firebase.js.map +1 -0
- package/lib/app/auth/adapters/jwtCookie.d.ts +55 -0
- package/lib/app/auth/adapters/jwtCookie.d.ts.map +1 -0
- package/lib/app/auth/adapters/jwtCookie.js +120 -0
- package/lib/app/auth/adapters/jwtCookie.js.map +1 -0
- package/lib/app/auth/index.d.ts +8 -0
- package/lib/app/auth/index.d.ts.map +1 -0
- package/lib/app/auth/index.js +7 -0
- package/lib/app/auth/index.js.map +1 -0
- package/lib/app/auth/jwt/AuthFlow.d.ts +94 -0
- package/lib/app/auth/jwt/AuthFlow.d.ts.map +1 -0
- package/lib/app/auth/jwt/AuthFlow.js +127 -0
- package/lib/app/auth/jwt/AuthFlow.js.map +1 -0
- package/lib/app/auth/jwt/DrizzleRefreshTokenStore.d.ts +80 -0
- package/lib/app/auth/jwt/DrizzleRefreshTokenStore.d.ts.map +1 -0
- package/lib/app/auth/jwt/DrizzleRefreshTokenStore.js +134 -0
- package/lib/app/auth/jwt/DrizzleRefreshTokenStore.js.map +1 -0
- package/lib/app/auth/jwt/JwtSigner.d.ts +123 -0
- package/lib/app/auth/jwt/JwtSigner.d.ts.map +1 -0
- package/lib/app/auth/jwt/JwtSigner.js +118 -0
- package/lib/app/auth/jwt/JwtSigner.js.map +1 -0
- package/lib/app/auth/jwt/RefreshTokenStore.d.ts +97 -0
- package/lib/app/auth/jwt/RefreshTokenStore.d.ts.map +1 -0
- package/lib/app/auth/jwt/RefreshTokenStore.js +122 -0
- package/lib/app/auth/jwt/RefreshTokenStore.js.map +1 -0
- package/lib/app/auth/permissionDefinition.d.ts +20 -0
- package/lib/app/auth/permissionDefinition.d.ts.map +1 -0
- package/lib/app/auth/permissionDefinition.js +2 -0
- package/lib/app/auth/permissionDefinition.js.map +1 -0
- package/lib/app/context/RequestContext.d.ts +59 -0
- package/lib/app/context/RequestContext.d.ts.map +1 -0
- package/lib/app/context/RequestContext.js +25 -0
- package/lib/app/context/RequestContext.js.map +1 -0
- package/lib/app/db/QueryOptions.d.ts +82 -0
- package/lib/app/db/QueryOptions.d.ts.map +1 -0
- package/lib/app/db/QueryOptions.js +37 -0
- package/lib/app/db/QueryOptions.js.map +1 -0
- package/lib/app/db/baseFields.d.ts +60 -0
- package/lib/app/db/baseFields.d.ts.map +1 -0
- package/lib/app/db/baseFields.js +54 -0
- package/lib/app/db/baseFields.js.map +1 -0
- package/lib/app/db/buildWhere.d.ts +22 -0
- package/lib/app/db/buildWhere.d.ts.map +1 -0
- package/lib/app/db/buildWhere.js +75 -0
- package/lib/app/db/buildWhere.js.map +1 -0
- package/lib/app/db/client.d.ts +111 -0
- package/lib/app/db/client.d.ts.map +1 -0
- package/lib/app/db/client.js +99 -0
- package/lib/app/db/client.js.map +1 -0
- package/lib/app/db/tenantScoped.d.ts +59 -0
- package/lib/app/db/tenantScoped.d.ts.map +1 -0
- package/lib/app/db/tenantScoped.js +54 -0
- package/lib/app/db/tenantScoped.js.map +1 -0
- package/lib/app/db/transaction.d.ts +58 -0
- package/lib/app/db/transaction.d.ts.map +1 -0
- package/lib/app/db/transaction.js +106 -0
- package/lib/app/db/transaction.js.map +1 -0
- package/lib/app/health/HealthCheck.d.ts +121 -0
- package/lib/app/health/HealthCheck.d.ts.map +1 -0
- package/lib/app/health/HealthCheck.js +151 -0
- package/lib/app/health/HealthCheck.js.map +1 -0
- package/lib/app/health/redisHealthCheck.d.ts +14 -0
- package/lib/app/health/redisHealthCheck.d.ts.map +1 -0
- package/lib/app/health/redisHealthCheck.js +21 -0
- package/lib/app/health/redisHealthCheck.js.map +1 -0
- package/lib/app/lifecycle/Bootstrapper.d.ts +92 -0
- package/lib/app/lifecycle/Bootstrapper.d.ts.map +1 -0
- package/lib/app/lifecycle/Bootstrapper.js +99 -0
- package/lib/app/lifecycle/Bootstrapper.js.map +1 -0
- package/lib/app/registry/routes.d.ts +89 -0
- package/lib/app/registry/routes.d.ts.map +1 -0
- package/lib/app/registry/routes.js +72 -0
- package/lib/app/registry/routes.js.map +1 -0
- package/lib/app/services/DrizzleEntityService.d.ts +123 -0
- package/lib/app/services/DrizzleEntityService.d.ts.map +1 -0
- package/lib/app/services/DrizzleEntityService.js +342 -0
- package/lib/app/services/DrizzleEntityService.js.map +1 -0
- package/lib/app/services/RedisProvider.d.ts +52 -0
- package/lib/app/services/RedisProvider.d.ts.map +1 -0
- package/lib/app/services/RedisProvider.js +75 -0
- package/lib/app/services/RedisProvider.js.map +1 -0
- package/lib/app/services/cache/Cache.d.ts +70 -0
- package/lib/app/services/cache/Cache.d.ts.map +1 -0
- package/lib/app/services/cache/Cache.js +18 -0
- package/lib/app/services/cache/Cache.js.map +1 -0
- package/lib/app/services/cache/InMemoryCache.d.ts +35 -0
- package/lib/app/services/cache/InMemoryCache.d.ts.map +1 -0
- package/lib/app/services/cache/InMemoryCache.js +76 -0
- package/lib/app/services/cache/InMemoryCache.js.map +1 -0
- package/lib/app/services/cache/RedisCache.d.ts +99 -0
- package/lib/app/services/cache/RedisCache.d.ts.map +1 -0
- package/lib/app/services/cache/RedisCache.js +150 -0
- package/lib/app/services/cache/RedisCache.js.map +1 -0
- package/lib/app/services/cache/cached.d.ts +30 -0
- package/lib/app/services/cache/cached.d.ts.map +1 -0
- package/lib/app/services/cache/cached.js +38 -0
- package/lib/app/services/cache/cached.js.map +1 -0
- package/lib/app/services/cache/index.d.ts +5 -0
- package/lib/app/services/cache/index.d.ts.map +1 -0
- package/lib/app/services/cache/index.js +4 -0
- package/lib/app/services/cache/index.js.map +1 -0
- package/lib/app/services/cron/defineCron.d.ts +57 -0
- package/lib/app/services/cron/defineCron.d.ts.map +1 -0
- package/lib/app/services/cron/defineCron.js +15 -0
- package/lib/app/services/cron/defineCron.js.map +1 -0
- package/lib/app/services/cron/index.d.ts +2 -0
- package/lib/app/services/cron/index.d.ts.map +1 -0
- package/lib/app/services/cron/index.js +2 -0
- package/lib/app/services/cron/index.js.map +1 -0
- package/lib/app/services/hooks/LifecycleHooks.d.ts +61 -0
- package/lib/app/services/hooks/LifecycleHooks.d.ts.map +1 -0
- package/lib/app/services/hooks/LifecycleHooks.js +85 -0
- package/lib/app/services/hooks/LifecycleHooks.js.map +1 -0
- package/lib/app/services/jobs/JobsManager.d.ts +67 -0
- package/lib/app/services/jobs/JobsManager.d.ts.map +1 -0
- package/lib/app/services/jobs/JobsManager.js +121 -0
- package/lib/app/services/jobs/JobsManager.js.map +1 -0
- package/lib/app/services/jobs/bullBoard.d.ts +72 -0
- package/lib/app/services/jobs/bullBoard.d.ts.map +1 -0
- package/lib/app/services/jobs/bullBoard.js +96 -0
- package/lib/app/services/jobs/bullBoard.js.map +1 -0
- package/lib/app/services/jobs/defineJob.d.ts +81 -0
- package/lib/app/services/jobs/defineJob.d.ts.map +1 -0
- package/lib/app/services/jobs/defineJob.js +49 -0
- package/lib/app/services/jobs/defineJob.js.map +1 -0
- package/lib/app/services/jobs/index.d.ts +4 -0
- package/lib/app/services/jobs/index.d.ts.map +1 -0
- package/lib/app/services/jobs/index.js +4 -0
- package/lib/app/services/jobs/index.js.map +1 -0
- package/lib/app/services/rateLimit/InMemorySlidingWindowBackend.d.ts +23 -0
- package/lib/app/services/rateLimit/InMemorySlidingWindowBackend.d.ts.map +1 -0
- package/lib/app/services/rateLimit/InMemorySlidingWindowBackend.js +51 -0
- package/lib/app/services/rateLimit/InMemorySlidingWindowBackend.js.map +1 -0
- package/lib/app/services/rateLimit/RateLimitBackend.d.ts +41 -0
- package/lib/app/services/rateLimit/RateLimitBackend.d.ts.map +1 -0
- package/lib/app/services/rateLimit/RateLimitBackend.js +19 -0
- package/lib/app/services/rateLimit/RateLimitBackend.js.map +1 -0
- package/lib/app/services/rateLimit/RedisSlidingWindowBackend.d.ts +16 -0
- package/lib/app/services/rateLimit/RedisSlidingWindowBackend.d.ts.map +1 -0
- package/lib/app/services/rateLimit/RedisSlidingWindowBackend.js +80 -0
- package/lib/app/services/rateLimit/RedisSlidingWindowBackend.js.map +1 -0
- package/lib/app/services/rateLimit/index.d.ts +4 -0
- package/lib/app/services/rateLimit/index.d.ts.map +1 -0
- package/lib/app/services/rateLimit/index.js +3 -0
- package/lib/app/services/rateLimit/index.js.map +1 -0
- package/lib/app/services/storage/DiskStorageAdapter.d.ts +62 -0
- package/lib/app/services/storage/DiskStorageAdapter.d.ts.map +1 -0
- package/lib/app/services/storage/DiskStorageAdapter.js +295 -0
- package/lib/app/services/storage/DiskStorageAdapter.js.map +1 -0
- package/lib/app/services/storage/GCSStorageAdapter.d.ts +44 -0
- package/lib/app/services/storage/GCSStorageAdapter.d.ts.map +1 -0
- package/lib/app/services/storage/GCSStorageAdapter.js +133 -0
- package/lib/app/services/storage/GCSStorageAdapter.js.map +1 -0
- package/lib/app/services/storage/S3StorageAdapter.d.ts +57 -0
- package/lib/app/services/storage/S3StorageAdapter.d.ts.map +1 -0
- package/lib/app/services/storage/S3StorageAdapter.js +162 -0
- package/lib/app/services/storage/S3StorageAdapter.js.map +1 -0
- package/lib/app/services/storage/StorageService.d.ts +88 -0
- package/lib/app/services/storage/StorageService.d.ts.map +1 -0
- package/lib/app/services/storage/StorageService.js +18 -0
- package/lib/app/services/storage/StorageService.js.map +1 -0
- package/lib/app/services/storage/index.d.ts +5 -0
- package/lib/app/services/storage/index.d.ts.map +1 -0
- package/lib/app/services/storage/index.js +4 -0
- package/lib/app/services/storage/index.js.map +1 -0
- package/lib/app/utils/ContextValidators.d.ts +46 -0
- package/lib/app/utils/ContextValidators.d.ts.map +1 -0
- package/lib/app/utils/ContextValidators.js +81 -0
- package/lib/app/utils/ContextValidators.js.map +1 -0
- package/lib/app/utils/defineEnv.d.ts +80 -0
- package/lib/app/utils/defineEnv.d.ts.map +1 -0
- package/lib/app/utils/defineEnv.js +95 -0
- package/lib/app/utils/defineEnv.js.map +1 -0
- package/lib/client.d.ts +139 -0
- package/lib/client.d.ts.map +1 -0
- package/lib/client.js +98 -0
- package/lib/client.js.map +1 -0
- package/lib/contract/application.d.ts +3 -0
- package/lib/contract/application.d.ts.map +1 -0
- package/lib/contract/application.js +2 -0
- package/lib/contract/application.js.map +1 -0
- package/lib/contract/client.d.ts +3 -0
- package/lib/contract/client.d.ts.map +1 -0
- package/lib/contract/client.js +3 -0
- package/lib/contract/client.js.map +1 -0
- package/lib/contract/index.d.ts +3 -0
- package/lib/contract/index.d.ts.map +1 -0
- package/lib/contract/index.js +3 -0
- package/lib/contract/index.js.map +1 -0
- package/lib/contract/manifest.d.ts +3 -0
- package/lib/contract/manifest.d.ts.map +1 -0
- package/lib/contract/manifest.js +2 -0
- package/lib/contract/manifest.js.map +1 -0
- package/lib/contract/openapi.d.ts +3 -0
- package/lib/contract/openapi.d.ts.map +1 -0
- package/lib/contract/openapi.js +3 -0
- package/lib/contract/openapi.js.map +1 -0
- package/lib/contract/project.d.ts +3 -0
- package/lib/contract/project.d.ts.map +1 -0
- package/lib/contract/project.js +3 -0
- package/lib/contract/project.js.map +1 -0
- package/lib/contract/schema.d.ts +3 -0
- package/lib/contract/schema.d.ts.map +1 -0
- package/lib/contract/schema.js +3 -0
- package/lib/contract/schema.js.map +1 -0
- package/lib/drizzle/index.d.ts +3 -0
- package/lib/drizzle/index.d.ts.map +1 -0
- package/lib/drizzle/index.js +3 -0
- package/lib/drizzle/index.js.map +1 -0
- package/lib/hono/auth.d.ts +6 -0
- package/lib/hono/auth.d.ts.map +1 -0
- package/lib/hono/auth.js +54 -0
- package/lib/hono/auth.js.map +1 -0
- package/lib/hono/index.d.ts +4 -0
- package/lib/hono/index.d.ts.map +1 -0
- package/lib/hono/index.js +4 -0
- package/lib/hono/index.js.map +1 -0
- package/lib/http/app/createApp.d.ts +132 -0
- package/lib/http/app/createApp.d.ts.map +1 -0
- package/lib/http/app/createApp.js +215 -0
- package/lib/http/app/createApp.js.map +1 -0
- package/lib/http/app/devRoutes.d.ts +31 -0
- package/lib/http/app/devRoutes.d.ts.map +1 -0
- package/lib/http/app/devRoutes.js +145 -0
- package/lib/http/app/devRoutes.js.map +1 -0
- package/lib/http/app/errors.d.ts +45 -0
- package/lib/http/app/errors.d.ts.map +1 -0
- package/lib/http/app/errors.js +93 -0
- package/lib/http/app/errors.js.map +1 -0
- package/lib/http/app/health.d.ts +66 -0
- package/lib/http/app/health.d.ts.map +1 -0
- package/lib/http/app/health.js +104 -0
- package/lib/http/app/health.js.map +1 -0
- package/lib/http/errors/AppError.d.ts +10 -0
- package/lib/http/errors/AppError.d.ts.map +1 -0
- package/lib/http/errors/AppError.js +19 -0
- package/lib/http/errors/AppError.js.map +1 -0
- package/lib/http/errors/AuthenticationError.d.ts +8 -0
- package/lib/http/errors/AuthenticationError.d.ts.map +1 -0
- package/lib/http/errors/AuthenticationError.js +10 -0
- package/lib/http/errors/AuthenticationError.js.map +1 -0
- package/lib/http/errors/AuthorizationError.d.ts +8 -0
- package/lib/http/errors/AuthorizationError.d.ts.map +1 -0
- package/lib/http/errors/AuthorizationError.js +10 -0
- package/lib/http/errors/AuthorizationError.js.map +1 -0
- package/lib/http/errors/BadRequestError.d.ts +8 -0
- package/lib/http/errors/BadRequestError.d.ts.map +1 -0
- package/lib/http/errors/BadRequestError.js +10 -0
- package/lib/http/errors/BadRequestError.js.map +1 -0
- package/lib/http/errors/ConflictError.d.ts +8 -0
- package/lib/http/errors/ConflictError.d.ts.map +1 -0
- package/lib/http/errors/ConflictError.js +10 -0
- package/lib/http/errors/ConflictError.js.map +1 -0
- package/lib/http/errors/InternalServerError.d.ts +8 -0
- package/lib/http/errors/InternalServerError.d.ts.map +1 -0
- package/lib/http/errors/InternalServerError.js +10 -0
- package/lib/http/errors/InternalServerError.js.map +1 -0
- package/lib/http/errors/NotFoundError.d.ts +8 -0
- package/lib/http/errors/NotFoundError.d.ts.map +1 -0
- package/lib/http/errors/NotFoundError.js +10 -0
- package/lib/http/errors/NotFoundError.js.map +1 -0
- package/lib/http/errors/RateLimitError.d.ts +13 -0
- package/lib/http/errors/RateLimitError.d.ts.map +1 -0
- package/lib/http/errors/RateLimitError.js +16 -0
- package/lib/http/errors/RateLimitError.js.map +1 -0
- package/lib/http/errors/ServiceUnavailableError.d.ts +8 -0
- package/lib/http/errors/ServiceUnavailableError.d.ts.map +1 -0
- package/lib/http/errors/ServiceUnavailableError.js +10 -0
- package/lib/http/errors/ServiceUnavailableError.js.map +1 -0
- package/lib/http/errors/ValidationError.d.ts +9 -0
- package/lib/http/errors/ValidationError.d.ts.map +1 -0
- package/lib/http/errors/ValidationError.js +12 -0
- package/lib/http/errors/ValidationError.js.map +1 -0
- package/lib/http/errors/index.d.ts +11 -0
- package/lib/http/errors/index.d.ts.map +1 -0
- package/lib/http/errors/index.js +12 -0
- package/lib/http/errors/index.js.map +1 -0
- package/lib/http/middleware/apiKey.d.ts +9 -0
- package/lib/http/middleware/apiKey.d.ts.map +1 -0
- package/lib/http/middleware/apiKey.js +71 -0
- package/lib/http/middleware/apiKey.js.map +1 -0
- package/lib/http/middleware/csrf.d.ts +63 -0
- package/lib/http/middleware/csrf.d.ts.map +1 -0
- package/lib/http/middleware/csrf.js +169 -0
- package/lib/http/middleware/csrf.js.map +1 -0
- package/lib/http/middleware/httpLogger.d.ts +39 -0
- package/lib/http/middleware/httpLogger.d.ts.map +1 -0
- package/lib/http/middleware/httpLogger.js +118 -0
- package/lib/http/middleware/httpLogger.js.map +1 -0
- package/lib/http/middleware/idempotency.d.ts +48 -0
- package/lib/http/middleware/idempotency.d.ts.map +1 -0
- package/lib/http/middleware/idempotency.js +180 -0
- package/lib/http/middleware/idempotency.js.map +1 -0
- package/lib/http/middleware/rateLimit.d.ts +105 -0
- package/lib/http/middleware/rateLimit.d.ts.map +1 -0
- package/lib/http/middleware/rateLimit.js +84 -0
- package/lib/http/middleware/rateLimit.js.map +1 -0
- package/lib/http/middleware/requireAuth.d.ts +58 -0
- package/lib/http/middleware/requireAuth.d.ts.map +1 -0
- package/lib/http/middleware/requireAuth.js +63 -0
- package/lib/http/middleware/requireAuth.js.map +1 -0
- package/lib/http/middleware/requirePermission.d.ts +23 -0
- package/lib/http/middleware/requirePermission.d.ts.map +1 -0
- package/lib/http/middleware/requirePermission.js +50 -0
- package/lib/http/middleware/requirePermission.js.map +1 -0
- package/lib/http/middleware/resolveTenant.d.ts +41 -0
- package/lib/http/middleware/resolveTenant.d.ts.map +1 -0
- package/lib/http/middleware/resolveTenant.js +17 -0
- package/lib/http/middleware/resolveTenant.js.map +1 -0
- package/lib/http/streaming/sse.d.ts +31 -0
- package/lib/http/streaming/sse.d.ts.map +1 -0
- package/lib/http/streaming/sse.js +11 -0
- package/lib/http/streaming/sse.js.map +1 -0
- package/lib/http/streaming/streamLLM.d.ts +94 -0
- package/lib/http/streaming/streamLLM.d.ts.map +1 -0
- package/lib/http/streaming/streamLLM.js +94 -0
- package/lib/http/streaming/streamLLM.js.map +1 -0
- package/lib/http/utils/authCookies.d.ts +74 -0
- package/lib/http/utils/authCookies.d.ts.map +1 -0
- package/lib/http/utils/authCookies.js +102 -0
- package/lib/http/utils/authCookies.js.map +1 -0
- package/lib/http/utils/clientIp.d.ts +85 -0
- package/lib/http/utils/clientIp.d.ts.map +1 -0
- package/lib/http/utils/clientIp.js +249 -0
- package/lib/http/utils/clientIp.js.map +1 -0
- package/lib/http/utils/index.d.ts +4 -0
- package/lib/http/utils/index.d.ts.map +1 -0
- package/lib/http/utils/index.js +5 -0
- package/lib/http/utils/index.js.map +1 -0
- package/lib/http/utils/metaTags.d.ts +49 -0
- package/lib/http/utils/metaTags.d.ts.map +1 -0
- package/lib/http/utils/metaTags.js +32 -0
- package/lib/http/utils/metaTags.js.map +1 -0
- package/lib/http/utils/publicSuffix.d.ts +34 -0
- package/lib/http/utils/publicSuffix.d.ts.map +1 -0
- package/lib/http/utils/publicSuffix.js +276 -0
- package/lib/http/utils/publicSuffix.js.map +1 -0
- package/lib/http/utils/uploads.d.ts +92 -0
- package/lib/http/utils/uploads.d.ts.map +1 -0
- package/lib/http/utils/uploads.js +126 -0
- package/lib/http/utils/uploads.js.map +1 -0
- package/lib/http/utils/validate.d.ts +41 -0
- package/lib/http/utils/validate.d.ts.map +1 -0
- package/lib/http/utils/validate.js +55 -0
- package/lib/http/utils/validate.js.map +1 -0
- package/lib/http/utils/webhooks.d.ts +63 -0
- package/lib/http/utils/webhooks.d.ts.map +1 -0
- package/lib/http/utils/webhooks.js +133 -0
- package/lib/http/utils/webhooks.js.map +1 -0
- package/lib/http/ws/auth.d.ts +46 -0
- package/lib/http/ws/auth.d.ts.map +1 -0
- package/lib/http/ws/auth.js +123 -0
- package/lib/http/ws/auth.js.map +1 -0
- package/lib/index.d.ts +80 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +61 -0
- package/lib/index.js.map +1 -0
- package/lib/kernel/index.d.ts +3 -0
- package/lib/kernel/index.d.ts.map +1 -0
- package/lib/kernel/index.js +3 -0
- package/lib/kernel/index.js.map +1 -0
- package/lib/libraries/.gitkeep +0 -0
- package/lib/libraries/ai/CHANGELOG.md +17 -0
- package/lib/libraries/ai/README.md +164 -0
- package/lib/libraries/ai/adapters/AnthropicAdapter.ts +382 -0
- package/lib/libraries/ai/adapters/LLMProvider.ts +76 -0
- package/lib/libraries/ai/adapters/OpenAIAdapter.ts +466 -0
- package/lib/libraries/ai/experimental/index.ts +20 -0
- package/lib/libraries/ai/index.ts +128 -0
- package/lib/libraries/ai/library.json +19 -0
- package/lib/libraries/ai/loop/agentLoop.ts +377 -0
- package/lib/libraries/ai/prompts/definePrompt.ts +0 -0
- package/lib/libraries/ai/rag/retrieveAndAnswer.ts +177 -0
- package/lib/libraries/ai/streaming/streamLLM.ts +94 -0
- package/lib/libraries/ai/structured/completeStructured.ts +143 -0
- package/lib/libraries/ai/tokens/Tokenizer.ts +216 -0
- package/lib/libraries/ai/tools/defineTool.ts +208 -0
- package/lib/libraries/ai/types.ts +260 -0
- package/lib/libraries/chunking/ChunkingService.ts +103 -0
- package/lib/libraries/chunking/README.md +104 -0
- package/lib/libraries/chunking/docs/api-reference.md +549 -0
- package/lib/libraries/chunking/docs/best-practices.md +321 -0
- package/lib/libraries/chunking/docs/code-organization.md +538 -0
- package/lib/libraries/chunking/docs/configuration.md +418 -0
- package/lib/libraries/chunking/docs/index.md +236 -0
- package/lib/libraries/chunking/docs/quick-start.md +298 -0
- package/lib/libraries/chunking/docs/strategies.md +407 -0
- package/lib/libraries/chunking/docs/summary.md +258 -0
- package/lib/libraries/chunking/docs/troubleshooting.md +527 -0
- package/lib/libraries/chunking/index.ts +17 -0
- package/lib/libraries/chunking/library.json +16 -0
- package/lib/libraries/chunking/strategies/ChunkingStrategy.ts +13 -0
- package/lib/libraries/chunking/strategies/FixedLengthChunkingStrategy.ts +88 -0
- package/lib/libraries/chunking/strategies/SemanticChunkingStrategy.ts +389 -0
- package/lib/libraries/chunking/strategies/SlidingWindowChunkingStrategy.ts +258 -0
- package/lib/libraries/chunking/types/index.ts +63 -0
- package/lib/libraries/email/EmailService.ts +591 -0
- package/lib/libraries/email/README.md +777 -0
- package/lib/libraries/email/TemplateRegistry.ts +148 -0
- package/lib/libraries/email/TemplateRenderer.ts +273 -0
- package/lib/libraries/email/index.ts +4 -0
- package/lib/libraries/email/initializeEmailService.ts +60 -0
- package/lib/libraries/email/library.json +12 -0
- package/lib/libraries/email/types/EmailAddress.ts +4 -0
- package/lib/libraries/email/types/EmailAttachment.ts +11 -0
- package/lib/libraries/email/types/EmailTag.ts +9 -0
- package/lib/libraries/email/types/EmailTemplate.ts +124 -0
- package/lib/libraries/email/types/SendBatchEmailsOptions.ts +9 -0
- package/lib/libraries/email/types/SendBatchEmailsResult.ts +9 -0
- package/lib/libraries/email/types/SendEmailOptions.ts +33 -0
- package/lib/libraries/email/types/SendEmailResult.ts +9 -0
- package/lib/libraries/email/types/index.ts +8 -0
- package/lib/libraries/weaviate/QueryBuilder.ts +292 -0
- package/lib/libraries/weaviate/README.md +284 -0
- package/lib/libraries/weaviate/Weaviate.ts +1419 -0
- package/lib/libraries/weaviate/WeaviateConfig.ts +268 -0
- package/lib/libraries/weaviate/docs/.gitkeep +1 -0
- package/lib/libraries/weaviate/docs/API_REFERENCE.md +1067 -0
- package/lib/libraries/weaviate/docs/CONFIGURATION.md +320 -0
- package/lib/libraries/weaviate/docs/ERROR_HANDLING.md +271 -0
- package/lib/libraries/weaviate/docs/MULTI_TENANCY.md +348 -0
- package/lib/libraries/weaviate/docs/PERFORMANCE.md +602 -0
- package/lib/libraries/weaviate/docs/PLUGIN_DEVELOPMENT.md +547 -0
- package/lib/libraries/weaviate/docs/QUICK_START.md +443 -0
- package/lib/libraries/weaviate/docs/README.md +269 -0
- package/lib/libraries/weaviate/docs/SCHEMA_GUIDE.md +630 -0
- package/lib/libraries/weaviate/docs/WEAVIATE_README.md +520 -0
- package/lib/libraries/weaviate/errors/WeaviateError.ts +92 -0
- package/lib/libraries/weaviate/errors/index.ts +1 -0
- package/lib/libraries/weaviate/index.ts +35 -0
- package/lib/libraries/weaviate/library.json +26 -0
- package/lib/libraries/weaviate/plugins/index.ts +2 -0
- package/lib/libraries/weaviate/schemas/SchemaRegistry.ts +284 -0
- package/lib/libraries/weaviate/schemas/index.ts +2 -0
- package/lib/libraries/weaviate/types/BM25SearchOptions.ts +9 -0
- package/lib/libraries/weaviate/types/ExtendedWeaviateClient.ts +7 -0
- package/lib/libraries/weaviate/types/HybridSearchOptions.ts +11 -0
- package/lib/libraries/weaviate/types/MultiTenancy.ts +81 -0
- package/lib/libraries/weaviate/types/Plugin.ts +17 -0
- package/lib/libraries/weaviate/types/SchemaConfig.ts +25 -0
- package/lib/libraries/weaviate/types/SearchMethod.ts +8 -0
- package/lib/libraries/weaviate/types/SearchOptions.ts +16 -0
- package/lib/libraries/weaviate/types/SearchRequest.ts +19 -0
- package/lib/libraries/weaviate/types/SearchResult.ts +16 -0
- package/lib/libraries/weaviate/types/SearchableField.ts +87 -0
- package/lib/libraries/weaviate/types/VectorIndexConfig.ts +19 -0
- package/lib/libraries/weaviate/types/VectorSearchOptions.ts +18 -0
- package/lib/libraries/weaviate/types/VectorizerConfig.ts +8 -0
- package/lib/libraries/weaviate/types/index.ts +29 -0
- package/lib/libraries/weaviate/utils/TenantContextManager.ts +94 -0
- package/lib/modules/accounts/index.ts +47 -0
- package/lib/modules/accounts/module.json +15 -0
- package/lib/modules/accounts/permissions.ts +33 -0
- package/lib/modules/accounts/routes.ts +200 -0
- package/lib/modules/accounts/schema.ts +219 -0
- package/lib/modules/accounts/services/AccountService.ts +44 -0
- package/lib/modules/accounts/validation/schemas.ts +70 -0
- package/lib/modules/oauth/adapters/GmailOAuthAdapter.ts +35 -0
- package/lib/modules/oauth/adapters/GoogleOAuthAdapter.ts +278 -0
- package/lib/modules/oauth/adapters/MicrosoftOAuthAdapter.ts +269 -0
- package/lib/modules/oauth/adapters/MockOAuthAdapter.ts +138 -0
- package/lib/modules/oauth/adapters/OAuthAdapter.ts +211 -0
- package/lib/modules/oauth/adapters/OAuthAdapterRegistry.ts +77 -0
- package/lib/modules/oauth/adapters/OutlookOAuthAdapter.ts +38 -0
- package/lib/modules/oauth/index.ts +79 -0
- package/lib/modules/oauth/module.json +23 -0
- package/lib/modules/oauth/permissions.ts +39 -0
- package/lib/modules/oauth/routes.ts +497 -0
- package/lib/modules/oauth/schema.ts +127 -0
- package/lib/modules/oauth/services/OAuthConnectionService.ts +147 -0
- package/lib/modules/oauth/state.ts +234 -0
- package/lib/modules/oauth/stateJtiCache.ts +85 -0
- package/lib/modules/oauth/verifyIdToken.ts +178 -0
- package/lib/modules/outbox/EventEmitter.ts +106 -0
- package/lib/modules/outbox/OutboxDrainer.ts +163 -0
- package/lib/modules/outbox/handlers/EventHandler.ts +115 -0
- package/lib/modules/outbox/index.ts +43 -0
- package/lib/modules/outbox/module.json +15 -0
- package/lib/modules/outbox/permissions.ts +36 -0
- package/lib/modules/outbox/routes.ts +219 -0
- package/lib/modules/outbox/schema.ts +207 -0
- package/lib/modules/outbox/services/OutboxEventService.ts +223 -0
- package/lib/observability/logger.d.ts +30 -0
- package/lib/observability/logger.d.ts.map +1 -0
- package/lib/observability/logger.js +110 -0
- package/lib/observability/logger.js.map +1 -0
- package/lib/observability/metrics.d.ts +3 -0
- package/lib/observability/metrics.d.ts.map +1 -0
- package/lib/observability/metrics.js +3 -0
- package/lib/observability/metrics.js.map +1 -0
- package/lib/observability/otel.d.ts +3 -0
- package/lib/observability/otel.d.ts.map +1 -0
- package/lib/observability/otel.js +3 -0
- package/lib/observability/otel.js.map +1 -0
- package/lib/observability/safeErrorFields.d.ts +14 -0
- package/lib/observability/safeErrorFields.d.ts.map +1 -0
- package/lib/observability/safeErrorFields.js +14 -0
- package/lib/observability/safeErrorFields.js.map +1 -0
- package/lib/observability/tracing.d.ts +3 -0
- package/lib/observability/tracing.d.ts.map +1 -0
- package/lib/observability/tracing.js +3 -0
- package/lib/observability/tracing.js.map +1 -0
- package/lib/package.json +4 -0
- package/lib/testing.d.ts +3 -0
- package/lib/testing.d.ts.map +1 -0
- package/lib/testing.js +3 -0
- package/lib/testing.js.map +1 -0
- package/package.json +193 -3
- package/templates/default/.claude/agents/qa-brief.md +106 -0
- package/templates/default/.claude/commands/sherpa-brief.md +23 -0
- package/templates/default/.cursor/rules/api.mdc +80 -0
- package/templates/default/.cursor/rules/commits.mdc +88 -0
- package/templates/default/.cursor/rules/security.mdc +92 -0
- package/templates/default/.cursor/rules/testing.mdc +123 -0
- package/templates/default/.cursor/rules/typescript.mdc +86 -0
- package/templates/default/.env.example +79 -0
- package/templates/default/.github/workflows/sherpa-brief.yml +180 -0
- package/templates/default/AGENTS.md +166 -0
- package/templates/default/CLAUDE.md +17 -0
- package/templates/default/README.md +97 -0
- package/templates/default/_gitignore +27 -0
- package/templates/default/docker-compose.yml +83 -0
- package/templates/default/drizzle.config.ts +34 -0
- package/templates/default/eslint.config.mjs +106 -0
- package/templates/default/package.json +57 -0
- package/templates/default/ship-api.config.ts +21 -0
- package/templates/default/src/client.ts +34 -0
- package/templates/default/src/config/modules.ts +23 -0
- package/templates/default/src/db/schema.ts +26 -0
- package/templates/default/src/environment.ts +81 -0
- package/templates/default/src/index.test.ts +53 -0
- package/templates/default/src/index.ts +11 -0
- package/templates/default/src/instrumentation.ts +13 -0
- package/templates/default/src/server.ts +90 -0
- 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).
|