@zero-server/sdk 0.9.0 → 0.9.2

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 (126) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +460 -437
  3. package/index.js +414 -412
  4. package/lib/app.js +1172 -1172
  5. package/lib/auth/authorize.js +399 -399
  6. package/lib/auth/enrollment.js +367 -367
  7. package/lib/auth/index.js +57 -57
  8. package/lib/auth/jwt.js +731 -731
  9. package/lib/auth/oauth.js +362 -362
  10. package/lib/auth/session.js +588 -588
  11. package/lib/auth/trustedDevice.js +409 -409
  12. package/lib/auth/twoFactor.js +1150 -1150
  13. package/lib/auth/webauthn.js +946 -946
  14. package/lib/body/index.js +14 -14
  15. package/lib/body/json.js +109 -109
  16. package/lib/body/multipart.js +440 -440
  17. package/lib/body/raw.js +71 -71
  18. package/lib/body/rawBuffer.js +160 -160
  19. package/lib/body/sendError.js +25 -25
  20. package/lib/body/text.js +75 -75
  21. package/lib/body/typeMatch.js +41 -41
  22. package/lib/body/urlencoded.js +235 -235
  23. package/lib/cli.js +845 -845
  24. package/lib/cluster.js +666 -666
  25. package/lib/debug.js +372 -372
  26. package/lib/env/index.js +460 -460
  27. package/lib/errors.js +683 -683
  28. package/lib/fetch/index.js +256 -256
  29. package/lib/grpc/balancer.js +378 -378
  30. package/lib/grpc/call.js +708 -708
  31. package/lib/grpc/client.js +764 -764
  32. package/lib/grpc/codec.js +1221 -1221
  33. package/lib/grpc/credentials.js +398 -398
  34. package/lib/grpc/frame.js +262 -262
  35. package/lib/grpc/health.js +287 -287
  36. package/lib/grpc/index.js +121 -121
  37. package/lib/grpc/metadata.js +461 -461
  38. package/lib/grpc/proto.js +821 -821
  39. package/lib/grpc/reflection.js +590 -590
  40. package/lib/grpc/server.js +445 -445
  41. package/lib/grpc/status.js +118 -118
  42. package/lib/grpc/watch.js +173 -173
  43. package/lib/http/index.js +10 -10
  44. package/lib/http/request.js +727 -727
  45. package/lib/http/response.js +799 -799
  46. package/lib/lifecycle.js +557 -557
  47. package/lib/middleware/compress.js +230 -230
  48. package/lib/middleware/cookieParser.js +237 -237
  49. package/lib/middleware/cors.js +93 -93
  50. package/lib/middleware/csrf.js +136 -136
  51. package/lib/middleware/errorHandler.js +101 -101
  52. package/lib/middleware/helmet.js +175 -175
  53. package/lib/middleware/index.js +19 -17
  54. package/lib/middleware/logger.js +74 -74
  55. package/lib/middleware/rateLimit.js +88 -88
  56. package/lib/middleware/requestId.js +53 -53
  57. package/lib/middleware/static.js +326 -326
  58. package/lib/middleware/timeout.js +71 -71
  59. package/lib/middleware/validator.js +254 -254
  60. package/lib/observe/health.js +326 -326
  61. package/lib/observe/index.js +50 -50
  62. package/lib/observe/logger.js +359 -359
  63. package/lib/observe/metrics.js +805 -805
  64. package/lib/observe/tracing.js +592 -592
  65. package/lib/orm/adapters/json.js +290 -290
  66. package/lib/orm/adapters/memory.js +764 -764
  67. package/lib/orm/adapters/mongo.js +764 -764
  68. package/lib/orm/adapters/mysql.js +933 -933
  69. package/lib/orm/adapters/postgres.js +1144 -1144
  70. package/lib/orm/adapters/redis.js +1534 -1534
  71. package/lib/orm/adapters/sql-base.js +212 -212
  72. package/lib/orm/adapters/sqlite.js +858 -858
  73. package/lib/orm/audit.js +649 -649
  74. package/lib/orm/cache.js +394 -394
  75. package/lib/orm/geo.js +387 -387
  76. package/lib/orm/index.js +784 -784
  77. package/lib/orm/migrate.js +432 -432
  78. package/lib/orm/model.js +1706 -1706
  79. package/lib/orm/plugin.js +375 -375
  80. package/lib/orm/procedures.js +836 -836
  81. package/lib/orm/profiler.js +233 -233
  82. package/lib/orm/query.js +1772 -1772
  83. package/lib/orm/replicas.js +241 -241
  84. package/lib/orm/schema.js +307 -307
  85. package/lib/orm/search.js +380 -380
  86. package/lib/orm/seed/data/commerce.js +136 -136
  87. package/lib/orm/seed/data/internet.js +111 -111
  88. package/lib/orm/seed/data/locations.js +204 -204
  89. package/lib/orm/seed/data/names.js +338 -338
  90. package/lib/orm/seed/data/person.js +128 -128
  91. package/lib/orm/seed/data/phone.js +211 -211
  92. package/lib/orm/seed/data/words.js +134 -134
  93. package/lib/orm/seed/factory.js +178 -178
  94. package/lib/orm/seed/fake.js +1186 -1186
  95. package/lib/orm/seed/index.js +18 -18
  96. package/lib/orm/seed/rng.js +70 -70
  97. package/lib/orm/seed/seeder.js +124 -124
  98. package/lib/orm/seed/unique.js +68 -68
  99. package/lib/orm/snapshot.js +366 -366
  100. package/lib/orm/tenancy.js +605 -605
  101. package/lib/orm/views.js +350 -350
  102. package/lib/router/index.js +436 -436
  103. package/lib/sse/index.js +8 -8
  104. package/lib/sse/stream.js +349 -349
  105. package/lib/ws/connection.js +451 -451
  106. package/lib/ws/handshake.js +125 -125
  107. package/lib/ws/index.js +14 -14
  108. package/lib/ws/room.js +223 -223
  109. package/package.json +73 -73
  110. package/types/app.d.ts +223 -223
  111. package/types/auth.d.ts +520 -520
  112. package/types/cluster.d.ts +75 -75
  113. package/types/env.d.ts +80 -80
  114. package/types/errors.d.ts +316 -316
  115. package/types/fetch.d.ts +43 -43
  116. package/types/grpc.d.ts +432 -432
  117. package/types/index.d.ts +384 -384
  118. package/types/lifecycle.d.ts +60 -60
  119. package/types/middleware.d.ts +320 -320
  120. package/types/observe.d.ts +304 -304
  121. package/types/orm.d.ts +1887 -1887
  122. package/types/request.d.ts +109 -109
  123. package/types/response.d.ts +157 -157
  124. package/types/router.d.ts +78 -78
  125. package/types/sse.d.ts +78 -78
  126. package/types/websocket.d.ts +126 -126
package/index.js CHANGED
@@ -1,412 +1,414 @@
1
- /**
2
- * @module @zero-server/sdk
3
- * @description Public entry point for the @zero-server/sdk package.
4
- * Re-exports every middleware, the app factory, and the fetch helper.
5
- */
6
- const App = require('./lib/app');
7
- const Router = require('./lib/router');
8
- const cors = require('./lib/middleware/cors');
9
- const fetch = require('./lib/fetch');
10
- const body = require('./lib/body');
11
- const serveStatic = require('./lib/middleware/static');
12
- const rateLimit = require('./lib/middleware/rateLimit');
13
- const logger = require('./lib/middleware/logger');
14
- const compress = require('./lib/middleware/compress');
15
- const helmet = require('./lib/middleware/helmet');
16
- const timeout = require('./lib/middleware/timeout');
17
- const requestId = require('./lib/middleware/requestId');
18
- const cookieParser = require('./lib/middleware/cookieParser');
19
- const csrf = require('./lib/middleware/csrf');
20
- const validate = require('./lib/middleware/validator');
21
- const errorHandler = require('./lib/middleware/errorHandler');
22
- const { WebSocketConnection, WebSocketPool } = require('./lib/ws');
23
- const { SSEStream } = require('./lib/sse');
24
- const env = require('./lib/env');
25
- const { Database, Model, TYPES, Query, validateFKAction, validateCheck, Migrator, defineMigration, QueryCache, Seeder, SeederRunner, Factory, Fake, QueryProfiler, ReplicaManager, DatabaseView, FullTextSearch, GeoQuery, EARTH_RADIUS_KM, EARTH_RADIUS_MI, TenantManager, AuditLog, PluginManager, StoredProcedure, StoredFunction, TriggerManager, buildSnapshot, loadSnapshot, saveSnapshot, diffSnapshots, hasNoChanges, generateMigrationCode, discoverModels, SNAPSHOT_FILE } = require('./lib/orm');
26
- const { CLI, runCLI } = require('./lib/cli');
27
- const errors = require('./lib/errors');
28
- const debug = require('./lib/debug');
29
- const { LifecycleManager, LIFECYCLE_STATE } = require('./lib/lifecycle');
30
- const { ClusterManager, clusterize } = require('./lib/cluster');
31
- const {
32
- Logger, structuredLogger,
33
- Counter, Gauge, Histogram, MetricsRegistry, DEFAULT_BUCKETS,
34
- createDefaultMetrics, metricsMiddleware, metricsEndpoint: metricsEndpointHandler,
35
- Span, Tracer, parseTraceparent, formatTraceparent, tracingMiddleware, instrumentFetch,
36
- healthCheck, createHealthHandlers, memoryCheck, eventLoopCheck, diskSpaceCheck,
37
- } = require('./lib/observe');
38
- const {
39
- jwt, sign: jwtSign, verify: jwtVerify, decode: jwtDecode, jwks, tokenPair, createRefreshToken, SUPPORTED_ALGORITHMS,
40
- session, Session, MemoryStore,
41
- oauth, generatePKCE, generateState, PROVIDERS: OAUTH_PROVIDERS,
42
- authorize, can, canAny, Policy, gate, attachUserHelpers,
43
- twoFactor,
44
- webauthn,
45
- trustedDevice,
46
- enrollment,
47
- } = require('./lib/auth');
48
- const {
49
- GrpcStatus, grpcToHttp, statusName: grpcStatusName, STATUS_NAMES: GRPC_STATUS_NAMES,
50
- Metadata: GrpcMetadata,
51
- Writer: ProtoWriter, Reader: ProtoReader, encode: protoEncode, decode: protoDecode,
52
- WIRE_TYPE, TYPE_INFO,
53
- parseProto, parseProtoFile,
54
- frameEncode, FrameParser,
55
- GrpcServiceRegistry, GrpcClient,
56
- HealthService: GrpcHealthService, ServingStatus: GrpcServingStatus,
57
- ReflectionService: GrpcReflectionService,
58
- LoadBalancer: GrpcLoadBalancer, Subchannel: GrpcSubchannel, SubchannelState: GrpcSubchannelState,
59
- ChannelCredentials, createRotatingCredentials,
60
- watchProto,
61
- } = require('./lib/grpc');
62
- const { version } = require('./package.json');
63
-
64
- module.exports = {
65
- /**
66
- * Create a new application instance.
67
- * @returns {import('./lib/app')} Fresh App with an empty middleware stack.
68
- */
69
- createApp: () => new App(),
70
- /**
71
- * Create a standalone Router for modular route grouping.
72
- * Mount on an App with `app.use('/prefix', router)`.
73
- * @returns {import('./lib/router')} Fresh Router instance.
74
- */
75
- Router: () => new Router(),
76
- /** @see module:cors */
77
- cors,
78
- /** @see module:fetch */
79
- fetch,
80
- // body parsers
81
- /** @see module:body/json */
82
- json: body.json,
83
- /** @see module:body/urlencoded */
84
- urlencoded: body.urlencoded,
85
- /** @see module:body/text */
86
- text: body.text,
87
- /** @see module:body/raw */
88
- raw: body.raw,
89
- /** @see module:body/multipart */
90
- multipart: body.multipart,
91
- // serving
92
- /** @see module:static */
93
- static: serveStatic,
94
- // middleware
95
- /** @see module:rateLimit */
96
- rateLimit,
97
- /** @see module:logger */
98
- logger,
99
- /** @see module:compress */
100
- compress,
101
- /** @see module:helmet */
102
- helmet,
103
- /** @see module:timeout */
104
- timeout,
105
- /** @see module:requestId */
106
- requestId,
107
- /** @see module:cookieParser */
108
- cookieParser,
109
- /** @see module:csrf */
110
- csrf,
111
- /** @see module:validator */
112
- validate,
113
- /** @see module:middleware/errorHandler */
114
- errorHandler,
115
- // env
116
- /** @see module:env */
117
- env,
118
- // ORM
119
- /** @see module:orm */
120
- Database,
121
- /** @see module:orm/model */
122
- Model,
123
- /** @see module:orm/schema */
124
- TYPES,
125
- /** @see module:orm/query */
126
- Query,
127
- /** @see module:orm/schema */
128
- validateFKAction,
129
- /** @see module:orm/schema */
130
- validateCheck,
131
- // ORM: Migration framework
132
- /** @see module:orm/migrate */
133
- Migrator,
134
- /** @see module:orm/migrate */
135
- defineMigration,
136
- // ORM: Schema snapshots (EF Core–style auto-migrations)
137
- /** @see module:orm/snapshot */
138
- buildSnapshot,
139
- loadSnapshot,
140
- saveSnapshot,
141
- diffSnapshots,
142
- hasNoChanges,
143
- generateMigrationCode,
144
- discoverModels,
145
- SNAPSHOT_FILE,
146
- // ORM: Query caching
147
- /** @see module:orm/cache */
148
- QueryCache,
149
- // ORM: Seeding
150
- /** @see module:orm/seed */
151
- Seeder,
152
- /** @see module:orm/seed */
153
- SeederRunner,
154
- /** @see module:orm/seed */
155
- Factory,
156
- /** @see module:orm/seed */
157
- Fake,
158
- // ORM: Performance & Scalability
159
- /** @see module:orm/profiler */
160
- QueryProfiler,
161
- /** @see module:orm/replicas */
162
- ReplicaManager,
163
- // ORM: Advanced Features (Phase 3)
164
- /** @see module:orm/views */
165
- DatabaseView,
166
- /** @see module:orm/search */
167
- FullTextSearch,
168
- /** @see module:orm/geo */
169
- GeoQuery,
170
- /** @see module:orm/geo */
171
- EARTH_RADIUS_KM,
172
- /** @see module:orm/geo */
173
- EARTH_RADIUS_MI,
174
- // ORM: Enterprise Infrastructure (Phase 4)
175
- /** @see module:orm/tenancy */
176
- TenantManager,
177
- /** @see module:orm/audit */
178
- AuditLog,
179
- /** @see module:orm/plugin */
180
- PluginManager,
181
- /** @see module:orm/procedures */
182
- StoredProcedure,
183
- /** @see module:orm/procedures */
184
- StoredFunction,
185
- /** @see module:orm/procedures */
186
- TriggerManager,
187
- // Error handling & debugging
188
- /** @see module:errors */
189
- HttpError: errors.HttpError,
190
- BadRequestError: errors.BadRequestError,
191
- UnauthorizedError: errors.UnauthorizedError,
192
- ForbiddenError: errors.ForbiddenError,
193
- NotFoundError: errors.NotFoundError,
194
- MethodNotAllowedError: errors.MethodNotAllowedError,
195
- ConflictError: errors.ConflictError,
196
- GoneError: errors.GoneError,
197
- PayloadTooLargeError: errors.PayloadTooLargeError,
198
- UnprocessableEntityError: errors.UnprocessableEntityError,
199
- ValidationError: errors.ValidationError,
200
- TooManyRequestsError: errors.TooManyRequestsError,
201
- InternalError: errors.InternalError,
202
- NotImplementedError: errors.NotImplementedError,
203
- BadGatewayError: errors.BadGatewayError,
204
- ServiceUnavailableError: errors.ServiceUnavailableError,
205
- // Framework-specific errors
206
- DatabaseError: errors.DatabaseError,
207
- ConfigurationError: errors.ConfigurationError,
208
- MiddlewareError: errors.MiddlewareError,
209
- RoutingError: errors.RoutingError,
210
- TimeoutError: errors.TimeoutError,
211
- // ORM-specific errors
212
- ConnectionError: errors.ConnectionError,
213
- MigrationError: errors.MigrationError,
214
- TransactionError: errors.TransactionError,
215
- QueryError: errors.QueryError,
216
- AdapterError: errors.AdapterError,
217
- CacheError: errors.CacheError,
218
- // Phase 4 errors
219
- TenancyError: errors.TenancyError,
220
- AuditError: errors.AuditError,
221
- PluginError: errors.PluginError,
222
- ProcedureError: errors.ProcedureError,
223
- createError: errors.createError,
224
- isHttpError: errors.isHttpError,
225
- /** @see module:debug */
226
- debug,
227
- // ORM: CLI tooling
228
- /** @see module:cli */
229
- CLI,
230
- /** @see module:cli */
231
- runCLI,
232
- // classes (for advanced / direct usage)
233
- /** @see module:ws/connection */
234
- WebSocketConnection,
235
- /** @see module:ws/room */
236
- WebSocketPool,
237
- /** @see module:sse/stream */
238
- SSEStream,
239
- // Lifecycle & Clustering
240
- /** @see module:lifecycle */
241
- LifecycleManager,
242
- /** @see module:lifecycle */
243
- LIFECYCLE_STATE,
244
- /** @see module:cluster */
245
- ClusterManager,
246
- /** @see module:cluster */
247
- cluster: clusterize,
248
- // Observability Structured Logging
249
- /** @see module:observe/logger */
250
- Logger,
251
- /** @see module:observe/logger */
252
- structuredLogger,
253
- // Observability Metrics
254
- /** @see module:observe/metrics */
255
- Counter,
256
- /** @see module:observe/metrics */
257
- Gauge,
258
- /** @see module:observe/metrics */
259
- Histogram,
260
- /** @see module:observe/metrics */
261
- MetricsRegistry,
262
- /** @see module:observe/metrics */
263
- DEFAULT_BUCKETS,
264
- /** @see module:observe/metrics */
265
- createDefaultMetrics,
266
- /** @see module:observe/metrics */
267
- metricsMiddleware,
268
- /** @see module:observe/metrics */
269
- metricsEndpoint: metricsEndpointHandler,
270
- // Observability Tracing
271
- /** @see module:observe/tracing */
272
- Span,
273
- /** @see module:observe/tracing */
274
- Tracer,
275
- /** @see module:observe/tracing */
276
- parseTraceparent,
277
- /** @see module:observe/tracing */
278
- formatTraceparent,
279
- /** @see module:observe/tracing */
280
- tracingMiddleware,
281
- /** @see module:observe/tracing */
282
- instrumentFetch,
283
- // Observability Health Checks
284
- /** @see module:observe/health */
285
- healthCheck,
286
- /** @see module:observe/health */
287
- createHealthHandlers,
288
- /** @see module:observe/health */
289
- memoryCheck,
290
- /** @see module:observe/health */
291
- eventLoopCheck,
292
- /** @see module:observe/health */
293
- diskSpaceCheck,
294
- // Authentication & Sessions (Phase 3)
295
- /** @see module:auth/jwt */
296
- jwt,
297
- /** @see module:auth/jwt */
298
- jwtSign,
299
- /** @see module:auth/jwt */
300
- jwtVerify,
301
- /** @see module:auth/jwt */
302
- jwtDecode,
303
- /** @see module:auth/jwt */
304
- jwks,
305
- /** @see module:auth/jwt */
306
- tokenPair,
307
- /** @see module:auth/jwt */
308
- createRefreshToken,
309
- /** @see module:auth/jwt */
310
- SUPPORTED_ALGORITHMS,
311
- // Auth: Sessions
312
- /** @see module:auth/session */
313
- session,
314
- /** @see module:auth/session */
315
- Session,
316
- /** @see module:auth/session */
317
- MemoryStore,
318
- // Auth: OAuth2
319
- /** @see module:auth/oauth */
320
- oauth,
321
- /** @see module:auth/oauth */
322
- generatePKCE,
323
- /** @see module:auth/oauth */
324
- generateState,
325
- /** @see module:auth/oauth */
326
- OAUTH_PROVIDERS,
327
- // Auth: Authorization
328
- /** @see module:auth/authorize */
329
- authorize,
330
- /** @see module:auth/authorize */
331
- can,
332
- /** @see module:auth/authorize */
333
- canAny,
334
- /** @see module:auth/authorize */
335
- Policy,
336
- /** @see module:auth/authorize */
337
- gate,
338
- /** @see module:auth/authorize */
339
- attachUserHelpers,
340
- // Auth: Two-Factor Authentication
341
- /** @see module:auth/twoFactor */
342
- twoFactor,
343
- // Auth: WebAuthn / Passkeys
344
- /** @see module:auth/webauthn */
345
- webauthn,
346
- // Auth: Trusted Device / Remember Me
347
- /** @see module:auth/trustedDevice */
348
- trustedDevice,
349
- // Auth: 2FA Enrollment Flow
350
- /** @see module:auth/enrollment */
351
- enrollment,
352
- // gRPC
353
- /** @see module:grpc/status */
354
- GrpcStatus,
355
- /** @see module:grpc/status */
356
- grpcToHttp,
357
- /** @see module:grpc/status */
358
- grpcStatusName,
359
- /** @see module:grpc/status */
360
- GRPC_STATUS_NAMES,
361
- /** @see module:grpc/metadata */
362
- GrpcMetadata,
363
- /** @see module:grpc/codec */
364
- ProtoWriter,
365
- /** @see module:grpc/codec */
366
- ProtoReader,
367
- /** @see module:grpc/codec */
368
- protoEncode,
369
- /** @see module:grpc/codec */
370
- protoDecode,
371
- /** @see module:grpc/codec */
372
- WIRE_TYPE,
373
- /** @see module:grpc/codec */
374
- TYPE_INFO,
375
- /** @see module:grpc/proto */
376
- parseProto,
377
- /** @see module:grpc/proto */
378
- parseProtoFile,
379
- /** @see module:grpc/frame */
380
- frameEncode,
381
- /** @see module:grpc/frame */
382
- FrameParser,
383
- /** @see module:grpc/server */
384
- GrpcServiceRegistry,
385
- /** @see module:grpc/client */
386
- GrpcClient,
387
- // gRPC: Health check
388
- /** @see module:grpc/health */
389
- GrpcHealthService,
390
- /** @see module:grpc/health */
391
- GrpcServingStatus,
392
- // gRPC: Server reflection
393
- /** @see module:grpc/reflection */
394
- GrpcReflectionService,
395
- // gRPC: Load balancing
396
- /** @see module:grpc/balancer */
397
- GrpcLoadBalancer,
398
- /** @see module:grpc/balancer */
399
- GrpcSubchannel,
400
- /** @see module:grpc/balancer */
401
- GrpcSubchannelState,
402
- // gRPC: Channel credentials
403
- /** @see module:grpc/credentials */
404
- ChannelCredentials,
405
- /** @see module:grpc/credentials */
406
- createRotatingCredentials,
407
- // gRPC: Proto hot-reload
408
- /** @see module:grpc/watch */
409
- watchProto,
410
- /** Package version */
411
- version,
412
- };
1
+ /**
2
+ * @module @zero-server/sdk
3
+ * @description Public entry point for the @zero-server/sdk package.
4
+ * Re-exports every middleware, the app factory, and the fetch helper.
5
+ */
6
+ const App = require('./lib/app');
7
+ const Router = require('./lib/router');
8
+ const cors = require('./lib/middleware/cors');
9
+ const fetch = require('./lib/fetch');
10
+ const body = require('./lib/body');
11
+ const serveStatic = require('./lib/middleware/static');
12
+ const rateLimit = require('./lib/middleware/rateLimit');
13
+ const logger = require('./lib/middleware/logger');
14
+ const compress = require('./lib/middleware/compress');
15
+ const helmet = require('./lib/middleware/helmet');
16
+ const timeout = require('./lib/middleware/timeout');
17
+ const requestId = require('./lib/middleware/requestId');
18
+ const cookieParser = require('./lib/middleware/cookieParser');
19
+ const csrf = require('./lib/middleware/csrf');
20
+ const validate = require('./lib/middleware/validator');
21
+ const errorHandler = require('./lib/middleware/errorHandler');
22
+ const { WebSocketConnection, handleUpgrade, WebSocketPool } = require('./lib/ws');
23
+ const { SSEStream } = require('./lib/sse');
24
+ const env = require('./lib/env');
25
+ const { Database, Model, TYPES, Query, validateFKAction, validateCheck, Migrator, defineMigration, QueryCache, Seeder, SeederRunner, Factory, Fake, QueryProfiler, ReplicaManager, DatabaseView, FullTextSearch, GeoQuery, EARTH_RADIUS_KM, EARTH_RADIUS_MI, TenantManager, AuditLog, PluginManager, StoredProcedure, StoredFunction, TriggerManager, buildSnapshot, loadSnapshot, saveSnapshot, diffSnapshots, hasNoChanges, generateMigrationCode, discoverModels, SNAPSHOT_FILE } = require('./lib/orm');
26
+ const { CLI, runCLI } = require('./lib/cli');
27
+ const errors = require('./lib/errors');
28
+ const debug = require('./lib/debug');
29
+ const { LifecycleManager, LIFECYCLE_STATE } = require('./lib/lifecycle');
30
+ const { ClusterManager, clusterize } = require('./lib/cluster');
31
+ const {
32
+ Logger, structuredLogger,
33
+ Counter, Gauge, Histogram, MetricsRegistry, DEFAULT_BUCKETS,
34
+ createDefaultMetrics, metricsMiddleware, metricsEndpoint: metricsEndpointHandler,
35
+ Span, Tracer, parseTraceparent, formatTraceparent, tracingMiddleware, instrumentFetch,
36
+ healthCheck, createHealthHandlers, memoryCheck, eventLoopCheck, diskSpaceCheck,
37
+ } = require('./lib/observe');
38
+ const {
39
+ jwt, sign: jwtSign, verify: jwtVerify, decode: jwtDecode, jwks, tokenPair, createRefreshToken, SUPPORTED_ALGORITHMS,
40
+ session, Session, MemoryStore,
41
+ oauth, generatePKCE, generateState, PROVIDERS: OAUTH_PROVIDERS,
42
+ authorize, can, canAny, Policy, gate, attachUserHelpers,
43
+ twoFactor,
44
+ webauthn,
45
+ trustedDevice,
46
+ enrollment,
47
+ } = require('./lib/auth');
48
+ const {
49
+ GrpcStatus, grpcToHttp, statusName: grpcStatusName, STATUS_NAMES: GRPC_STATUS_NAMES,
50
+ Metadata: GrpcMetadata,
51
+ Writer: ProtoWriter, Reader: ProtoReader, encode: protoEncode, decode: protoDecode,
52
+ WIRE_TYPE, TYPE_INFO,
53
+ parseProto, parseProtoFile,
54
+ frameEncode, FrameParser,
55
+ GrpcServiceRegistry, GrpcClient,
56
+ HealthService: GrpcHealthService, ServingStatus: GrpcServingStatus,
57
+ ReflectionService: GrpcReflectionService,
58
+ LoadBalancer: GrpcLoadBalancer, Subchannel: GrpcSubchannel, SubchannelState: GrpcSubchannelState,
59
+ ChannelCredentials, createRotatingCredentials,
60
+ watchProto,
61
+ } = require('./lib/grpc');
62
+ const { version } = require('./package.json');
63
+
64
+ module.exports = {
65
+ /**
66
+ * Create a new application instance.
67
+ * @returns {import('./lib/app')} Fresh App with an empty middleware stack.
68
+ */
69
+ createApp: () => new App(),
70
+ /**
71
+ * Create a standalone Router for modular route grouping.
72
+ * Mount on an App with `app.use('/prefix', router)`.
73
+ * @returns {import('./lib/router')} Fresh Router instance.
74
+ */
75
+ Router: () => new Router(),
76
+ /** @see module:cors */
77
+ cors,
78
+ /** @see module:fetch */
79
+ fetch,
80
+ // body parsers
81
+ /** @see module:body/json */
82
+ json: body.json,
83
+ /** @see module:body/urlencoded */
84
+ urlencoded: body.urlencoded,
85
+ /** @see module:body/text */
86
+ text: body.text,
87
+ /** @see module:body/raw */
88
+ raw: body.raw,
89
+ /** @see module:body/multipart */
90
+ multipart: body.multipart,
91
+ // serving
92
+ /** @see module:static */
93
+ static: serveStatic,
94
+ // middleware
95
+ /** @see module:rateLimit */
96
+ rateLimit,
97
+ /** @see module:logger */
98
+ logger,
99
+ /** @see module:compress */
100
+ compress,
101
+ /** @see module:helmet */
102
+ helmet,
103
+ /** @see module:timeout */
104
+ timeout,
105
+ /** @see module:requestId */
106
+ requestId,
107
+ /** @see module:cookieParser */
108
+ cookieParser,
109
+ /** @see module:csrf */
110
+ csrf,
111
+ /** @see module:validator */
112
+ validate,
113
+ /** @see module:middleware/errorHandler */
114
+ errorHandler,
115
+ // env
116
+ /** @see module:env */
117
+ env,
118
+ // ORM
119
+ /** @see module:orm */
120
+ Database,
121
+ /** @see module:orm/model */
122
+ Model,
123
+ /** @see module:orm/schema */
124
+ TYPES,
125
+ /** @see module:orm/query */
126
+ Query,
127
+ /** @see module:orm/schema */
128
+ validateFKAction,
129
+ /** @see module:orm/schema */
130
+ validateCheck,
131
+ // ORM: Migration framework
132
+ /** @see module:orm/migrate */
133
+ Migrator,
134
+ /** @see module:orm/migrate */
135
+ defineMigration,
136
+ // ORM: Schema snapshots (EF Core–style auto-migrations)
137
+ /** @see module:orm/snapshot */
138
+ buildSnapshot,
139
+ loadSnapshot,
140
+ saveSnapshot,
141
+ diffSnapshots,
142
+ hasNoChanges,
143
+ generateMigrationCode,
144
+ discoverModels,
145
+ SNAPSHOT_FILE,
146
+ // ORM: Query caching
147
+ /** @see module:orm/cache */
148
+ QueryCache,
149
+ // ORM: Seeding
150
+ /** @see module:orm/seed */
151
+ Seeder,
152
+ /** @see module:orm/seed */
153
+ SeederRunner,
154
+ /** @see module:orm/seed */
155
+ Factory,
156
+ /** @see module:orm/seed */
157
+ Fake,
158
+ // ORM: Performance & Scalability
159
+ /** @see module:orm/profiler */
160
+ QueryProfiler,
161
+ /** @see module:orm/replicas */
162
+ ReplicaManager,
163
+ // ORM: Advanced Features (Phase 3)
164
+ /** @see module:orm/views */
165
+ DatabaseView,
166
+ /** @see module:orm/search */
167
+ FullTextSearch,
168
+ /** @see module:orm/geo */
169
+ GeoQuery,
170
+ /** @see module:orm/geo */
171
+ EARTH_RADIUS_KM,
172
+ /** @see module:orm/geo */
173
+ EARTH_RADIUS_MI,
174
+ // ORM: Enterprise Infrastructure (Phase 4)
175
+ /** @see module:orm/tenancy */
176
+ TenantManager,
177
+ /** @see module:orm/audit */
178
+ AuditLog,
179
+ /** @see module:orm/plugin */
180
+ PluginManager,
181
+ /** @see module:orm/procedures */
182
+ StoredProcedure,
183
+ /** @see module:orm/procedures */
184
+ StoredFunction,
185
+ /** @see module:orm/procedures */
186
+ TriggerManager,
187
+ // Error handling & debugging
188
+ /** @see module:errors */
189
+ HttpError: errors.HttpError,
190
+ BadRequestError: errors.BadRequestError,
191
+ UnauthorizedError: errors.UnauthorizedError,
192
+ ForbiddenError: errors.ForbiddenError,
193
+ NotFoundError: errors.NotFoundError,
194
+ MethodNotAllowedError: errors.MethodNotAllowedError,
195
+ ConflictError: errors.ConflictError,
196
+ GoneError: errors.GoneError,
197
+ PayloadTooLargeError: errors.PayloadTooLargeError,
198
+ UnprocessableEntityError: errors.UnprocessableEntityError,
199
+ ValidationError: errors.ValidationError,
200
+ TooManyRequestsError: errors.TooManyRequestsError,
201
+ InternalError: errors.InternalError,
202
+ NotImplementedError: errors.NotImplementedError,
203
+ BadGatewayError: errors.BadGatewayError,
204
+ ServiceUnavailableError: errors.ServiceUnavailableError,
205
+ // Framework-specific errors
206
+ DatabaseError: errors.DatabaseError,
207
+ ConfigurationError: errors.ConfigurationError,
208
+ MiddlewareError: errors.MiddlewareError,
209
+ RoutingError: errors.RoutingError,
210
+ TimeoutError: errors.TimeoutError,
211
+ // ORM-specific errors
212
+ ConnectionError: errors.ConnectionError,
213
+ MigrationError: errors.MigrationError,
214
+ TransactionError: errors.TransactionError,
215
+ QueryError: errors.QueryError,
216
+ AdapterError: errors.AdapterError,
217
+ CacheError: errors.CacheError,
218
+ // Phase 4 errors
219
+ TenancyError: errors.TenancyError,
220
+ AuditError: errors.AuditError,
221
+ PluginError: errors.PluginError,
222
+ ProcedureError: errors.ProcedureError,
223
+ createError: errors.createError,
224
+ isHttpError: errors.isHttpError,
225
+ /** @see module:debug */
226
+ debug,
227
+ // ORM: CLI tooling
228
+ /** @see module:cli */
229
+ CLI,
230
+ /** @see module:cli */
231
+ runCLI,
232
+ // classes (for advanced / direct usage)
233
+ /** @see module:ws/connection */
234
+ WebSocketConnection,
235
+ /** @see module:ws/handshake */
236
+ handleUpgrade,
237
+ /** @see module:ws/room */
238
+ WebSocketPool,
239
+ /** @see module:sse/stream */
240
+ SSEStream,
241
+ // Lifecycle & Clustering
242
+ /** @see module:lifecycle */
243
+ LifecycleManager,
244
+ /** @see module:lifecycle */
245
+ LIFECYCLE_STATE,
246
+ /** @see module:cluster */
247
+ ClusterManager,
248
+ /** @see module:cluster */
249
+ cluster: clusterize,
250
+ // Observability — Structured Logging
251
+ /** @see module:observe/logger */
252
+ Logger,
253
+ /** @see module:observe/logger */
254
+ structuredLogger,
255
+ // Observability — Metrics
256
+ /** @see module:observe/metrics */
257
+ Counter,
258
+ /** @see module:observe/metrics */
259
+ Gauge,
260
+ /** @see module:observe/metrics */
261
+ Histogram,
262
+ /** @see module:observe/metrics */
263
+ MetricsRegistry,
264
+ /** @see module:observe/metrics */
265
+ DEFAULT_BUCKETS,
266
+ /** @see module:observe/metrics */
267
+ createDefaultMetrics,
268
+ /** @see module:observe/metrics */
269
+ metricsMiddleware,
270
+ /** @see module:observe/metrics */
271
+ metricsEndpoint: metricsEndpointHandler,
272
+ // Observability — Tracing
273
+ /** @see module:observe/tracing */
274
+ Span,
275
+ /** @see module:observe/tracing */
276
+ Tracer,
277
+ /** @see module:observe/tracing */
278
+ parseTraceparent,
279
+ /** @see module:observe/tracing */
280
+ formatTraceparent,
281
+ /** @see module:observe/tracing */
282
+ tracingMiddleware,
283
+ /** @see module:observe/tracing */
284
+ instrumentFetch,
285
+ // Observability — Health Checks
286
+ /** @see module:observe/health */
287
+ healthCheck,
288
+ /** @see module:observe/health */
289
+ createHealthHandlers,
290
+ /** @see module:observe/health */
291
+ memoryCheck,
292
+ /** @see module:observe/health */
293
+ eventLoopCheck,
294
+ /** @see module:observe/health */
295
+ diskSpaceCheck,
296
+ // Authentication & Sessions (Phase 3)
297
+ /** @see module:auth/jwt */
298
+ jwt,
299
+ /** @see module:auth/jwt */
300
+ jwtSign,
301
+ /** @see module:auth/jwt */
302
+ jwtVerify,
303
+ /** @see module:auth/jwt */
304
+ jwtDecode,
305
+ /** @see module:auth/jwt */
306
+ jwks,
307
+ /** @see module:auth/jwt */
308
+ tokenPair,
309
+ /** @see module:auth/jwt */
310
+ createRefreshToken,
311
+ /** @see module:auth/jwt */
312
+ SUPPORTED_ALGORITHMS,
313
+ // Auth: Sessions
314
+ /** @see module:auth/session */
315
+ session,
316
+ /** @see module:auth/session */
317
+ Session,
318
+ /** @see module:auth/session */
319
+ MemoryStore,
320
+ // Auth: OAuth2
321
+ /** @see module:auth/oauth */
322
+ oauth,
323
+ /** @see module:auth/oauth */
324
+ generatePKCE,
325
+ /** @see module:auth/oauth */
326
+ generateState,
327
+ /** @see module:auth/oauth */
328
+ OAUTH_PROVIDERS,
329
+ // Auth: Authorization
330
+ /** @see module:auth/authorize */
331
+ authorize,
332
+ /** @see module:auth/authorize */
333
+ can,
334
+ /** @see module:auth/authorize */
335
+ canAny,
336
+ /** @see module:auth/authorize */
337
+ Policy,
338
+ /** @see module:auth/authorize */
339
+ gate,
340
+ /** @see module:auth/authorize */
341
+ attachUserHelpers,
342
+ // Auth: Two-Factor Authentication
343
+ /** @see module:auth/twoFactor */
344
+ twoFactor,
345
+ // Auth: WebAuthn / Passkeys
346
+ /** @see module:auth/webauthn */
347
+ webauthn,
348
+ // Auth: Trusted Device / Remember Me
349
+ /** @see module:auth/trustedDevice */
350
+ trustedDevice,
351
+ // Auth: 2FA Enrollment Flow
352
+ /** @see module:auth/enrollment */
353
+ enrollment,
354
+ // gRPC
355
+ /** @see module:grpc/status */
356
+ GrpcStatus,
357
+ /** @see module:grpc/status */
358
+ grpcToHttp,
359
+ /** @see module:grpc/status */
360
+ grpcStatusName,
361
+ /** @see module:grpc/status */
362
+ GRPC_STATUS_NAMES,
363
+ /** @see module:grpc/metadata */
364
+ GrpcMetadata,
365
+ /** @see module:grpc/codec */
366
+ ProtoWriter,
367
+ /** @see module:grpc/codec */
368
+ ProtoReader,
369
+ /** @see module:grpc/codec */
370
+ protoEncode,
371
+ /** @see module:grpc/codec */
372
+ protoDecode,
373
+ /** @see module:grpc/codec */
374
+ WIRE_TYPE,
375
+ /** @see module:grpc/codec */
376
+ TYPE_INFO,
377
+ /** @see module:grpc/proto */
378
+ parseProto,
379
+ /** @see module:grpc/proto */
380
+ parseProtoFile,
381
+ /** @see module:grpc/frame */
382
+ frameEncode,
383
+ /** @see module:grpc/frame */
384
+ FrameParser,
385
+ /** @see module:grpc/server */
386
+ GrpcServiceRegistry,
387
+ /** @see module:grpc/client */
388
+ GrpcClient,
389
+ // gRPC: Health check
390
+ /** @see module:grpc/health */
391
+ GrpcHealthService,
392
+ /** @see module:grpc/health */
393
+ GrpcServingStatus,
394
+ // gRPC: Server reflection
395
+ /** @see module:grpc/reflection */
396
+ GrpcReflectionService,
397
+ // gRPC: Load balancing
398
+ /** @see module:grpc/balancer */
399
+ GrpcLoadBalancer,
400
+ /** @see module:grpc/balancer */
401
+ GrpcSubchannel,
402
+ /** @see module:grpc/balancer */
403
+ GrpcSubchannelState,
404
+ // gRPC: Channel credentials
405
+ /** @see module:grpc/credentials */
406
+ ChannelCredentials,
407
+ /** @see module:grpc/credentials */
408
+ createRotatingCredentials,
409
+ // gRPC: Proto hot-reload
410
+ /** @see module:grpc/watch */
411
+ watchProto,
412
+ /** Package version */
413
+ version,
414
+ };