@oakbun/ws 0.1.0

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 (127) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +36 -0
  3. package/dist/core/src/adapter/mysql.d.ts +21 -0
  4. package/dist/core/src/adapter/mysql.d.ts.map +1 -0
  5. package/dist/core/src/adapter/postgres.d.ts +16 -0
  6. package/dist/core/src/adapter/postgres.d.ts.map +1 -0
  7. package/dist/core/src/adapter/resolve.d.ts +16 -0
  8. package/dist/core/src/adapter/resolve.d.ts.map +1 -0
  9. package/dist/core/src/adapter/sqlite.d.ts +17 -0
  10. package/dist/core/src/adapter/sqlite.d.ts.map +1 -0
  11. package/dist/core/src/adapter/types.d.ts +29 -0
  12. package/dist/core/src/adapter/types.d.ts.map +1 -0
  13. package/dist/core/src/app/audit-wiring.d.ts +6 -0
  14. package/dist/core/src/app/audit-wiring.d.ts.map +1 -0
  15. package/dist/core/src/app/body-size-limit.d.ts +29 -0
  16. package/dist/core/src/app/body-size-limit.d.ts.map +1 -0
  17. package/dist/core/src/app/compression.d.ts +25 -0
  18. package/dist/core/src/app/compression.d.ts.map +1 -0
  19. package/dist/core/src/app/cookies.d.ts +17 -0
  20. package/dist/core/src/app/cookies.d.ts.map +1 -0
  21. package/dist/core/src/app/cors.d.ts +65 -0
  22. package/dist/core/src/app/cors.d.ts.map +1 -0
  23. package/dist/core/src/app/csrf.d.ts +52 -0
  24. package/dist/core/src/app/csrf.d.ts.map +1 -0
  25. package/dist/core/src/app/health.d.ts +36 -0
  26. package/dist/core/src/app/health.d.ts.map +1 -0
  27. package/dist/core/src/app/index.d.ts +282 -0
  28. package/dist/core/src/app/index.d.ts.map +1 -0
  29. package/dist/core/src/app/logger.d.ts +4 -0
  30. package/dist/core/src/app/logger.d.ts.map +1 -0
  31. package/dist/core/src/app/middleware.d.ts +20 -0
  32. package/dist/core/src/app/middleware.d.ts.map +1 -0
  33. package/dist/core/src/app/module.d.ts +273 -0
  34. package/dist/core/src/app/module.d.ts.map +1 -0
  35. package/dist/core/src/app/plugin.d.ts +112 -0
  36. package/dist/core/src/app/plugin.d.ts.map +1 -0
  37. package/dist/core/src/app/rate-limit.d.ts +76 -0
  38. package/dist/core/src/app/rate-limit.d.ts.map +1 -0
  39. package/dist/core/src/app/request-id.d.ts +52 -0
  40. package/dist/core/src/app/request-id.d.ts.map +1 -0
  41. package/dist/core/src/app/router.d.ts +6 -0
  42. package/dist/core/src/app/router.d.ts.map +1 -0
  43. package/dist/core/src/app/scalar.d.ts +40 -0
  44. package/dist/core/src/app/scalar.d.ts.map +1 -0
  45. package/dist/core/src/app/secure-headers.d.ts +48 -0
  46. package/dist/core/src/app/secure-headers.d.ts.map +1 -0
  47. package/dist/core/src/app/system-ctx.d.ts +3 -0
  48. package/dist/core/src/app/system-ctx.d.ts.map +1 -0
  49. package/dist/core/src/app/types.d.ts +277 -0
  50. package/dist/core/src/app/types.d.ts.map +1 -0
  51. package/dist/core/src/cli/config/types.d.ts +31 -0
  52. package/dist/core/src/cli/config/types.d.ts.map +1 -0
  53. package/dist/core/src/cli/index.d.ts +3 -0
  54. package/dist/core/src/cli/index.d.ts.map +1 -0
  55. package/dist/core/src/client/error.d.ts +8 -0
  56. package/dist/core/src/client/error.d.ts.map +1 -0
  57. package/dist/core/src/client/index.d.ts +33 -0
  58. package/dist/core/src/client/index.d.ts.map +1 -0
  59. package/dist/core/src/client/proxy.d.ts +88 -0
  60. package/dist/core/src/client/proxy.d.ts.map +1 -0
  61. package/dist/core/src/client/test-client.d.ts +30 -0
  62. package/dist/core/src/client/test-client.d.ts.map +1 -0
  63. package/dist/core/src/cron/index.d.ts +73 -0
  64. package/dist/core/src/cron/index.d.ts.map +1 -0
  65. package/dist/core/src/db/index.d.ts +281 -0
  66. package/dist/core/src/db/index.d.ts.map +1 -0
  67. package/dist/core/src/db/migrations/diff.d.ts +5 -0
  68. package/dist/core/src/db/migrations/diff.d.ts.map +1 -0
  69. package/dist/core/src/db/migrations/generator.d.ts +26 -0
  70. package/dist/core/src/db/migrations/generator.d.ts.map +1 -0
  71. package/dist/core/src/db/migrations/index.d.ts +9 -0
  72. package/dist/core/src/db/migrations/index.d.ts.map +1 -0
  73. package/dist/core/src/db/migrations/introspect.d.ts +8 -0
  74. package/dist/core/src/db/migrations/introspect.d.ts.map +1 -0
  75. package/dist/core/src/db/migrations/migrator.d.ts +10 -0
  76. package/dist/core/src/db/migrations/migrator.d.ts.map +1 -0
  77. package/dist/core/src/db/migrations/runner.d.ts +7 -0
  78. package/dist/core/src/db/migrations/runner.d.ts.map +1 -0
  79. package/dist/core/src/db/migrations/tracker.d.ts +7 -0
  80. package/dist/core/src/db/migrations/tracker.d.ts.map +1 -0
  81. package/dist/core/src/db/migrations/types.d.ts +70 -0
  82. package/dist/core/src/db/migrations/types.d.ts.map +1 -0
  83. package/dist/core/src/db/sql.d.ts +148 -0
  84. package/dist/core/src/db/sql.d.ts.map +1 -0
  85. package/dist/core/src/errors/index.d.ts +30 -0
  86. package/dist/core/src/errors/index.d.ts.map +1 -0
  87. package/dist/core/src/events/handler.d.ts +42 -0
  88. package/dist/core/src/events/handler.d.ts.map +1 -0
  89. package/dist/core/src/events/index.d.ts +48 -0
  90. package/dist/core/src/events/index.d.ts.map +1 -0
  91. package/dist/core/src/hooks/executor.d.ts +20 -0
  92. package/dist/core/src/hooks/executor.d.ts.map +1 -0
  93. package/dist/core/src/hooks/types.d.ts +10 -0
  94. package/dist/core/src/hooks/types.d.ts.map +1 -0
  95. package/dist/core/src/index.d.ts +83 -0
  96. package/dist/core/src/index.d.ts.map +1 -0
  97. package/dist/core/src/model/index.d.ts +24 -0
  98. package/dist/core/src/model/index.d.ts.map +1 -0
  99. package/dist/core/src/openapi/generator.d.ts +58 -0
  100. package/dist/core/src/openapi/generator.d.ts.map +1 -0
  101. package/dist/core/src/openapi/zod-to-schema.d.ts +4 -0
  102. package/dist/core/src/openapi/zod-to-schema.d.ts.map +1 -0
  103. package/dist/core/src/resource/errors.d.ts +2 -0
  104. package/dist/core/src/resource/errors.d.ts.map +1 -0
  105. package/dist/core/src/resource/index.d.ts +98 -0
  106. package/dist/core/src/resource/index.d.ts.map +1 -0
  107. package/dist/core/src/resource/zod-table.d.ts +6 -0
  108. package/dist/core/src/resource/zod-table.d.ts.map +1 -0
  109. package/dist/core/src/schema/audit.d.ts +25 -0
  110. package/dist/core/src/schema/audit.d.ts.map +1 -0
  111. package/dist/core/src/schema/column.d.ts +31 -0
  112. package/dist/core/src/schema/column.d.ts.map +1 -0
  113. package/dist/core/src/schema/table.d.ts +68 -0
  114. package/dist/core/src/schema/table.d.ts.map +1 -0
  115. package/dist/core/src/service/index.d.ts +27 -0
  116. package/dist/core/src/service/index.d.ts.map +1 -0
  117. package/dist/index.js +279 -0
  118. package/dist/index.js.map +1 -0
  119. package/dist/ws/src/adapter.d.ts +56 -0
  120. package/dist/ws/src/adapter.d.ts.map +1 -0
  121. package/dist/ws/src/index.d.ts +5 -0
  122. package/dist/ws/src/index.d.ts.map +1 -0
  123. package/dist/ws/src/module-augment.d.ts +7 -0
  124. package/dist/ws/src/module-augment.d.ts.map +1 -0
  125. package/dist/ws/src/types.d.ts +87 -0
  126. package/dist/ws/src/types.d.ts.map +1 -0
  127. package/package.json +53 -0
@@ -0,0 +1,83 @@
1
+ export type { VelnAdapter, BindingValue, ExecuteResult, QueryLogEntry } from './adapter/types';
2
+ export { SQLiteAdapter } from './adapter/sqlite';
3
+ export type { SQLiteConfig } from './adapter/sqlite';
4
+ export { PostgresAdapter } from './adapter/postgres';
5
+ export type { PostgresConfig } from './adapter/postgres';
6
+ export { MySQLAdapter } from './adapter/mysql';
7
+ export type { MySQLConfig } from './adapter/mysql';
8
+ export { resolveAdapter } from './adapter/resolve';
9
+ export type { AdapterConfig } from './adapter/resolve';
10
+ export { column } from './schema/column';
11
+ export type { Column, ColumnDef, SqlType } from './schema/column';
12
+ export { defineTable, toCreateTableSql } from './schema/table';
13
+ export type { SchemaMap, InferRow, InferInsert, InferUpdate, InferTable, TableDef, TableHookHandlers, TableEventMap, InferTableEvents, } from './schema/table';
14
+ export { defineAuditTable } from './schema/audit';
15
+ export type { AuditTableDef, AuditLog, AuditConfig } from './schema/audit';
16
+ export type { ModuleHookHandlers, HookOperation } from './hooks/types';
17
+ export { createMigrator, generateMigration, compareSchemas, introspectSchema, splitSqlStatements } from './db/migrations/index';
18
+ export type { Migrator, MigratorOptions, MigrationResult, MigrationStatus, MigrationRecord, SchemaDiff, TableDiff, TableModification, ColumnDef as MigrationColumnDef, IndexDef, ColumnModification, GenerateOptions, GenerateResult, } from './db/migrations/index';
19
+ export { VelnDB, BoundVelnDB, SelectBuilder, InsertBuilder, JoinBuilder } from './db/index';
20
+ export type { PendingEvent, TransactionResult, QueryLog, } from './db/index';
21
+ export type { JoinClause, SelectOptions, AggregateClause, WhereInput, WhereOp, WhereConditions, FieldCondition, SqlDialect } from './db/sql';
22
+ export type { EventBus as EventBusInterface } from './db/index';
23
+ export { InMemoryEventBus, EventBus, RequestEventQueue } from './events/index';
24
+ export type { EventBusAdapter, EventBusOptions, EventBusErrorHandler } from './events/index';
25
+ export type { EventHandler, VelnEvents } from './events/index';
26
+ export { defineEventHandler, EventHandlerBuilder } from './events/handler';
27
+ export type { EventHandlerDef, EventCallback, EventHandlerFn } from './events/handler';
28
+ export { defineModel, ModelBuilder } from './model/index';
29
+ export type { ModelDef, ModelInstance } from './model/index';
30
+ export { defineService } from './service/index';
31
+ export type { ServiceDef } from './service/index';
32
+ export { defineMiddleware, MiddlewareBuilder } from './app/middleware';
33
+ export type { MiddlewareDef } from './app/middleware';
34
+ export { createApp, Veln } from './app/index';
35
+ export { createSystemCtx } from './app/system-ctx';
36
+ export { defineModule, ModuleBuilder } from './app/module';
37
+ export type { VelnModule, HookDeclaration, AuditDeclaration, ServiceDeclaration } from './app/module';
38
+ export { loggerPlugin, dbPlugin, eventBusPlugin, createPlugin, definePlugin, PluginBuilder } from './app/plugin';
39
+ export type { DbPluginConfig, DbLogOptions, NavItem } from './app/plugin';
40
+ export type { Plugin } from './app/plugin';
41
+ export type { BaseCtx, Guard, ErrorHandler, RouteHandler, Logger, AuthPayload, LogOptions, BaseOptions, AuthUser, AuthAdapter } from './app/types';
42
+ export { ValidationError, createGuard, defineGuard, createOnRequest, createOnBeforeHandle, createOnResponse } from './app/types';
43
+ export { secureHeadersPlugin } from './app/secure-headers';
44
+ export type { SecureHeadersOptions, CspPreset } from './app/secure-headers';
45
+ export { rateLimitPlugin, InMemoryStore } from './app/rate-limit';
46
+ export type { RateLimitOptions, RateLimitStore } from './app/rate-limit';
47
+ export { csrfPlugin } from './app/csrf';
48
+ export type { CsrfOptions, CsrfPlugin } from './app/csrf';
49
+ export { scalarPlugin } from './app/scalar';
50
+ export type { ScalarOptions } from './app/scalar';
51
+ export { bodySizeLimitPlugin } from './app/body-size-limit';
52
+ export type { BodySizeLimitOptions } from './app/body-size-limit';
53
+ export { corsPlugin } from './app/cors';
54
+ export type { CorsOptions, CorsPlugin } from './app/cors';
55
+ export { requestIdPlugin } from './app/request-id';
56
+ export type { RequestIdOptions, RequestIdCtx, RequestIdPlugin } from './app/request-id';
57
+ export { compressionPlugin } from './app/compression';
58
+ export type { CompressionOptions } from './app/compression';
59
+ export { healthPlugin } from './app/health';
60
+ export type { HealthPluginOptions, HealthCheck, HealthPlugin } from './app/health';
61
+ export type { VelnWsAdapter, WsRouteShape } from './app/types';
62
+ export type { RouteSchema, RouteHandlerWithSchema, InferCtx } from './app/types';
63
+ export type { RouteMap, RouteEntry, RouteKey } from './app/types';
64
+ export type { StreamController, StreamOptions, SseController } from './app/types';
65
+ export type { OnRequestHook, OnBeforeHandleHook, OnResponseHook, OnRequestFn, OnBeforeHandleFn, OnResponseFn } from './app/types';
66
+ export { createClient } from './client/index';
67
+ export { createProxyClient, createModuleClient, pathToClientKey } from './client/index';
68
+ export type { ClientResult, InferProxyClient, ProxyClientOptions } from './client/index';
69
+ export { createTestClient } from './client/test-client';
70
+ export type { TestClientOptions } from './client/test-client';
71
+ export { VelnClientError } from './client/error';
72
+ export { generateOpenApiSpec } from './openapi/generator';
73
+ export type { OpenApiSpec } from './openapi/generator';
74
+ export { zodToJsonSchema } from './openapi/zod-to-schema';
75
+ export type { JsonSchema } from './openapi/zod-to-schema';
76
+ export { defineResource, ResourceBuilder, NotFoundError, ConflictError, tableToZodInsert, tableToZodRow } from './resource/index';
77
+ export type { ResourceResult, DefaultModelMethods, ResourceOptions, ModelOverrides, ServiceOverrides, RouteConfig } from './resource/index';
78
+ export { defineCron, resolveExpression, NoOpCronLockAdapter } from './cron/index';
79
+ export type { CronDef, CronBuilder, CronCtx, CronBuildOptions, LogLevel, CronLockAdapter } from './cron/index';
80
+ export { defineConfig, defineCommand } from './cli/index';
81
+ export type { VelnConfig, CommandDef, CommandOption } from './cli/index';
82
+ export { VelnError, BadRequestError, UnauthorizedError, ForbiddenError, UnprocessableError, TooManyRequestsError, InternalError, } from './errors/index';
83
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../core/src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { BoundVelnDB } from '../db/index';
2
+ import type { Logger, BaseOptions } from '../app/types';
3
+ export type ModelInstance<TDef> = TDef & {
4
+ readonly db: BoundVelnDB;
5
+ };
6
+ export interface ModelDef<TName extends string, TDef> {
7
+ readonly _modelName: TName;
8
+ readonly _factory: (db: BoundVelnDB) => ModelInstance<TDef>;
9
+ }
10
+ export declare class ModelBuilder<TName extends string, TTable> {
11
+ private readonly _name;
12
+ private readonly _table;
13
+ private _opts;
14
+ constructor(_name: TName, _table: TTable);
15
+ options(opts: BaseOptions): this;
16
+ define<TDef extends object>(factory: (db: BoundVelnDB, ctx: {
17
+ logger: Logger;
18
+ }) => TDef): ModelDef<TName, TDef>;
19
+ }
20
+ export declare function defineModel<TName extends string, TTable>(name: TName, table: TTable): ModelBuilder<TName, TTable>;
21
+ export declare function defineModel<TName extends string, TTable, TDef extends object>(name: TName, table: TTable, factory: (db: BoundVelnDB, ctx: {
22
+ logger: Logger;
23
+ }) => TDef): ModelDef<TName, TDef>;
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../core/src/model/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAKvD,MAAM,MAAM,aAAa,CAAC,IAAI,IAAI,IAAI,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAA;CAAE,CAAA;AAIrE,MAAM,WAAW,QAAQ,CAAC,KAAK,SAAS,MAAM,EAAE,IAAI;IAClD,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAA;IAC1B,QAAQ,CAAC,QAAQ,EAAI,CAAC,EAAE,EAAE,WAAW,KAAK,aAAa,CAAC,IAAI,CAAC,CAAA;CAC9D;AAID,qBAAa,YAAY,CAAC,KAAK,SAAS,MAAM,EAAE,MAAM;IAIlD,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJzB,OAAO,CAAC,KAAK,CAAkB;gBAGZ,KAAK,EAAG,KAAK,EACb,MAAM,EAAE,MAAM;IAGjC,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAKhC,MAAM,CAAC,IAAI,SAAS,MAAM,EACxB,OAAO,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAC1D,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;CAWzB;AAaD,wBAAgB,WAAW,CACzB,KAAK,SAAS,MAAM,EACpB,MAAM,EAEN,IAAI,EAAG,KAAK,EACZ,KAAK,EAAE,MAAM,GACZ,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;AAE9B,wBAAgB,WAAW,CACzB,KAAK,SAAS,MAAM,EACpB,MAAM,EACN,IAAI,SAAS,MAAM,EAEnB,IAAI,EAAK,KAAK,EACd,KAAK,EAAI,MAAM,EACf,OAAO,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,GAC1D,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA"}
@@ -0,0 +1,58 @@
1
+ import type { Route } from '../app/types';
2
+ import type { JsonSchema } from './zod-to-schema';
3
+ export interface OpenApiSpec {
4
+ openapi: '3.1.0';
5
+ info: {
6
+ title: string;
7
+ version: string;
8
+ description?: string;
9
+ };
10
+ paths: Record<string, Record<string, OpenApiOperation>>;
11
+ components?: {
12
+ securitySchemes?: Record<string, OpenApiSecurityScheme>;
13
+ };
14
+ }
15
+ interface OpenApiSecurityScheme {
16
+ type: 'http';
17
+ scheme: 'bearer';
18
+ bearerFormat?: string;
19
+ }
20
+ interface OpenApiOperation {
21
+ operationId?: string;
22
+ summary?: string;
23
+ description?: string;
24
+ tags?: string[];
25
+ security?: Array<Record<string, string[]>>;
26
+ parameters?: OpenApiParameter[];
27
+ requestBody?: OpenApiRequestBody;
28
+ responses: Record<string, OpenApiResponse>;
29
+ }
30
+ interface OpenApiParameter {
31
+ name: string;
32
+ in: 'path' | 'query';
33
+ required: boolean;
34
+ schema: JsonSchema;
35
+ }
36
+ interface OpenApiRequestBody {
37
+ required: true;
38
+ content: {
39
+ 'application/json': {
40
+ schema: JsonSchema;
41
+ };
42
+ };
43
+ }
44
+ interface OpenApiResponse {
45
+ description: string;
46
+ content?: {
47
+ 'application/json': {
48
+ schema: JsonSchema;
49
+ };
50
+ };
51
+ }
52
+ export declare function generateOpenApiSpec(routes: readonly Route<unknown>[], options?: {
53
+ title?: string;
54
+ version?: string;
55
+ description?: string;
56
+ }): OpenApiSpec;
57
+ export {};
58
+ //# sourceMappingURL=generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../../../core/src/openapi/generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAEzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAGjD,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9D,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAA;IACvD,UAAU,CAAC,EAAE;QACX,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAA;KACxD,CAAA;CACF;AAED,UAAU,qBAAqB;IAC7B,IAAI,EAAW,MAAM,CAAA;IACrB,MAAM,EAAS,QAAQ,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,UAAU,gBAAgB;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAM,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAS,MAAM,EAAE,CAAA;IACtB,QAAQ,CAAC,EAAK,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;IAC7C,UAAU,CAAC,EAAG,gBAAgB,EAAE,CAAA;IAChC,WAAW,CAAC,EAAE,kBAAkB,CAAA;IAChC,SAAS,EAAK,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;CAC9C;AAED,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,GAAG,OAAO,CAAA;IACpB,QAAQ,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,UAAU,CAAA;CACnB;AAED,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,IAAI,CAAA;IACd,OAAO,EAAE;QACP,kBAAkB,EAAE;YAClB,MAAM,EAAE,UAAU,CAAA;SACnB,CAAA;KACF,CAAA;CACF;AAED,UAAU,eAAe;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE;QACR,kBAAkB,EAAE;YAClB,MAAM,EAAE,UAAU,CAAA;SACnB,CAAA;KACF,CAAA;CACF;AA6FD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,KAAK,CAAC,OAAO,CAAC,EAAE,EACjC,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GACnE,WAAW,CAoHb"}
@@ -0,0 +1,4 @@
1
+ import type { ZodTypeAny } from 'zod';
2
+ export type JsonSchema = Record<string, unknown>;
3
+ export declare function zodToJsonSchema(schema: ZodTypeAny): JsonSchema;
4
+ //# sourceMappingURL=zod-to-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod-to-schema.d.ts","sourceRoot":"","sources":["../../../../../core/src/openapi/zod-to-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAErC,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AA0BhD,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAwD9D"}
@@ -0,0 +1,2 @@
1
+ export { NotFoundError, ConflictError } from '../errors/index';
2
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../../core/src/resource/errors.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA"}
@@ -0,0 +1,98 @@
1
+ import type { TableDef, SchemaMap, InferRow, InferInsert } from '../schema/table';
2
+ import type { BoundVelnDB } from '../db/index';
3
+ import type { BaseCtx, BaseOptions } from '../app/types';
4
+ import type { Guard, ErrorHandler, OnRequestHook, OnBeforeHandleHook, OnResponseHook } from '../app/types';
5
+ import type { Plugin } from '../app/plugin';
6
+ import type { AuditConfig } from '../schema/audit';
7
+ import type { ModuleHookHandlers } from '../hooks/types';
8
+ import type { ServiceDef } from '../service/index';
9
+ import type { EventHandlerDef } from '../events/handler';
10
+ import type { VelnModule } from '../app/module';
11
+ export { NotFoundError, ConflictError } from './errors';
12
+ export { tableToZodInsert, tableToZodRow } from './zod-table';
13
+ type ResourceServiceKey<TName extends string> = `${TName}Resource`;
14
+ export interface DefaultModelMethods<TRow, TInsert> {
15
+ index(): Promise<TRow[]>;
16
+ show(id: number): Promise<TRow>;
17
+ store(data: TInsert): Promise<TRow>;
18
+ update(id: number, data: Partial<TInsert>): Promise<TRow>;
19
+ destroy(id: number): Promise<void>;
20
+ }
21
+ export interface ModelOverrides<TRow, TInsert> {
22
+ index?: (db: BoundVelnDB) => () => Promise<TRow[]>;
23
+ show?: (db: BoundVelnDB) => (id: number) => Promise<TRow>;
24
+ store?: (db: BoundVelnDB) => (data: TInsert) => Promise<TRow>;
25
+ update?: (db: BoundVelnDB) => (id: number, data: Partial<TInsert>) => Promise<TRow>;
26
+ destroy?: (db: BoundVelnDB) => (id: number) => Promise<void>;
27
+ [key: string]: ((db: BoundVelnDB) => (...args: never[]) => unknown) | undefined;
28
+ }
29
+ export type ServiceOverrides<TModel, TRow, TInsert> = {
30
+ index?: (deps: {
31
+ model: TModel;
32
+ }) => () => Promise<TRow[]>;
33
+ show?: (deps: {
34
+ model: TModel;
35
+ }) => (id: number) => Promise<TRow>;
36
+ store?: (deps: {
37
+ model: TModel;
38
+ }) => (data: TInsert) => Promise<TRow>;
39
+ update?: (deps: {
40
+ model: TModel;
41
+ }) => (id: number, data: Partial<TInsert>) => Promise<TRow>;
42
+ destroy?: (deps: {
43
+ model: TModel;
44
+ }) => (id: number) => Promise<void>;
45
+ };
46
+ export type RouteConfig = {
47
+ guard?: Guard<BaseCtx>;
48
+ summary?: string;
49
+ } | false;
50
+ export interface ResourceOptions<TRow, TInsert> {
51
+ prefix?: string;
52
+ model?: ModelOverrides<TRow, TInsert>;
53
+ service?: ServiceOverrides<DefaultModelMethods<TRow, TInsert> & Record<string, unknown>, TRow, TInsert>;
54
+ routes?: {
55
+ index?: RouteConfig;
56
+ show?: RouteConfig;
57
+ store?: RouteConfig;
58
+ update?: RouteConfig;
59
+ destroy?: RouteConfig;
60
+ };
61
+ }
62
+ declare function buildResourceModel<T, S extends SchemaMap>(table: TableDef<T, S>, overrides: ModelOverrides<InferRow<TableDef<T, S>>, InferInsert<TableDef<T, S>>>): import("oakbun").ModelDef<`${string}Model`, DefaultModelMethods<T, { [K in keyof S as (S[K]["def"]["primaryKey"] extends true ? true : S[K]["def"]["defaultValue"] extends undefined ? S[K]["def"]["defaultFn"] extends undefined ? S[K]["def"]["nullable"] extends true ? true : false : true : true) extends true ? never : K]: S[K] extends import("oakbun").Column<infer T_1> ? NonNullable<T_1> : never; } & { [K_1 in keyof S as (S[K_1]["def"]["primaryKey"] extends true ? true : S[K_1]["def"]["defaultValue"] extends undefined ? S[K_1]["def"]["defaultFn"] extends undefined ? S[K_1]["def"]["nullable"] extends true ? true : false : true : true) extends true ? K_1 : never]?: S[K_1] extends import("oakbun").Column<infer T_1> ? T_1 : never; }> & Record<string, unknown>>;
63
+ export interface ResourceResult<T, S extends SchemaMap> {
64
+ Model: ReturnType<typeof buildResourceModel<T, S>>;
65
+ Service: ServiceDef<ResourceServiceKey<string>, DefaultModelMethods<InferRow<TableDef<T, S>>, InferInsert<TableDef<T, S>>>>;
66
+ module: VelnModule;
67
+ }
68
+ export declare class ResourceBuilder<TCtx extends BaseCtx, T, S extends SchemaMap> {
69
+ private readonly _table;
70
+ private readonly _options;
71
+ private readonly _builderFns;
72
+ private constructor();
73
+ static create<T, S extends SchemaMap>(table: TableDef<T, S>, options: ResourceOptions<InferRow<TableDef<T, S>>, InferInsert<TableDef<T, S>>>): ResourceBuilder<BaseCtx, T, S>;
74
+ options(opts: BaseOptions): ResourceBuilder<TCtx, T, S>;
75
+ plugin<TAdd extends object>(p: Plugin<TCtx, TAdd>): ResourceBuilder<TCtx & TAdd, T, S>;
76
+ guard(g: Guard<TCtx>): ResourceBuilder<TCtx, T, S>;
77
+ hook(table: TableDef<T, S>, handlers: ModuleHookHandlers<T, TCtx>): ResourceBuilder<TCtx, T, S>;
78
+ audit<AT extends Record<string, unknown>, AS extends SchemaMap>(auditTable: TableDef<AT, AS>, config: AuditConfig<TCtx, AT, AS>): ResourceBuilder<TCtx, T, S>;
79
+ use<TKey extends string, TDef>(service: ServiceDef<TKey, TDef>): ResourceBuilder<TCtx & Record<TKey, TDef>, T, S>;
80
+ onRequest(hook: OnRequestHook<TCtx>): ResourceBuilder<TCtx, T, S>;
81
+ onBeforeHandle(hook: OnBeforeHandleHook<TCtx>): ResourceBuilder<TCtx, T, S>;
82
+ onResponse(hook: OnResponseHook<TCtx>): ResourceBuilder<TCtx, T, S>;
83
+ onError(handler: ErrorHandler<TCtx>): ResourceBuilder<TCtx, T, S>;
84
+ events(handler: EventHandlerDef): ResourceBuilder<TCtx, T, S>;
85
+ build(): ResourceResult<T, S>;
86
+ }
87
+ /**
88
+ * defineResource — generates CRUD routes, a Model, and a Service from a table definition.
89
+ *
90
+ * @param table The table definition produced by `defineTable(...).build()`.
91
+ * @param options Route prefix string or `ResourceOptions` for customization.
92
+ *
93
+ * @example
94
+ * const { module } = defineResource(usersTable, '/users').build()
95
+ * app.register(module)
96
+ */
97
+ export declare function defineResource<T, S extends SchemaMap>(table: TableDef<T, S>, options?: ResourceOptions<InferRow<TableDef<T, S>>, InferInsert<TableDef<T, S>>> | string): ResourceBuilder<BaseCtx, T, S>;
98
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../core/src/resource/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { z } from 'zod';
2
+ import type { ZodTypeAny } from 'zod';
3
+ import type { SchemaMap, TableDef } from '../schema/table';
4
+ export declare function tableToZodInsert<T, S extends SchemaMap>(table: TableDef<T, S>): z.ZodObject<Record<string, ZodTypeAny>>;
5
+ export declare function tableToZodRow<T, S extends SchemaMap>(table: TableDef<T, S>): z.ZodObject<Record<string, ZodTypeAny>>;
6
+ //# sourceMappingURL=zod-table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod-table.d.ts","sourceRoot":"","sources":["../../../../../core/src/resource/zod-table.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAErC,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAkC1D,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,EACrD,KAAK,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GACpB,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAoBzC;AAID,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,EAClD,KAAK,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GACpB,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAQzC"}
@@ -0,0 +1,25 @@
1
+ import type { SchemaMap, TableDef, InferRow, TableBuilder } from './table';
2
+ declare const _baseAuditFields: {
3
+ readonly id: import("oakbun").Column<number>;
4
+ readonly tableName: import("oakbun").Column<string>;
5
+ readonly operation: import("oakbun").Column<string>;
6
+ readonly actor: import("oakbun").Column<string>;
7
+ readonly before: import("oakbun").Column<string>;
8
+ readonly after: import("oakbun").Column<string>;
9
+ readonly changedAt: import("oakbun").Column<Date>;
10
+ };
11
+ type BaseAuditSchema = typeof _baseAuditFields;
12
+ export declare function defineAuditTable<S extends SchemaMap = Record<never, never>>(name: string, extraSchema?: S): TableBuilder<InferRow<BaseAuditSchema & S>, BaseAuditSchema & S>;
13
+ export type AuditTableDef<S extends SchemaMap = BaseAuditSchema> = TableDef<InferRow<BaseAuditSchema & S>, BaseAuditSchema & S>;
14
+ export type AuditLog = InferRow<BaseAuditSchema>;
15
+ export interface AuditConfig<TCtx, TRow, S extends SchemaMap = BaseAuditSchema> {
16
+ /** The audit table to write into. */
17
+ storeIn: AuditTableDef<S>;
18
+ /** Extract actor identifier from request context. Return null for anonymous. */
19
+ actor: (ctx: TCtx) => string | null | undefined;
20
+ /** Field names to replace with '[REDACTED]' in before/after snapshots. */
21
+ redact?: (keyof TRow & string)[];
22
+ }
23
+ export declare function applyRedact<T extends Record<string, unknown>>(row: T, fields: string[]): T;
24
+ export {};
25
+ //# sourceMappingURL=audit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../../../../core/src/schema/audit.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAK1E,QAAA,MAAM,gBAAgB;;;;;;;;CAQZ,CAAA;AAEV,KAAK,eAAe,GAAG,OAAO,gBAAgB,CAAA;AAS9C,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EACzE,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,CAAC,GACd,YAAY,CAAC,QAAQ,CAAC,eAAe,GAAG,CAAC,CAAC,EAAE,eAAe,GAAG,CAAC,CAAC,CAGlE;AAID,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,SAAS,GAAG,eAAe,IAC7D,QAAQ,CAAC,QAAQ,CAAC,eAAe,GAAG,CAAC,CAAC,EAAE,eAAe,GAAG,CAAC,CAAC,CAAA;AAI9D,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAA;AAIhD,MAAM,WAAW,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,SAAS,SAAS,GAAG,eAAe;IAC5E,qCAAqC;IACrC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,CAAA;IACzB,gFAAgF;IAChF,KAAK,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IAC/C,0EAA0E;IAC1E,MAAM,CAAC,EAAE,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAA;CACjC;AAMD,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,GAAG,EAAE,CAAC,EACN,MAAM,EAAE,MAAM,EAAE,GACf,CAAC,CAOH"}
@@ -0,0 +1,31 @@
1
+ export type SqlType = 'INTEGER' | 'TEXT' | 'REAL' | 'BOOLEAN' | 'TIMESTAMP' | 'JSON' | 'UUID' | 'BLOB';
2
+ export interface ColumnDef {
3
+ type: SqlType;
4
+ nullable: boolean;
5
+ primaryKey: boolean;
6
+ autoIncrement: boolean;
7
+ unique: boolean;
8
+ defaultValue?: unknown;
9
+ defaultFn?: () => unknown;
10
+ }
11
+ export declare class Column<T> {
12
+ readonly def: Readonly<ColumnDef>;
13
+ readonly _: T;
14
+ constructor(def: Readonly<ColumnDef>);
15
+ nullable(): Column<T | null>;
16
+ primaryKey(): Column<T>;
17
+ unique(): Column<T>;
18
+ default(value: NonNullable<T>): Column<T>;
19
+ defaultFn(fn: () => NonNullable<T>): Column<T>;
20
+ }
21
+ export declare const column: {
22
+ integer: () => Column<number>;
23
+ text: () => Column<string>;
24
+ real: () => Column<number>;
25
+ boolean: () => Column<boolean>;
26
+ timestamp: () => Column<Date>;
27
+ uuid: () => Column<string>;
28
+ blob: () => Column<Uint8Array>;
29
+ json: <T = unknown>() => Column<T>;
30
+ };
31
+ //# sourceMappingURL=column.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column.d.ts","sourceRoot":"","sources":["../../../../../core/src/schema/column.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GACf,SAAS,GACT,MAAM,GACN,MAAM,GACN,SAAS,GACT,WAAW,GACX,MAAM,GACN,MAAM,GACN,MAAM,CAAA;AAEV,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,CAAA;IACb,QAAQ,EAAE,OAAO,CAAA;IACjB,UAAU,EAAE,OAAO,CAAA;IACnB,aAAa,EAAE,OAAO,CAAA;IACtB,MAAM,EAAE,OAAO,CAAA;IACf,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,OAAO,CAAA;CAC1B;AAED,qBAAa,MAAM,CAAC,CAAC;IAIP,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,SAAS,CAAC;IAF7C,SAAiB,CAAC,EAAE,CAAC,CAAA;gBAEA,GAAG,EAAE,QAAQ,CAAC,SAAS,CAAC;IAE7C,QAAQ,IAAI,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;IAI5B,UAAU,IAAI,MAAM,CAAC,CAAC,CAAC;IAIvB,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC;IAInB,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;IAIzC,SAAS,CAAC,EAAE,EAAE,MAAM,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;CAG/C;AAUD,eAAO,MAAM,MAAM;mBACF,MAAM,CAAC,MAAM,CAAC;gBACd,MAAM,CAAC,MAAM,CAAC;gBACd,MAAM,CAAC,MAAM,CAAC;mBACd,MAAM,CAAC,OAAO,CAAC;qBACf,MAAM,CAAC,IAAI,CAAC;gBACZ,MAAM,CAAC,MAAM,CAAC;gBACd,MAAM,CAAC,UAAU,CAAC;WACrB,CAAC,iBAAe,MAAM,CAAC,CAAC,CAAC;CACtC,CAAA"}
@@ -0,0 +1,68 @@
1
+ import type { Column } from './column';
2
+ export type SchemaMap = Record<string, Column<any>>;
3
+ export type InferRow<T> = T extends TableDef<infer R, any, any> ? R : T extends SchemaMap ? {
4
+ [K in keyof T]: T[K] extends Column<infer C> ? C : never;
5
+ } : never;
6
+ type IsOptionalOnInsert<C extends Column<any>> = C['def']['primaryKey'] extends true ? true : C['def']['defaultValue'] extends undefined ? C['def']['defaultFn'] extends undefined ? C['def']['nullable'] extends true ? true : false : true : true;
7
+ type InferInsertFromSchema<S extends SchemaMap> = {
8
+ [K in keyof S as IsOptionalOnInsert<S[K]> extends true ? never : K]: S[K] extends Column<infer T> ? NonNullable<T> : never;
9
+ } & {
10
+ [K in keyof S as IsOptionalOnInsert<S[K]> extends true ? K : never]?: S[K] extends Column<infer T> ? T : never;
11
+ };
12
+ export type InferInsert<T> = T extends TableDef<any, infer S, any> ? InferInsertFromSchema<S> : T extends SchemaMap ? InferInsertFromSchema<T> : never;
13
+ export type InferUpdate<T> = T extends TableDef<infer R, infer S, any> ? Partial<R> & {
14
+ [K in keyof S as S[K] extends Column<any> ? S[K]['def']['primaryKey'] extends true ? K : never : never]: R[K & keyof R];
15
+ } : T extends SchemaMap ? Partial<{
16
+ [K in keyof T]: T[K] extends Column<infer C> ? C : never;
17
+ }> : never;
18
+ export type InferTable<T extends TableDef<any, any, any>> = {
19
+ row: InferRow<T>;
20
+ insert: InferInsert<T>;
21
+ update: InferUpdate<T>;
22
+ };
23
+ export interface TableHookHandlers<T> {
24
+ beforeInsert?: (data: Partial<T>) => Partial<T> | void | Promise<Partial<T> | void>;
25
+ afterInsert?: (result: T, input: Partial<T>) => void | Promise<void>;
26
+ beforeUpdate?: (current: T, patch: Partial<T>) => Partial<T> | void | Promise<Partial<T> | void>;
27
+ afterUpdate?: (result: T, before: T) => void | Promise<void>;
28
+ beforeDelete?: (current: T) => void | Promise<void>;
29
+ afterDelete?: (deleted: T) => void | Promise<void>;
30
+ }
31
+ export interface TableEventMap {
32
+ afterInsert?: string;
33
+ afterUpdate?: string;
34
+ afterDelete?: string;
35
+ }
36
+ export type InferTableEvents<T, M extends TableEventMap> = (M['afterInsert'] extends string ? {
37
+ [_ in M['afterInsert']]: T;
38
+ } : Record<never, never>) & (M['afterUpdate'] extends string ? {
39
+ [_ in M['afterUpdate']]: {
40
+ before: T;
41
+ after: T;
42
+ };
43
+ } : Record<never, never>) & (M['afterDelete'] extends string ? {
44
+ [_ in M['afterDelete']]: T;
45
+ } : Record<never, never>);
46
+ export interface TableDef<T, S extends SchemaMap = SchemaMap, TEvents extends TableEventMap = TableEventMap> {
47
+ readonly name: string;
48
+ readonly schema: S;
49
+ readonly primaryKey: keyof T & string;
50
+ readonly hooks: TableHookHandlers<T>[];
51
+ readonly events: TEvents;
52
+ readonly _eventMap: InferTableEvents<T, TEvents>;
53
+ }
54
+ export declare class TableBuilder<T, S extends SchemaMap, TEvents extends TableEventMap = Record<string, never>> {
55
+ private readonly _name;
56
+ private readonly _schema;
57
+ private readonly _hooks;
58
+ private _events;
59
+ constructor(_name: string, _schema: S);
60
+ hook(handlers: TableHookHandlers<T>): this;
61
+ emits<M extends TableEventMap>(map: M): TableBuilder<T, S, M>;
62
+ build(): TableDef<T, S, TEvents>;
63
+ private _findPrimaryKey;
64
+ }
65
+ export declare function defineTable<S extends SchemaMap>(name: string, schema: S): TableBuilder<InferRow<S>, S>;
66
+ export declare function toCreateTableSql<T>(table: TableDef<T>): string;
67
+ export {};
68
+ //# sourceMappingURL=table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../../../core/src/schema/table.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { BoundVelnDB } from '../db/index';
2
+ import type { ModelDef, ModelInstance } from '../model/index';
3
+ import type { BaseOptions } from '../app/types';
4
+ export type Dep<TKey extends string, TDef> = ModelDef<TKey, TDef> | ServiceDef<TKey, TDef>;
5
+ type DepKey<D> = D extends ModelDef<infer K, unknown> ? K : D extends ServiceDef<infer K, unknown> ? K : never;
6
+ type DepInst<D> = D extends ModelDef<string, infer T> ? ModelInstance<T> : D extends ServiceDef<string, infer T> ? T : never;
7
+ export interface ServiceDef<TKey extends string, TDef> {
8
+ readonly _serviceKey: TKey;
9
+ readonly _deps: ReadonlyArray<Dep<string, unknown>>;
10
+ readonly _options: BaseOptions;
11
+ readonly _factory: (deps: Record<string, unknown>) => TDef;
12
+ }
13
+ export declare class ServiceBuilder<TKey extends string, TDeps extends Record<string, unknown>> {
14
+ private readonly _key;
15
+ private readonly _deps;
16
+ private readonly _opts;
17
+ private constructor();
18
+ static create<TKey extends string>(key: TKey): ServiceBuilder<TKey, Record<never, never>>;
19
+ use<TDep extends Dep<string, unknown>>(dep: TDep): ServiceBuilder<TKey, TDeps & Record<DepKey<TDep>, DepInst<TDep>>>;
20
+ options(opts: BaseOptions): ServiceBuilder<TKey, TDeps>;
21
+ define<TDef>(factory: (deps: TDeps & Record<'logger', import('../app/types').Logger>) => TDef): ServiceDef<TKey, TDef>;
22
+ }
23
+ export declare function defineService<TKey extends string>(key: TKey): ServiceBuilder<TKey, Record<never, never>>;
24
+ export declare function detectCircular(services: ReadonlyArray<ServiceDef<string, unknown>>): void;
25
+ export declare function instantiateServices(services: ReadonlyArray<ServiceDef<string, unknown>>, db: BoundVelnDB): Record<string, unknown>;
26
+ export {};
27
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../core/src/service/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAM/C,MAAM,MAAM,GAAG,CAAC,IAAI,SAAS,MAAM,EAAE,IAAI,IACrC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,GACpB,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AAG1B,KAAK,MAAM,CAAC,CAAC,IAAK,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,GAAI,CAAC,GACzC,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,GAC1C,KAAK,CAAA;AAGvB,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAK,aAAa,CAAC,CAAC,CAAC,GACxD,CAAC,SAAS,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAI,CAAC,GAC1C,KAAK,CAAA;AAIvB,MAAM,WAAW,UAAU,CAAC,IAAI,SAAS,MAAM,EAAE,IAAI;IACnD,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAQ,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IACzD,QAAQ,CAAC,QAAQ,EAAK,WAAW,CAAA;IACjC,QAAQ,CAAC,QAAQ,EAAK,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;CAC9D;AAID,qBAAa,cAAc,CAAC,IAAI,SAAS,MAAM,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAElF,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAHxB,OAAO;IAMP,MAAM,CAAC,MAAM,CAAC,IAAI,SAAS,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAIzF,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,GAAG,EAAE,IAAI,GACR,cAAc,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAQpE,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC;IAQvD,MAAM,CAAC,IAAI,EACT,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,OAAO,cAAc,EAAE,MAAM,CAAC,KAAK,IAAI,GAC/E,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC;CAQ1B;AAED,wBAAgB,aAAa,CAAC,IAAI,SAAS,MAAM,EAC/C,GAAG,EAAE,IAAI,GACR,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAE5C;AAiBD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,CA4CzF;AAKD,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACpD,EAAE,EAAE,WAAW,GACd,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmCzB"}