@stratal/framework 0.0.6 → 0.0.7

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.
@@ -1,18 +1,17 @@
1
- import { type AnyPlugin } from '@zenstackhq/orm';
1
+ import { ZenStackClient } from '@zenstackhq/orm';
2
+ import type { SchemaDef } from '@zenstackhq/schema';
2
3
  import type { IEventRegistry } from 'stratal/events';
3
4
  import { z } from 'stratal/validation';
4
5
  import type { DatabaseConnectionConfig } from './database.module';
5
6
  export declare const databaseModuleConfigSchema: z.ZodObject<{
7
+ schema: z.ZodObject<{}, z.core.$loose>;
6
8
  default: z.ZodString;
7
9
  connections: z.ZodArray<z.ZodObject<{
8
10
  name: z.ZodString;
9
- schema: z.ZodObject<{}, z.core.$loose>;
10
- dialect: z.ZodObject<{}, z.core.$loose>;
11
+ dialect: z.ZodFunction<z.core.$ZodFunctionArgs, z.core.$ZodFunctionOut>;
11
12
  plugins: z.ZodOptional<z.ZodArray<z.ZodObject<{}, z.core.$loose>>>;
13
+ slicing: z.ZodOptional<z.ZodObject<{}, z.core.$loose>>;
12
14
  }, z.core.$strip>>;
13
15
  }, z.core.$strip>;
14
- export declare function createDatabaseService(conn: DatabaseConnectionConfig, eventRegistry: IEventRegistry): import("@zenstackhq/orm").ClientContract<import("@zenstackhq/schema").SchemaDef, {
15
- dialect: import("kysely").Dialect;
16
- plugins: AnyPlugin[];
17
- }, {}, {}>;
16
+ export declare function createDatabaseService(schema: SchemaDef, conn: DatabaseConnectionConfig, eventRegistry: IEventRegistry): new () => InstanceType<typeof ZenStackClient>;
18
17
  //# sourceMappingURL=database.helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"database.helpers.d.ts","sourceRoot":"","sources":["../../src/database/database.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAA;AACtC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;AAUjE,eAAO,MAAM,0BAA0B;;;;;;;;iBAYtC,CAAA;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,wBAAwB,EAC9B,aAAa,EAAE,cAAc;;;WAU9B"}
1
+ {"version":3,"file":"database.helpers.d.ts","sourceRoot":"","sources":["../../src/database/database.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAkB,MAAM,iBAAiB,CAAA;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAEnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAA;AACtC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;AAUjE,eAAO,MAAM,0BAA0B;;;;;;;;;iBAatC,CAAA;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,wBAAwB,EAC9B,aAAa,EAAE,cAAc,GAC5B,UAAU,YAAY,CAAC,OAAO,cAAc,CAAC,CAkB/C"}
@@ -1,20 +1,31 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
1
10
  import { ZenStackClient } from '@zenstackhq/orm';
11
+ import { Transient } from 'stratal/di';
2
12
  import { z } from 'stratal/validation';
3
13
  import { ErrorHandlerPlugin, EventEmitterPlugin } from './plugins';
4
14
  const databaseConnectionSchema = z.object({
5
15
  name: z.string().min(1, 'Connection name is required'),
6
- schema: z.object({}).loose(),
7
- dialect: z.object({}).loose(),
16
+ dialect: z.function(),
8
17
  plugins: z.array(z.object({}).loose()).optional(),
18
+ slicing: z.object({}).loose().optional(),
9
19
  });
10
20
  export const databaseModuleConfigSchema = z.object({
21
+ schema: z.object({}).loose(),
11
22
  default: z.string().min(1, 'Default connection name is required'),
12
23
  connections: z.array(databaseConnectionSchema).min(1, 'At least one connection is required'),
13
24
  }).refine((config) => {
14
25
  const names = config.connections.map(c => c.name);
15
26
  return new Set(names).size === names.length;
16
27
  }, { message: 'Duplicate connection names found' }).refine((config) => config.connections.some(c => c.name === config.default), { message: 'Default connection not found in connections' });
17
- export function createDatabaseService(conn, eventRegistry) {
28
+ export function createDatabaseService(schema, conn, eventRegistry) {
18
29
  const plugins = [
19
30
  new ErrorHandlerPlugin(),
20
31
  new EventEmitterPlugin({
@@ -22,6 +33,16 @@ export function createDatabaseService(conn, eventRegistry) {
22
33
  }),
23
34
  ...(conn.plugins ?? []),
24
35
  ];
25
- return new ZenStackClient(conn.schema, { dialect: conn.dialect, plugins });
36
+ let DatabaseClient = class DatabaseClient extends ZenStackClient {
37
+ constructor() {
38
+ const dialect = conn.dialect();
39
+ super(schema, { dialect, plugins, slicing: conn.slicing });
40
+ }
41
+ };
42
+ DatabaseClient = __decorate([
43
+ Transient(),
44
+ __metadata("design:paramtypes", [])
45
+ ], DatabaseClient);
46
+ return DatabaseClient;
26
47
  }
27
48
  //# sourceMappingURL=database.helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"database.helpers.js","sourceRoot":"","sources":["../../src/database/database.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAkB,MAAM,iBAAiB,CAAA;AAEhE,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAA;AAEtC,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAElE,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,6BAA6B,CAAC;IACtD,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE;IAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE;IAC7B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE;CAClD,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,qCAAqC,CAAC;IACjE,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,qCAAqC,CAAC;CAC7F,CAAC,CAAC,MAAM,CACP,CAAC,MAAM,EAAE,EAAE;IACT,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACjD,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAA;AAC7C,CAAC,EACD,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAChD,CAAC,MAAM,CACN,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,OAAO,CAAC,EACnE,EAAE,OAAO,EAAE,6CAA6C,EAAE,CAC3D,CAAA;AAED,MAAM,UAAU,qBAAqB,CACnC,IAA8B,EAC9B,aAA6B;IAE7B,MAAM,OAAO,GAAgB;QAC3B,IAAI,kBAAkB,EAAE;QACxB,IAAI,kBAAkB,CAAC;YACrB,aAAa;SACd,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;KACxB,CAAA;IACD,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA;AAC5E,CAAC"}
1
+ {"version":3,"file":"database.helpers.js","sourceRoot":"","sources":["../../src/database/database.helpers.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,cAAc,EAAkB,MAAM,iBAAiB,CAAA;AAEhE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEtC,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAA;AAEtC,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAElE,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,6BAA6B,CAAC;IACtD,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IACrB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE;IACjD,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE;IAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,qCAAqC,CAAC;IACjE,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,qCAAqC,CAAC;CAC7F,CAAC,CAAC,MAAM,CACP,CAAC,MAAM,EAAE,EAAE;IACT,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACjD,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAA;AAC7C,CAAC,EACD,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAChD,CAAC,MAAM,CACN,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,OAAO,CAAC,EACnE,EAAE,OAAO,EAAE,6CAA6C,EAAE,CAC3D,CAAA;AAED,MAAM,UAAU,qBAAqB,CACnC,MAAiB,EACjB,IAA8B,EAC9B,aAA6B;IAE7B,MAAM,OAAO,GAAgB;QAC3B,IAAI,kBAAkB,EAAE;QACxB,IAAI,kBAAkB,CAAC;YACrB,aAAa;SACd,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;KACxB,CAAA;IAED,IACM,cAAc,GADpB,MACM,cAAe,SAAQ,cAA6B;QACxD;YACE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;YAC9B,KAAK,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;QAC5D,CAAC;KACF,CAAA;IALK,cAAc;QADnB,SAAS,EAAE;;OACN,cAAc,CAKnB;IAED,OAAO,cAAc,CAAA;AACvB,CAAC"}
@@ -1,16 +1,18 @@
1
- import type { AnyPlugin } from '@zenstackhq/orm';
1
+ import type { AnyPlugin, SlicingOptions } from '@zenstackhq/orm';
2
2
  import type { SchemaDef } from '@zenstackhq/schema';
3
3
  import type { Dialect } from 'kysely';
4
4
  import { type AsyncModuleOptions, type DynamicModule, type ModuleContext, type OnInitialize, type OnShutdown } from 'stratal/module';
5
- export interface DatabaseConnectionConfig {
6
- name: string;
7
- schema: SchemaDef;
8
- dialect: Dialect;
5
+ import type { ConnectionName, DefaultConnectionName } from './types';
6
+ export interface DatabaseConnectionConfig<Schema extends SchemaDef = SchemaDef, Name extends ConnectionName = ConnectionName> {
7
+ name: Name;
8
+ dialect: () => Dialect;
9
9
  plugins?: AnyPlugin[];
10
+ slicing?: SlicingOptions<Schema>;
10
11
  }
11
- export interface DatabaseModuleConfig {
12
- default: string;
13
- connections: DatabaseConnectionConfig[];
12
+ export interface DatabaseModuleConfig<Schema extends SchemaDef = SchemaDef> {
13
+ schema: Schema;
14
+ default: DefaultConnectionName;
15
+ connections: DatabaseConnectionConfig<Schema>[];
14
16
  }
15
17
  export declare class DatabaseModule implements OnInitialize, OnShutdown {
16
18
  static forRoot(config: DatabaseModuleConfig): DynamicModule;
@@ -1 +1 @@
1
- {"version":3,"file":"database.module.d.ts","sourceRoot":"","sources":["../../src/database/database.module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAGrC,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAA;AAMvB,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,SAAS,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,CAAC,EAAE,SAAS,EAAE,CAAA;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,wBAAwB,EAAE,CAAA;CACxC;AAED,qBACa,cAAe,YAAW,YAAY,EAAE,UAAU;IAC7D,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,oBAAoB,GAAG,aAAa;IAS3D,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,kBAAkB,CAAC,oBAAoB,CAAC,GAAG,aAAa;IAarF,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IA2B1C,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;CAGzC"}
1
+ {"version":3,"file":"database.module.d.ts","sourceRoot":"","sources":["../../src/database/database.module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAGrC,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAA;AAGvB,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAEpE,MAAM,WAAW,wBAAwB,CACvC,MAAM,SAAS,SAAS,GAAG,SAAS,EACpC,IAAI,SAAS,cAAc,GAAG,cAAc;IAE5C,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE,MAAM,OAAO,CAAA;IACtB,OAAO,CAAC,EAAE,SAAS,EAAE,CAAA;IACrB,OAAO,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAA;CACjC;AAED,MAAM,WAAW,oBAAoB,CAAC,MAAM,SAAS,SAAS,GAAG,SAAS;IACxE,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,qBAAqB,CAAA;IAC9B,WAAW,EAAE,wBAAwB,CAAC,MAAM,CAAC,EAAE,CAAA;CAChD;AAED,qBACa,cAAe,YAAW,YAAY,EAAE,UAAU;IAC7D,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,oBAAoB,GAAG,aAAa;IAS3D,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,kBAAkB,CAAC,oBAAoB,CAAC,GAAG,aAAa;IAarF,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAmB1C,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;CAGzC"}
@@ -5,12 +5,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
7
  var DatabaseModule_1;
8
- import { DI_TOKENS } from 'stratal/di';
8
+ import { DI_TOKENS, Scope, delay } from 'stratal/di';
9
9
  import { Module, } from 'stratal/module';
10
- import { instancePerContainerCachingFactory } from 'tsyringe';
11
10
  import { createDatabaseService } from './database.helpers';
12
11
  import { DATABASE_TOKENS, connectionSymbol } from './database.tokens';
13
- import { DatabaseConfigError } from './errors/database-config.error';
14
12
  let DatabaseModule = DatabaseModule_1 = class DatabaseModule {
15
13
  static forRoot(config) {
16
14
  return {
@@ -34,19 +32,13 @@ let DatabaseModule = DatabaseModule_1 = class DatabaseModule {
34
32
  }
35
33
  onInitialize(context) {
36
34
  const config = context.container.resolve(DATABASE_TOKENS.Options);
35
+ const eventRegistry = context.container.resolve(DI_TOKENS.EventRegistry);
37
36
  const container = context.container.getTsyringeContainer();
38
37
  for (const conn of config.connections) {
39
- container.register(connectionSymbol(conn.name), {
40
- useFactory: instancePerContainerCachingFactory((c) => {
41
- const resolvedConfig = c.resolve(DATABASE_TOKENS.Options);
42
- const resolvedConn = resolvedConfig.connections.find(connection => connection.name === conn.name);
43
- if (!resolvedConn) {
44
- throw new DatabaseConfigError('Connection not found');
45
- }
46
- const eventRegistry = c.resolve(DI_TOKENS.EventRegistry);
47
- return createDatabaseService(resolvedConn, eventRegistry);
48
- })
49
- });
38
+ const Service = createDatabaseService(config.schema, conn, eventRegistry);
39
+ container.register(connectionSymbol(conn.name),
40
+ // @ts-expect-error Overload error
41
+ delay(() => Service), { lifecycle: Scope.Request });
50
42
  }
51
43
  context.container.registerExisting(DI_TOKENS.Database, connectionSymbol(config.default));
52
44
  context.logger.info('DatabaseModule initialized');
@@ -1 +1 @@
1
- {"version":3,"file":"database.module.js","sourceRoot":"","sources":["../../src/database/database.module.ts"],"names":[],"mappings":";;;;;;;AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEtC,OAAO,EACL,MAAM,GAMP,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,kCAAkC,EAAE,MAAM,UAAU,CAAA;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AAe7D,IAAM,cAAc,sBAApB,MAAM,cAAc;IACzB,MAAM,CAAC,OAAO,CAAC,MAA4B;QACzC,OAAO;YACL,MAAM,EAAE,gBAAc;YACtB,SAAS,EAAE;gBACT,EAAE,OAAO,EAAE,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,MAA2B,EAAE;aAC5E;SACF,CAAA;IACH,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,OAAiD;QACnE,OAAO;YACL,MAAM,EAAE,gBAAc;YACtB,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,eAAe,CAAC,OAAO;oBAChC,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;iBACvB;aACF;SACF,CAAA;IACH,CAAC;IAED,YAAY,CAAC,OAAsB;QACjC,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAuB,eAAe,CAAC,OAAO,CAAC,CAAA;QACvF,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,oBAAoB,EAAE,CAAA;QAE1D,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACtC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC9C,UAAU,EAAE,kCAAkC,CAAC,CAAC,CAAC,EAAE,EAAE;oBACnD,MAAM,cAAc,GAAG,CAAC,CAAC,OAAO,CAAuB,eAAe,CAAC,OAAO,CAAC,CAAA;oBAC/E,MAAM,YAAY,GAAG,cAAc,CAAC,WAAW,CAAC,IAAI,CAClD,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAC5C,CAAA;oBAED,IAAI,CAAC,YAAY,EAAE,CAAC;wBAClB,MAAM,IAAI,mBAAmB,CAAC,sBAAsB,CAAC,CAAC;oBACxD,CAAC;oBAED,MAAM,aAAa,GAAG,CAAC,CAAC,OAAO,CAAiB,SAAS,CAAC,aAAa,CAAC,CAAA;oBACxE,OAAO,qBAAqB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA;gBAC3D,CAAC,CAAC;aACH,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,QAAQ,EAAE,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;QAExF,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA;IACnD,CAAC;IAED,UAAU,CAAC,OAAsB;QAC/B,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;IAChD,CAAC;CACF,CAAA;AArDY,cAAc;IAD1B,MAAM,CAAC,EAAE,CAAC;GACE,cAAc,CAqD1B"}
1
+ {"version":3,"file":"database.module.js","sourceRoot":"","sources":["../../src/database/database.module.ts"],"names":[],"mappings":";;;;;;;AAGA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAEpD,OAAO,EAEL,MAAM,GAMP,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAoB9D,IAAM,cAAc,sBAApB,MAAM,cAAc;IACzB,MAAM,CAAC,OAAO,CAAC,MAA4B;QACzC,OAAO;YACL,MAAM,EAAE,gBAAc;YACtB,SAAS,EAAE;gBACT,EAAE,OAAO,EAAE,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,MAA2B,EAAE;aAC5E;SACF,CAAA;IACH,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,OAAiD;QACnE,OAAO;YACL,MAAM,EAAE,gBAAc;YACtB,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,eAAe,CAAC,OAAO;oBAChC,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;iBACvB;aACF;SACF,CAAA;IACH,CAAC;IAED,YAAY,CAAC,OAAsB;QACjC,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAuB,eAAe,CAAC,OAAO,CAAC,CAAA;QACvF,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAiB,SAAS,CAAC,aAAa,CAAC,CAAA;QACxF,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,oBAAoB,EAAE,CAAC;QAE3D,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,qBAAqB,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,CAAA;YAEzE,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAA2B;YACtE,kCAAkC;YAClC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EACpB,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QACjC,CAAC;QAED,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,QAAQ,EAAE,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;QAExF,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA;IACnD,CAAC;IAED,UAAU,CAAC,OAAsB;QAC/B,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;IAChD,CAAC;CACF,CAAA;AA7CY,cAAc;IAD1B,MAAM,CAAC,EAAE,CAAC;GACE,cAAc,CA6C1B"}
@@ -1,18 +1,20 @@
1
1
  import type { ClientContract, ClientOptions } from '@zenstackhq/orm';
2
- import type { ConnectionName, DefaultConnectionName, InferConnectionSchema } from './types';
2
+ import type { ConnectionName, DefaultConnectionName, InferConnectionSlicing, InferDatabaseSchema } from './types';
3
3
  /**
4
4
  * DatabaseService type
5
5
  *
6
- * Provides strict typing per connection name via `DatabaseSchemaRegistry` augmentation.
6
+ * All connections share a single schema. Slicing narrows the available models per connection.
7
7
  *
8
8
  * @example
9
9
  * ```typescript
10
- * // Typed to default connection schema
10
+ * // Typed to default connection
11
11
  * constructor(@inject(DI_TOKENS.Database) private db: DatabaseService) {}
12
12
  *
13
- * // Typed to a specific named connection schema
13
+ * // Typed to a specific named connection
14
14
  * constructor(@InjectDB('analytics') private analytics: DatabaseService<'analytics'>) {}
15
15
  * ```
16
16
  */
17
- export type DatabaseService<K extends ConnectionName = DefaultConnectionName, Schema extends InferConnectionSchema<K> = InferConnectionSchema<K>> = ClientContract<Schema, ClientOptions<Schema>>;
17
+ export type DatabaseService<K extends ConnectionName = DefaultConnectionName> = ClientContract<InferDatabaseSchema, ClientOptions<InferDatabaseSchema> & {
18
+ slicing: InferConnectionSlicing<K>;
19
+ }>;
18
20
  //# sourceMappingURL=database.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"database.service.d.ts","sourceRoot":"","sources":["../../src/database/database.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAE3F;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,eAAe,CACzB,CAAC,SAAS,cAAc,GAAG,qBAAqB,EAChD,MAAM,SAAS,qBAAqB,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,IAChE,cAAc,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"database.service.d.ts","sourceRoot":"","sources":["../../src/database/database.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAEjH;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,eAAe,CACzB,CAAC,SAAS,cAAc,GAAG,qBAAqB,IAC9C,cAAc,CAChB,mBAAmB,EACnB,aAAa,CAAC,mBAAmB,CAAC,GAAG;IAAE,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAA;CAAE,CAC5E,CAAA"}
@@ -2,5 +2,6 @@ export declare const DATABASE_TOKENS: {
2
2
  readonly Options: symbol;
3
3
  readonly Services: symbol;
4
4
  };
5
- export declare function connectionSymbol(name: string): symbol;
5
+ import type { ConnectionName } from './types';
6
+ export declare function connectionSymbol(name: ConnectionName): symbol;
6
7
  //# sourceMappingURL=database.tokens.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"database.tokens.d.ts","sourceRoot":"","sources":["../../src/database/database.tokens.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe;;;CAGlB,CAAA;AAEV,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAErD"}
1
+ {"version":3,"file":"database.tokens.d.ts","sourceRoot":"","sources":["../../src/database/database.tokens.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe;;;CAGlB,CAAA;AAEV,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAE7D"}
@@ -1 +1 @@
1
- {"version":3,"file":"database.tokens.js","sourceRoot":"","sources":["../../src/database/database.tokens.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC;IAC5C,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC;CAChC,CAAA;AAEV,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,MAAM,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAA;AACjD,CAAC"}
1
+ {"version":3,"file":"database.tokens.js","sourceRoot":"","sources":["../../src/database/database.tokens.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC;IAC5C,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC;CAChC,CAAA;AAIV,MAAM,UAAU,gBAAgB,CAAC,IAAoB;IACnD,OAAO,MAAM,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAA;AACjD,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Database Event Types
3
3
  *
4
- * All ZenStack-dependent event types, parameterized by connection name.
4
+ * All ZenStack-dependent event types derived from the shared database schema.
5
5
  * These types power the auto-complete and type-safe event contexts for
6
6
  * database events like `after.User.create`.
7
7
  *
@@ -11,7 +11,7 @@
11
11
  */
12
12
  import type { AggregateArgs, AllCrudOperations, CountArgs, CreateArgs, CreateManyArgs, DeleteArgs, DeleteManyArgs, FindFirstArgs, FindManyArgs, FindUniqueArgs, GroupByArgs, ModelResult, UpdateArgs, UpdateManyArgs, UpsertArgs } from '@zenstackhq/orm';
13
13
  import type { SchemaDef } from '@zenstackhq/schema';
14
- import type { ConnectionName, InferConnectionSchema } from './types';
14
+ import type { InferDatabaseSchema } from './types';
15
15
  /**
16
16
  * Event phase: before or after operation
17
17
  */
@@ -21,41 +21,41 @@ export type EventPhase = 'before' | 'after';
21
21
  */
22
22
  export type DatabaseOperation = AllCrudOperations;
23
23
  /**
24
- * Model names derived from a connection's schema.
25
- * Falls back to `never` if no schemas are registered.
24
+ * Model names derived from the shared database schema.
25
+ * Falls back to `never` if no schema is registered.
26
26
  */
27
- export type ModelName<K extends ConnectionName = ConnectionName> = InferConnectionSchema<K> extends {
27
+ export type ModelName = InferDatabaseSchema extends {
28
28
  models: infer M;
29
29
  } ? Extract<keyof M, string> : never;
30
30
  /**
31
- * Database event names with all supported patterns, parameterized by connection.
31
+ * Database event names with all supported patterns.
32
32
  */
33
- export type DatabaseEventName<K extends ConnectionName = ConnectionName> = `${EventPhase}.${ModelName<K>}.${DatabaseOperation}` | `${EventPhase}.${ModelName<K>}` | `${EventPhase}.${DatabaseOperation}` | EventPhase;
33
+ export type DatabaseEventName = `${EventPhase}.${ModelName}.${DatabaseOperation}` | `${EventPhase}.${ModelName}` | `${EventPhase}.${DatabaseOperation}` | EventPhase;
34
34
  /**
35
35
  * Map operation name to ZenStack Args type for a given schema and model
36
36
  */
37
37
  type OperationArgsMap<S extends SchemaDef, M extends Extract<keyof S['models'], string>, O extends DatabaseOperation> = O extends 'create' ? CreateArgs<S, M> : O extends 'createMany' ? CreateManyArgs<S, M> : O extends 'update' ? UpdateArgs<S, M> : O extends 'updateMany' ? UpdateManyArgs<S, M> : O extends 'delete' ? DeleteArgs<S, M> : O extends 'deleteMany' ? DeleteManyArgs<S, M> : O extends 'findUnique' ? FindUniqueArgs<S, M> : O extends 'findFirst' ? FindFirstArgs<S, M> : O extends 'findMany' ? FindManyArgs<S, M> : O extends 'upsert' ? UpsertArgs<S, M> : O extends 'count' ? CountArgs<S, M> : O extends 'aggregate' ? AggregateArgs<S, M> : O extends 'groupBy' ? GroupByArgs<S, M> : never;
38
38
  /**
39
- * Extract the data/where property from operation args for a connection.
39
+ * Extract the data/where property from operation args.
40
40
  */
41
- export type GetData<K extends ConnectionName, M extends ModelName<K>, O extends DatabaseOperation> = M extends Extract<keyof InferConnectionSchema<K>['models'], string> ? OperationArgsMap<InferConnectionSchema<K>, M, O> extends {
41
+ export type GetData<M extends ModelName, O extends DatabaseOperation> = M extends Extract<keyof InferDatabaseSchema['models'], string> ? OperationArgsMap<InferDatabaseSchema, M, O> extends {
42
42
  data: infer D;
43
- } ? D : OperationArgsMap<InferConnectionSchema<K>, M, O> extends {
43
+ } ? D : OperationArgsMap<InferDatabaseSchema, M, O> extends {
44
44
  where: infer W;
45
- } ? W : OperationArgsMap<InferConnectionSchema<K>, M, O> : unknown;
45
+ } ? W : OperationArgsMap<InferDatabaseSchema, M, O> : unknown;
46
46
  /**
47
- * Extract result type for a model operation on a connection.
47
+ * Extract result type for a model operation.
48
48
  */
49
- export type GetResult<K extends ConnectionName, M extends ModelName<K>, O extends DatabaseOperation> = M extends Extract<keyof InferConnectionSchema<K>['models'], string> ? O extends 'findMany' | 'createMany' | 'updateMany' | 'deleteMany' ? ModelResult<InferConnectionSchema<K>, M>[] : O extends 'count' ? number : ModelResult<InferConnectionSchema<K>, M> : unknown;
49
+ export type GetResult<M extends ModelName, O extends DatabaseOperation> = M extends Extract<keyof InferDatabaseSchema['models'], string> ? O extends 'findMany' | 'createMany' | 'updateMany' | 'deleteMany' ? ModelResult<InferDatabaseSchema, M>[] : O extends 'count' ? number : ModelResult<InferDatabaseSchema, M> : unknown;
50
50
  /**
51
51
  * Parse event string into structured type for discriminated unions
52
52
  */
53
- export type ParseEvent<K extends ConnectionName, E extends string> = E extends `${infer Phase extends EventPhase}.${infer Model extends ModelName<K>}.${infer Op extends DatabaseOperation}` ? {
53
+ export type ParseEvent<E extends string> = E extends `${infer Phase extends EventPhase}.${infer Model extends ModelName}.${infer Op extends DatabaseOperation}` ? {
54
54
  phase: Phase;
55
55
  model: Model;
56
56
  operation: Op;
57
57
  type: 'exact';
58
- } : E extends `${infer Phase extends EventPhase}.${infer Second}` ? Second extends ModelName<K> ? {
58
+ } : E extends `${infer Phase extends EventPhase}.${infer Second}` ? Second extends ModelName ? {
59
59
  phase: Phase;
60
60
  model: Second;
61
61
  type: 'model-wildcard';
@@ -71,9 +71,9 @@ export type ParseEvent<K extends ConnectionName, E extends string> = E extends `
71
71
  interface BaseEventContext {
72
72
  }
73
73
  /** Context for exact database events (e.g., "after.User.create") */
74
- interface ExactDatabaseEventContext<K extends ConnectionName, M extends ModelName<K>, O extends DatabaseOperation, Phase extends EventPhase> extends BaseEventContext {
75
- data: Phase extends 'before' ? GetData<K, M, O> : Readonly<GetData<K, M, O>>;
76
- result: Phase extends 'after' ? GetResult<K, M, O> : undefined;
74
+ interface ExactDatabaseEventContext<M extends ModelName, O extends DatabaseOperation, Phase extends EventPhase> extends BaseEventContext {
75
+ data: Phase extends 'before' ? GetData<M, O> : Readonly<GetData<M, O>>;
76
+ result: Phase extends 'after' ? GetResult<M, O> : undefined;
77
77
  }
78
78
  /** Context for model wildcard events (e.g., "after.User") */
79
79
  interface ModelWildcardEventContext<Phase extends EventPhase> extends BaseEventContext {
@@ -82,59 +82,52 @@ interface ModelWildcardEventContext<Phase extends EventPhase> extends BaseEventC
82
82
  result: Phase extends 'after' ? unknown : undefined;
83
83
  }
84
84
  /** Context for operation wildcard events (e.g., "after.create") */
85
- interface OperationWildcardEventContext<K extends ConnectionName, Phase extends EventPhase> extends BaseEventContext {
86
- model: ModelName<K>;
85
+ interface OperationWildcardEventContext<Phase extends EventPhase> extends BaseEventContext {
86
+ model: ModelName;
87
87
  data: Phase extends 'before' ? unknown : Readonly<unknown>;
88
88
  result: Phase extends 'after' ? unknown : undefined;
89
89
  }
90
90
  /** Context for phase wildcard events (e.g., "after" or "before") */
91
- interface PhaseWildcardEventContext<K extends ConnectionName, Phase extends EventPhase> extends BaseEventContext {
92
- model: ModelName<K>;
91
+ interface PhaseWildcardEventContext<Phase extends EventPhase> extends BaseEventContext {
92
+ model: ModelName;
93
93
  operation: DatabaseOperation;
94
94
  data: Phase extends 'before' ? unknown : Readonly<unknown>;
95
95
  result: Phase extends 'after' ? unknown : undefined;
96
96
  }
97
97
  /**
98
- * Type-safe event context with discriminated unions, parameterized by connection.
98
+ * Type-safe event context with discriminated unions.
99
99
  */
100
- type DatabaseEventContext<K extends ConnectionName, E extends string> = ParseEvent<K, E> extends {
100
+ type DatabaseEventContext<E extends string> = ParseEvent<E> extends {
101
101
  phase: infer P extends EventPhase;
102
- model: infer M extends ModelName<K>;
102
+ model: infer M extends ModelName;
103
103
  operation: infer O extends DatabaseOperation;
104
104
  type: 'exact';
105
- } ? ExactDatabaseEventContext<K, M, O, P> : ParseEvent<K, E> extends {
105
+ } ? ExactDatabaseEventContext<M, O, P> : ParseEvent<E> extends {
106
106
  phase: infer P extends EventPhase;
107
- model: infer _M extends ModelName<K>;
107
+ model: infer _M extends ModelName;
108
108
  type: 'model-wildcard';
109
- } ? ModelWildcardEventContext<P> : ParseEvent<K, E> extends {
109
+ } ? ModelWildcardEventContext<P> : ParseEvent<E> extends {
110
110
  phase: infer P extends EventPhase;
111
111
  operation: infer _O extends DatabaseOperation;
112
112
  type: 'operation-wildcard';
113
- } ? OperationWildcardEventContext<K, P> : ParseEvent<K, E> extends {
113
+ } ? OperationWildcardEventContext<P> : ParseEvent<E> extends {
114
114
  phase: infer P extends EventPhase;
115
115
  type: 'phase-wildcard';
116
- } ? PhaseWildcardEventContext<K, P> : BaseEventContext;
116
+ } ? PhaseWildcardEventContext<P> : BaseEventContext;
117
117
  /**
118
- * Mapped type that produces all database event name context pairs for a connection.
118
+ * Mapped type that produces all database event name to context pairs.
119
119
  *
120
120
  * Used to augment core's `CustomEventRegistry`:
121
121
  *
122
- * @example Augment with all connections (default)
122
+ * @example
123
123
  * ```typescript
124
124
  * declare module 'stratal/events' {
125
125
  * interface CustomEventRegistry extends DatabaseEvents {}
126
126
  * }
127
127
  * ```
128
- *
129
- * @example Narrow to a specific connection
130
- * ```typescript
131
- * declare module 'stratal/events' {
132
- * interface CustomEventRegistry extends DatabaseEvents<'main'> {}
133
- * }
134
- * ```
135
128
  */
136
- export type DatabaseEvents<K extends ConnectionName = ConnectionName> = {
137
- [E in DatabaseEventName<K>]: DatabaseEventContext<K, E>;
129
+ export type DatabaseEvents = {
130
+ [E in DatabaseEventName]: DatabaseEventContext<E>;
138
131
  };
139
132
  declare module 'stratal/events' {
140
133
  interface CustomEventRegistry extends DatabaseEvents {
@@ -1 +1 @@
1
- {"version":3,"file":"event-types.d.ts","sourceRoot":"","sources":["../../src/database/event-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event-types.d.ts","sourceRoot":"","sources":["../../src/database/event-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,UAAU,EACV,cAAc,EACd,UAAU,EACV,cAAc,EACd,aAAa,EACb,YAAY,EACZ,cAAc,EACd,WAAW,EACX,WAAW,EACX,UAAU,EACV,cAAc,EACd,UAAU,EACX,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAMlD;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAA;AAE3C;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,CAAA;AAEjD;;;GAGG;AACH,MAAM,MAAM,SAAS,GACnB,mBAAmB,SAAS;IAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAC7C,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GACxB,KAAK,CAAA;AAMT;;GAEG;AACH,MAAM,MAAM,iBAAiB,GACzB,GAAG,UAAU,IAAI,SAAS,IAAI,iBAAiB,EAAE,GACjD,GAAG,UAAU,IAAI,SAAS,EAAE,GAC5B,GAAG,UAAU,IAAI,iBAAiB,EAAE,GACpC,UAAU,CAAA;AAMd;;GAEG;AACH,KAAK,gBAAgB,CACnB,CAAC,SAAS,SAAS,EACnB,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,EAC5C,CAAC,SAAS,iBAAiB,IAE3B,CAAC,SAAS,QAAQ,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,GACrC,CAAC,SAAS,YAAY,GAAG,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,GAC7C,CAAC,SAAS,QAAQ,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,GACrC,CAAC,SAAS,YAAY,GAAG,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,GAC7C,CAAC,SAAS,QAAQ,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,GACrC,CAAC,SAAS,YAAY,GAAG,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,GAC7C,CAAC,SAAS,YAAY,GAAG,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,GAC7C,CAAC,SAAS,WAAW,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GAC3C,CAAC,SAAS,UAAU,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,GACzC,CAAC,SAAS,QAAQ,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,GACrC,CAAC,SAAS,OAAO,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GACnC,CAAC,SAAS,WAAW,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GAC3C,CAAC,SAAS,SAAS,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,GACvC,KAAK,CAAA;AAEP;;GAEG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,SAAS,iBAAiB,IAClE,CAAC,SAAS,OAAO,CAAC,MAAM,mBAAmB,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,GAC5D,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC,CAAA;CAAE,GACrE,CAAC,GACD,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC,CAAA;CAAE,GACtE,CAAC,GACD,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,EAAE,CAAC,CAAC,GAC3C,OAAO,CAAA;AAEX;;GAEG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,SAAS,iBAAiB,IACpE,CAAC,SAAS,OAAO,CAAC,MAAM,mBAAmB,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,GAC5D,CAAC,SAAS,UAAU,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,GACjE,WAAW,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,GACrC,CAAC,SAAS,OAAO,GACjB,MAAM,GACN,WAAW,CAAC,mBAAmB,EAAE,CAAC,CAAC,GACnC,OAAO,CAAA;AAMX;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,IACrC,CAAC,SAAS,GAAG,MAAM,KAAK,SAAS,UAAU,IAAI,MAAM,KAAK,SAAS,SAAS,IAAI,MAAM,EAAE,SAAS,iBAAiB,EAAE,GAClH;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,SAAS,EAAE,EAAE,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC5D,CAAC,SAAS,GAAG,MAAM,KAAK,SAAS,UAAU,IAAI,MAAM,MAAM,EAAE,GAC7D,MAAM,SAAS,SAAS,GACxB;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,gBAAgB,CAAA;CAAE,GACvD,MAAM,SAAS,iBAAiB,GAChC;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,oBAAoB,CAAA;CAAE,GAC/D,KAAK,GACL,CAAC,SAAS,UAAU,GACpB;IAAE,KAAK,EAAE,CAAC,CAAC;IAAC,IAAI,EAAE,gBAAgB,CAAA;CAAE,GACpC,KAAK,CAAA;AAMT,gDAAgD;AAChD,UAAU,gBAAgB;CACzB;AAED,oEAAoE;AACpE,UAAU,yBAAyB,CACjC,CAAC,SAAS,SAAS,EACnB,CAAC,SAAS,iBAAiB,EAC3B,KAAK,SAAS,UAAU,CACxB,SAAQ,gBAAgB;IACxB,IAAI,EAAE,KAAK,SAAS,QAAQ,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACtE,MAAM,EAAE,KAAK,SAAS,OAAO,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAA;CAC5D;AAED,6DAA6D;AAC7D,UAAU,yBAAyB,CACjC,KAAK,SAAS,UAAU,CACxB,SAAQ,gBAAgB;IACxB,SAAS,EAAE,iBAAiB,CAAA;IAC5B,IAAI,EAAE,KAAK,SAAS,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC1D,MAAM,EAAE,KAAK,SAAS,OAAO,GAAG,OAAO,GAAG,SAAS,CAAA;CACpD;AAED,mEAAmE;AACnE,UAAU,6BAA6B,CACrC,KAAK,SAAS,UAAU,CACxB,SAAQ,gBAAgB;IACxB,KAAK,EAAE,SAAS,CAAA;IAChB,IAAI,EAAE,KAAK,SAAS,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC1D,MAAM,EAAE,KAAK,SAAS,OAAO,GAAG,OAAO,GAAG,SAAS,CAAA;CACpD;AAED,oEAAoE;AACpE,UAAU,yBAAyB,CACjC,KAAK,SAAS,UAAU,CACxB,SAAQ,gBAAgB;IACxB,KAAK,EAAE,SAAS,CAAA;IAChB,SAAS,EAAE,iBAAiB,CAAA;IAC5B,IAAI,EAAE,KAAK,SAAS,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC1D,MAAM,EAAE,KAAK,SAAS,OAAO,GAAG,OAAO,GAAG,SAAS,CAAA;CACpD;AAMD;;GAEG;AACH,KAAK,oBAAoB,CAAC,CAAC,SAAS,MAAM,IACxC,UAAU,CAAC,CAAC,CAAC,SAAS;IACpB,KAAK,EAAE,MAAM,CAAC,SAAS,UAAU,CAAA;IACjC,KAAK,EAAE,MAAM,CAAC,SAAS,SAAS,CAAA;IAChC,SAAS,EAAE,MAAM,CAAC,SAAS,iBAAiB,CAAA;IAC5C,IAAI,EAAE,OAAO,CAAA;CACd,GACC,yBAAyB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAClC,UAAU,CAAC,CAAC,CAAC,SAAS;IACtB,KAAK,EAAE,MAAM,CAAC,SAAS,UAAU,CAAA;IACjC,KAAK,EAAE,MAAM,EAAE,SAAS,SAAS,CAAA;IACjC,IAAI,EAAE,gBAAgB,CAAA;CACvB,GACC,yBAAyB,CAAC,CAAC,CAAC,GAC5B,UAAU,CAAC,CAAC,CAAC,SAAS;IACtB,KAAK,EAAE,MAAM,CAAC,SAAS,UAAU,CAAA;IACjC,SAAS,EAAE,MAAM,EAAE,SAAS,iBAAiB,CAAA;IAC7C,IAAI,EAAE,oBAAoB,CAAA;CAC3B,GACC,6BAA6B,CAAC,CAAC,CAAC,GAChC,UAAU,CAAC,CAAC,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC,SAAS,UAAU,CAAC;IAAC,IAAI,EAAE,gBAAgB,CAAA;CAAE,GACnF,yBAAyB,CAAC,CAAC,CAAC,GAC5B,gBAAgB,CAAA;AAMpB;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,cAAc,GAAG;KAC1B,CAAC,IAAI,iBAAiB,GAAG,oBAAoB,CAAC,CAAC,CAAC;CAClD,CAAA;AAMD,OAAO,QAAQ,gBAAgB,CAAC;IAC9B,UAAU,mBAAoB,SAAQ,cAAc;KAAI;CACzD"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Database Event Types
3
3
  *
4
- * All ZenStack-dependent event types, parameterized by connection name.
4
+ * All ZenStack-dependent event types derived from the shared database schema.
5
5
  * These types power the auto-complete and type-safe event contexts for
6
6
  * database events like `after.User.create`.
7
7
  *
@@ -1,45 +1,40 @@
1
1
  import type { SchemaDef } from '@zenstackhq/schema';
2
2
  /**
3
- * Augmentable schema registry for strict DatabaseService typing.
4
- *
5
- * Users augment this interface to register their ZenStack schemas per connection:
6
- *
7
- * @example
8
- * ```typescript
9
- * declare module '@stratal/framework/database' {
10
- * interface DatabaseSchemaRegistry {
11
- * main: typeof mainSchema
12
- * analytics: typeof analyticsSchema
13
- * }
14
- * }
15
- * ```
16
- */
17
- export interface DatabaseSchemaRegistry {
18
- }
19
- /**
20
- * Augmentable interface to declare the default database connection.
3
+ * Augment with schema, default connection, and per-connection slicing
4
+ * (auto-generated by @stratal/zenstack-plugin).
21
5
  *
22
6
  * @example
23
7
  * ```typescript
24
8
  * declare module '@stratal/framework/database' {
25
- * interface DefaultDatabaseConnection {
26
- * name: 'main'
9
+ * interface StratalDatabase {
10
+ * schema: SchemaType
11
+ * defaultConnection: 'main'
12
+ * slicing: {
13
+ * main: { includedModels: readonly ['User', 'Post'] }
14
+ * analytics: { includedModels: readonly ['AnalyticsEvent'] }
15
+ * }
27
16
  * }
28
17
  * }
29
18
  * ```
30
19
  */
31
- export interface DefaultDatabaseConnection {
20
+ export interface StratalDatabase {
32
21
  }
22
+ /** Infer the shared schema type from augmentation, falling back to SchemaDef */
23
+ export type InferDatabaseSchema = StratalDatabase extends {
24
+ schema: infer S extends SchemaDef;
25
+ } ? S : SchemaDef;
33
26
  /** Connection name with autocomplete when augmented, string fallback otherwise */
34
- export type ConnectionName = keyof DatabaseSchemaRegistry extends never ? string : Extract<keyof DatabaseSchemaRegistry, string>;
27
+ export type ConnectionName = StratalDatabase extends {
28
+ slicing: infer R;
29
+ } ? keyof R extends never ? string : Extract<keyof R, string> : string;
35
30
  /** Default connection name from augmentation */
36
- export type DefaultConnectionName = DefaultDatabaseConnection extends {
37
- name: infer N extends string;
31
+ export type DefaultConnectionName = StratalDatabase extends {
32
+ defaultConnection: infer N extends string;
38
33
  } ? N : string;
39
- /** Resolve schema type for a named connection */
40
- export type InferConnectionSchema<K extends string> = K extends keyof DatabaseSchemaRegistry ? DatabaseSchemaRegistry[K] extends SchemaDef ? DatabaseSchemaRegistry[K] : SchemaDef : SchemaDef;
41
- /** Union of all registered schemas (used by the event system for model name inference) */
42
- export type InferDatabaseSchema = InferConnectionSchema<ConnectionName>;
34
+ /** Resolve slicing options for a named connection */
35
+ export type InferConnectionSlicing<K extends string> = StratalDatabase extends {
36
+ slicing: infer R;
37
+ } ? K extends keyof R ? R[K] : never : never;
43
38
  /**
44
39
  * Internal context used by database service for dynamic event emission
45
40
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/database/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAEnD;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,sBAAsB;CAAI;AAE3C;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,yBAAyB;CAAI;AAE9C,kFAAkF;AAClF,MAAM,MAAM,cAAc,GAAG,MAAM,sBAAsB,SAAS,KAAK,GACnE,MAAM,GACN,OAAO,CAAC,MAAM,sBAAsB,EAAE,MAAM,CAAC,CAAA;AAEjD,gDAAgD;AAChD,MAAM,MAAM,qBAAqB,GAC/B,yBAAyB,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC,SAAS,MAAM,CAAA;CAAE,GAAG,CAAC,GAAG,MAAM,CAAA;AAEjF,iDAAiD;AACjD,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,MAAM,IAChD,CAAC,SAAS,MAAM,sBAAsB,GACpC,sBAAsB,CAAC,CAAC,CAAC,SAAS,SAAS,GAAG,sBAAsB,CAAC,CAAC,CAAC,GAAG,SAAS,GACnF,SAAS,CAAA;AAEb,0FAA0F;AAC1F,MAAM,MAAM,mBAAmB,GAAG,qBAAqB,CAAC,cAAc,CAAC,CAAA;AAEvE;;;GAGG;AACH,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/database/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAEnD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,eAAe;CAAG;AAEnC,gFAAgF;AAChF,MAAM,MAAM,mBAAmB,GAC7B,eAAe,SAAS;IAAE,MAAM,EAAE,MAAM,CAAC,SAAS,SAAS,CAAA;CAAE,GAAG,CAAC,GAAG,SAAS,CAAA;AAE/E,kFAAkF;AAClF,MAAM,MAAM,cAAc,GACxB,eAAe,SAAS;IAAE,OAAO,EAAE,MAAM,CAAC,CAAA;CAAE,GACxC,MAAM,CAAC,SAAS,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GACzD,MAAM,CAAA;AAEZ,gDAAgD;AAChD,MAAM,MAAM,qBAAqB,GAC/B,eAAe,SAAS;IAAE,iBAAiB,EAAE,MAAM,CAAC,SAAS,MAAM,CAAA;CAAE,GAAG,CAAC,GAAG,MAAM,CAAA;AAEpF,qDAAqD;AACrD,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,MAAM,IACjD,eAAe,SAAS;IAAE,OAAO,EAAE,MAAM,CAAC,CAAA;CAAE,GACxC,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAChC,KAAK,CAAA;AAEX;;;GAGG;AACH,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export type { DatabaseSchemaRegistry, DefaultDatabaseConnection, ConnectionName, DefaultConnectionName, InferConnectionSchema, InferDatabaseSchema } from './database/types';
1
+ export type { StratalDatabase, ConnectionName, DefaultConnectionName, InferDatabaseSchema, InferConnectionSlicing } from './database/types';
2
2
  export type { CustomEventRegistry, EventName } from 'stratal/events';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,cAAc,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAC5K,YAAY,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAC3I,YAAY,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stratal/framework",
3
- "version": "0.0.6",
3
+ "version": "0.0.7",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "author": "Temitayo Fadojutimi",
@@ -78,7 +78,7 @@
78
78
  "better-auth": "^1.4.9",
79
79
  "casbin": "^5.41.0",
80
80
  "pg": "^8.0.0",
81
- "stratal": "0.0.6"
81
+ "stratal": "0.0.7"
82
82
  },
83
83
  "peerDependenciesMeta": {
84
84
  "@better-auth/core": {
@@ -98,24 +98,24 @@
98
98
  }
99
99
  },
100
100
  "devDependencies": {
101
- "@better-auth/core": "^1.5.0",
102
- "@cloudflare/vitest-pool-workers": "^0.12.18",
103
- "@cloudflare/workers-types": "4.20260306.1",
101
+ "@better-auth/core": "^1.5.4",
102
+ "@cloudflare/vitest-pool-workers": "^0.12.20",
103
+ "@cloudflare/workers-types": "4.20260307.1",
104
104
  "@faker-js/faker": "^10.3.0",
105
105
  "@stratal/testing": "workspace:^",
106
- "@types/node": "^22.19.13",
106
+ "@types/node": "^25.3.5",
107
107
  "@types/pg": "^8.18.0",
108
108
  "@vitest/coverage-istanbul": "3.2.4",
109
- "@zenstackhq/better-auth": "^3.4.1",
110
- "@zenstackhq/cli": "^3.4.1",
111
- "@zenstackhq/orm": "^3.4.1",
112
- "better-auth": "^1.5.0",
109
+ "@zenstackhq/better-auth": "^3.4.4",
110
+ "@zenstackhq/cli": "^3.4.4",
111
+ "@zenstackhq/orm": "^3.4.4",
112
+ "better-auth": "^1.5.4",
113
113
  "casbin": "^5.49.0",
114
- "pg": "^8.19.0",
114
+ "pg": "^8.20.0",
115
115
  "reflect-metadata": "^0.2.2",
116
116
  "stratal": "workspace:*",
117
117
  "typescript": "^5.9.3",
118
118
  "vitest": "~3.2.0",
119
- "wrangler": "^4.69.0"
119
+ "wrangler": "^4.71.0"
120
120
  }
121
121
  }