vector-framework 1.2.0 → 1.2.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/README.md +19 -0
- package/dist/auth/protected.d.ts +1 -0
- package/dist/auth/protected.d.ts.map +1 -1
- package/dist/auth/protected.js +3 -0
- package/dist/auth/protected.js.map +1 -1
- package/dist/cache/manager.d.ts +1 -0
- package/dist/cache/manager.d.ts.map +1 -1
- package/dist/cache/manager.js +3 -0
- package/dist/cache/manager.js.map +1 -1
- package/dist/cli/graceful-shutdown.d.ts +15 -0
- package/dist/cli/graceful-shutdown.d.ts.map +1 -0
- package/dist/cli/graceful-shutdown.js +42 -0
- package/dist/cli/graceful-shutdown.js.map +1 -0
- package/dist/cli/index.js +37 -43
- package/dist/cli/index.js.map +1 -1
- package/dist/cli.js +877 -218
- package/dist/core/config-loader.d.ts.map +1 -1
- package/dist/core/config-loader.js +5 -2
- package/dist/core/config-loader.js.map +1 -1
- package/dist/core/server.d.ts +3 -0
- package/dist/core/server.d.ts.map +1 -1
- package/dist/core/server.js +227 -7
- package/dist/core/server.js.map +1 -1
- package/dist/core/vector.d.ts +4 -2
- package/dist/core/vector.d.ts.map +1 -1
- package/dist/core/vector.js +32 -2
- package/dist/core/vector.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +147 -41
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +147 -41
- package/dist/openapi/docs-ui.d.ts +1 -1
- package/dist/openapi/docs-ui.d.ts.map +1 -1
- package/dist/openapi/docs-ui.js +147 -35
- package/dist/openapi/docs-ui.js.map +1 -1
- package/dist/openapi/generator.d.ts.map +1 -1
- package/dist/openapi/generator.js +233 -4
- package/dist/openapi/generator.js.map +1 -1
- package/dist/start-vector.d.ts +3 -0
- package/dist/start-vector.d.ts.map +1 -0
- package/dist/start-vector.js +38 -0
- package/dist/start-vector.js.map +1 -0
- package/dist/types/index.d.ts +25 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/logger.js +1 -1
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +2 -0
- package/dist/utils/validation.js.map +1 -1
- package/package.json +3 -1
- package/src/auth/protected.ts +4 -0
- package/src/cache/manager.ts +4 -0
- package/src/cli/graceful-shutdown.ts +60 -0
- package/src/cli/index.ts +42 -49
- package/src/core/config-loader.ts +5 -2
- package/src/core/server.ts +289 -7
- package/src/core/vector.ts +38 -4
- package/src/index.ts +4 -3
- package/src/openapi/assets/favicon/android-chrome-192x192.png +0 -0
- package/src/openapi/assets/favicon/android-chrome-512x512.png +0 -0
- package/src/openapi/assets/favicon/apple-touch-icon.png +0 -0
- package/src/openapi/assets/favicon/favicon-16x16.png +0 -0
- package/src/openapi/assets/favicon/favicon-32x32.png +0 -0
- package/src/openapi/assets/favicon/favicon.ico +0 -0
- package/src/openapi/assets/favicon/site.webmanifest +11 -0
- package/src/openapi/assets/logo.svg +12 -0
- package/src/openapi/assets/logo_dark.svg +6 -0
- package/src/openapi/assets/logo_icon.png +0 -0
- package/src/openapi/assets/logo_white.svg +6 -0
- package/src/openapi/docs-ui.ts +153 -35
- package/src/openapi/generator.ts +231 -4
- package/src/start-vector.ts +50 -0
- package/src/types/index.ts +34 -0
- package/src/utils/logger.ts +1 -1
- package/src/utils/validation.ts +2 -0
package/src/types/index.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { StandardJSONSchemaV1, StandardSchemaV1, StandardTypedV1 } from './standard-schema';
|
|
2
|
+
import type { Server } from 'bun';
|
|
2
3
|
|
|
3
4
|
// Default AuthUser type - users can override this with their own type
|
|
4
5
|
export interface DefaultAuthUser {
|
|
@@ -150,6 +151,31 @@ export interface VectorConfig<TTypes extends VectorTypes = DefaultVectorTypes> {
|
|
|
150
151
|
idleTimeout?: number;
|
|
151
152
|
defaults?: VectorDefaults;
|
|
152
153
|
openapi?: OpenAPIOptions | boolean;
|
|
154
|
+
startup?: StartupHandler;
|
|
155
|
+
shutdown?: ShutdownHandler;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
export interface StartVectorContext {
|
|
159
|
+
configSource: 'user' | 'default';
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
export interface StartVectorOptions<TTypes extends VectorTypes = DefaultVectorTypes> {
|
|
163
|
+
configPath?: string;
|
|
164
|
+
config?: Partial<VectorConfig<TTypes>>;
|
|
165
|
+
autoDiscover?: boolean;
|
|
166
|
+
protectedHandler?: ProtectedHandler<TTypes> | null;
|
|
167
|
+
cacheHandler?: CacheHandler | null;
|
|
168
|
+
mutateConfig?: (
|
|
169
|
+
config: VectorConfig<TTypes>,
|
|
170
|
+
context: StartVectorContext
|
|
171
|
+
) => VectorConfig<TTypes> | Promise<VectorConfig<TTypes>>;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
export interface StartedVectorApp<TTypes extends VectorTypes = DefaultVectorTypes> {
|
|
175
|
+
server: Server;
|
|
176
|
+
config: VectorConfig<TTypes>;
|
|
177
|
+
stop: () => void;
|
|
178
|
+
shutdown: () => Promise<void>;
|
|
153
179
|
}
|
|
154
180
|
|
|
155
181
|
// New config-driven schema - flat structure
|
|
@@ -178,6 +204,10 @@ export interface VectorConfigSchema<TTypes extends VectorTypes = DefaultVectorTy
|
|
|
178
204
|
// OpenAPI/docs configuration
|
|
179
205
|
openapi?: OpenAPIOptions | boolean;
|
|
180
206
|
|
|
207
|
+
// Startup lifecycle
|
|
208
|
+
startup?: StartupHandler;
|
|
209
|
+
shutdown?: ShutdownHandler;
|
|
210
|
+
|
|
181
211
|
// Custom types for TypeScript
|
|
182
212
|
types?: VectorTypes;
|
|
183
213
|
}
|
|
@@ -194,6 +224,7 @@ export interface CorsOptions {
|
|
|
194
224
|
export interface OpenAPIDocsOptions {
|
|
195
225
|
enabled?: boolean;
|
|
196
226
|
path?: string;
|
|
227
|
+
exposePaths?: string[];
|
|
197
228
|
}
|
|
198
229
|
|
|
199
230
|
export interface OpenAPIInfoOptions {
|
|
@@ -220,6 +251,9 @@ export type AfterMiddlewareHandler<TTypes extends VectorTypes = DefaultVectorTyp
|
|
|
220
251
|
) => Promise<Response> | Response;
|
|
221
252
|
export type MiddlewareHandler = BeforeMiddlewareHandler | AfterMiddlewareHandler;
|
|
222
253
|
|
|
254
|
+
export type StartupHandler = () => Promise<void> | void;
|
|
255
|
+
export type ShutdownHandler = () => Promise<void> | void;
|
|
256
|
+
|
|
223
257
|
export type RouteHandler<TTypes extends VectorTypes = DefaultVectorTypes, TValidatedInput = undefined> = (
|
|
224
258
|
request: VectorRequest<TTypes, TValidatedInput>
|
|
225
259
|
) => Promise<any> | any;
|
package/src/utils/logger.ts
CHANGED
|
@@ -17,7 +17,7 @@ export class Logger {
|
|
|
17
17
|
constructor(config: Partial<LoggerConfig> = {}) {
|
|
18
18
|
this.config = {
|
|
19
19
|
level: config.level ?? LogLevel.INFO,
|
|
20
|
-
prefix: config.prefix ?? '[
|
|
20
|
+
prefix: config.prefix ?? '[vector]',
|
|
21
21
|
timestamp: config.timestamp ?? true,
|
|
22
22
|
};
|
|
23
23
|
}
|
package/src/utils/validation.ts
CHANGED
|
@@ -13,6 +13,8 @@ export function validateConfig(config: VectorConfig): VectorConfig {
|
|
|
13
13
|
cors: config.cors ? validateCorsOptions(config.cors) : undefined,
|
|
14
14
|
before: config.before || [],
|
|
15
15
|
finally: config.finally || [],
|
|
16
|
+
startup: config.startup,
|
|
17
|
+
shutdown: config.shutdown,
|
|
16
18
|
};
|
|
17
19
|
|
|
18
20
|
return validatedConfig;
|