weifuwu 0.27.2 → 0.27.3

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 (89) hide show
  1. package/dist/ai/provider.d.ts +45 -0
  2. package/dist/ai/stream.d.ts +13 -0
  3. package/dist/cli.d.ts +2 -0
  4. package/dist/cli.js +131 -0
  5. package/dist/core/cookie.d.ts +36 -0
  6. package/dist/core/env.d.ts +69 -0
  7. package/dist/core/logger.d.ts +16 -0
  8. package/dist/core/router.d.ts +72 -0
  9. package/dist/core/serve.d.ts +38 -0
  10. package/dist/core/sse.d.ts +47 -0
  11. package/dist/core/trace.d.ts +95 -0
  12. package/dist/graphql.d.ts +16 -0
  13. package/dist/hub.d.ts +36 -0
  14. package/dist/index.d.ts +61 -0
  15. package/dist/index.js +3963 -0
  16. package/dist/mailer.d.ts +51 -0
  17. package/dist/middleware/compress.d.ts +20 -0
  18. package/dist/middleware/cors.d.ts +25 -0
  19. package/dist/middleware/csrf.d.ts +47 -0
  20. package/dist/middleware/flash.d.ts +90 -0
  21. package/dist/middleware/health.d.ts +24 -0
  22. package/dist/middleware/helmet.d.ts +33 -0
  23. package/dist/middleware/i18n.d.ts +39 -0
  24. package/dist/middleware/rate-limit.d.ts +44 -0
  25. package/dist/middleware/request-id.d.ts +40 -0
  26. package/dist/middleware/static.d.ts +23 -0
  27. package/dist/middleware/theme.d.ts +31 -0
  28. package/dist/middleware/upload.d.ts +55 -0
  29. package/dist/middleware/validate.d.ts +32 -0
  30. package/dist/postgres/client.d.ts +4 -0
  31. package/dist/postgres/index.d.ts +4 -0
  32. package/dist/postgres/module.d.ts +16 -0
  33. package/dist/postgres/schema/columns.d.ts +99 -0
  34. package/dist/postgres/schema/index.d.ts +6 -0
  35. package/dist/postgres/schema/sql.d.ts +22 -0
  36. package/dist/postgres/schema/table.d.ts +141 -0
  37. package/dist/postgres/schema/where.d.ts +29 -0
  38. package/dist/postgres/types.d.ts +49 -0
  39. package/dist/queue/cron.d.ts +9 -0
  40. package/dist/queue/index.d.ts +2 -0
  41. package/dist/queue/types.d.ts +61 -0
  42. package/dist/redis/client.d.ts +2 -0
  43. package/{redis/index.ts → dist/redis/index.d.ts} +2 -2
  44. package/dist/redis/types.d.ts +17 -0
  45. package/dist/test/test-utils.d.ts +193 -0
  46. package/dist/types.d.ts +50 -0
  47. package/package.json +10 -10
  48. package/ai/provider.ts +0 -129
  49. package/ai/stream.ts +0 -63
  50. package/cli.ts +0 -147
  51. package/core/cookie.ts +0 -114
  52. package/core/env.ts +0 -142
  53. package/core/logger.ts +0 -72
  54. package/core/router.ts +0 -795
  55. package/core/serve.ts +0 -294
  56. package/core/sse.ts +0 -85
  57. package/core/trace.ts +0 -146
  58. package/graphql.ts +0 -267
  59. package/hub.ts +0 -133
  60. package/index.ts +0 -71
  61. package/mailer.ts +0 -81
  62. package/middleware/compress.ts +0 -103
  63. package/middleware/cors.ts +0 -81
  64. package/middleware/csrf.ts +0 -112
  65. package/middleware/flash.ts +0 -144
  66. package/middleware/health.ts +0 -44
  67. package/middleware/helmet.ts +0 -98
  68. package/middleware/i18n.ts +0 -175
  69. package/middleware/rate-limit.ts +0 -167
  70. package/middleware/request-id.ts +0 -60
  71. package/middleware/static.ts +0 -149
  72. package/middleware/theme.ts +0 -84
  73. package/middleware/upload.ts +0 -168
  74. package/middleware/validate.ts +0 -186
  75. package/postgres/client.ts +0 -132
  76. package/postgres/index.ts +0 -4
  77. package/postgres/module.ts +0 -37
  78. package/postgres/schema/columns.ts +0 -186
  79. package/postgres/schema/index.ts +0 -36
  80. package/postgres/schema/sql.ts +0 -39
  81. package/postgres/schema/table.ts +0 -548
  82. package/postgres/schema/where.ts +0 -99
  83. package/postgres/types.ts +0 -48
  84. package/queue/cron.ts +0 -90
  85. package/queue/index.ts +0 -654
  86. package/queue/types.ts +0 -60
  87. package/redis/client.ts +0 -24
  88. package/redis/types.ts +0 -28
  89. package/types.ts +0 -78
package/queue/types.ts DELETED
@@ -1,60 +0,0 @@
1
- import type { Redis, Context, Middleware, Closeable } from '../types.ts'
2
-
3
- declare module '../types.ts' {
4
- interface Context {
5
- queue: Queue
6
- }
7
- }
8
-
9
- export interface QueueJob<T = unknown> {
10
- id: string
11
- type: string
12
- payload: T
13
- createdAt: number
14
- runAt: number
15
- schedule?: string
16
- }
17
-
18
- export interface QueueOptions {
19
- /** Backend store. Default: 'memory'. */
20
- store?: 'memory' | 'pg' | 'redis'
21
- redis?: Redis
22
- url?: string
23
- prefix?: string
24
- pollInterval?: number
25
- /** PostgreSQL client (required when store: 'pg'). */
26
- pg?: { sql: import('../types.ts').SqlClient }
27
- }
28
-
29
- export interface QueueInjected {
30
- queue: Queue
31
- }
32
-
33
- export interface QueueJobWithError<T = unknown> extends QueueJob<T> {
34
- error: string
35
- failedAt: number
36
- }
37
-
38
- export interface Queue extends Middleware<Context, Context & QueueInjected>, Closeable {
39
- /** Register a cron job. Uses queue's backend (memory/pg/redis) for execution. */
40
- cron(pattern: string, handler: () => void | Promise<void>): { stop: () => void }
41
- add<T>(type: string, payload: T, opts?: { delay?: number; schedule?: string }): Promise<string>
42
- process<T>(type: string, handler: (job: QueueJob<T>) => Promise<void>): void
43
- run(): Promise<void>
44
- stats(): {
45
- running: boolean
46
- inflight: number
47
- processed: number
48
- failed: number
49
- handlers: number
50
- maxConcurrent: number
51
- }
52
- jobs(limit?: number): Promise<QueueJob[]>
53
- failedJobs(limit?: number): Promise<QueueJobWithError[]>
54
- retryFailed(jobId: string): Promise<boolean>
55
- retryAllFailed(type?: string): Promise<number>
56
- dashboard(): import('../core/router.ts').Router
57
- /** Create the jobs table (PG mode only; safe to call multiple times). */
58
- migrate?(): Promise<void>
59
- close(): Promise<void>
60
- }
package/redis/client.ts DELETED
@@ -1,24 +0,0 @@
1
- /* eslint-disable no-console */
2
- import { Redis as IORedis } from 'ioredis'
3
- import type { Context, Handler } from '../types.ts'
4
- import type { RedisOptions, RedisClient } from './types.ts'
5
-
6
- export function redis(opts?: string | RedisOptions): RedisClient {
7
- const options: RedisOptions = typeof opts === 'string' ? { url: opts } : (opts ?? {})
8
-
9
- const url = options.url ?? process.env.REDIS_URL ?? 'redis://localhost:6379'
10
- const client = new IORedis(url, options)
11
-
12
- client.on('error', (err: Error) => console.error('[redis]', err.message))
13
-
14
- const mw = ((req: Request, ctx: Context, next: Handler) => {
15
- ctx.redis = client
16
- return next(req, ctx)
17
- }) as unknown as RedisClient
18
-
19
- mw.__meta = { injects: ['redis'], depends: [] }
20
- mw.redis = client
21
- mw.close = () => client.quit() as unknown as Promise<void>
22
-
23
- return mw
24
- }
package/redis/types.ts DELETED
@@ -1,28 +0,0 @@
1
- import type {
2
- Redis,
3
- RedisOptions as IORedisOptions,
4
- Context,
5
- Middleware,
6
- Closeable,
7
- } from '../types.ts'
8
-
9
- declare module '../types.ts' {
10
- interface Context {
11
- redis: Redis
12
- }
13
- }
14
-
15
- export type { Redis }
16
-
17
- export type RedisOptions = IORedisOptions & {
18
- url?: string
19
- }
20
-
21
- export interface RedisInjected {
22
- redis: Redis
23
- }
24
-
25
- export interface RedisClient extends Middleware<Context, Context & RedisInjected>, Closeable {
26
- redis: Redis
27
- close: () => Promise<void>
28
- }
package/types.ts DELETED
@@ -1,78 +0,0 @@
1
- import type postgres from 'postgres'
2
-
3
- /** Untyped postgres.js SQL client. Use typed `Sql<{ table: { col: type } }>` for schemas. */
4
- export type SqlClient = postgres.Sql<Record<string, unknown>>
5
-
6
- /** Re-export for downstream usage. */
7
- export type { Sql } from 'postgres'
8
- export type { WebSocket } from 'ws'
9
- export type { Redis, RedisOptions } from 'ioredis'
10
-
11
- // Context — extensible via module augmentation.
12
- // Built-in middleware modules declare additional properties here.
13
- // e.g. postgres/types.ts → `declare module '../types.ts' { interface Context { sql: SqlClient } }`
14
- export interface Context {
15
- params: Record<string, string>
16
- query: Record<string, string>
17
- mountPath?: string
18
- [key: string]: unknown // allow arbitrary middleware-injected data
19
- }
20
-
21
- // Generic handler — T extends Context so middleware-injected properties are visible.
22
- // Default T = Context means no generics needed for simple cases.
23
- export type Handler<T extends Context = Context> = (
24
- req: Request,
25
- ctx: T,
26
- ) => Response | Promise<Response>
27
-
28
- /**
29
- * Metadata for middleware dependency checking.
30
- * Middleware factories attach this for runtime validation.
31
- */
32
- export interface MiddlewareMeta {
33
- /** Fields this middleware injects into ctx. */
34
- injects: string[]
35
- /** Fields this middleware depends on (must be injected earlier). */
36
- depends: string[]
37
- }
38
-
39
- // Generic middleware — In receives accumulated context from previous middlewares,
40
- // Out adds new properties. next receives the enriched Out type.
41
- // Default In = Out = Context means backward-compatible.
42
- export type Middleware<In extends Context = Context, Out extends In = In> = {
43
- (req: Request, ctx: In, next: Handler<Out>): Response | Promise<Response>
44
- __meta?: MiddlewareMeta
45
- }
46
-
47
- export type ErrorHandler<T extends Context = Context> = (
48
- error: Error,
49
- req: Request,
50
- ctx: T,
51
- ) => Response | Promise<Response>
52
-
53
- /**
54
- * Interface for resources that require explicit cleanup (connections, pools, timers).
55
- * All stateful modules implement this.
56
- */
57
- export interface Closeable {
58
- /** Release all resources. Call once when shutting down. */
59
- close(): Promise<void>
60
- }
61
-
62
- /**
63
- * HTTP error with an explicit status code.
64
- * Throw from a handler or middleware to return a non-200 response.
65
- *
66
- * ```ts
67
- * if (!resource) throw new HttpError('Not found', 404)
68
- * serve() catches it and returns the status code.
69
- * ```
70
- */
71
- export class HttpError extends Error {
72
- status: number
73
- constructor(message: string, status: number) {
74
- super(message)
75
- this.name = 'HttpError'
76
- this.status = status
77
- }
78
- }