@stratal/framework 0.0.26 → 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.
- package/CHANGELOG.md +596 -0
- package/README.md +166 -24
- package/dist/access-control/index.d.mts +43 -16
- package/dist/access-control/index.d.mts.map +1 -1
- package/dist/access-control/index.mjs +5 -5
- package/dist/access-control/index.mjs.map +1 -1
- package/dist/{access.service-BmDhE-re.mjs → access.service-BjmnWBEo.mjs} +35 -17
- package/dist/access.service-BjmnWBEo.mjs.map +1 -0
- package/dist/auth/index.d.mts +105 -103
- package/dist/auth/index.d.mts.map +1 -1
- package/dist/auth/index.mjs +123 -24
- package/dist/auth/index.mjs.map +1 -1
- package/dist/{auth-context-CGVbiSX3.d.mts → auth-context-C1om3Zsr.d.mts} +1 -2
- package/dist/auth-context-C1om3Zsr.d.mts.map +1 -0
- package/dist/{auth-context-C8NBfiMa.mjs → auth-context-cNSS1rmh.mjs} +2 -2
- package/dist/{auth-context-C8NBfiMa.mjs.map → auth-context-cNSS1rmh.mjs.map} +1 -1
- package/dist/auth.service-Onf3JkyL.d.mts +44 -0
- package/dist/auth.service-Onf3JkyL.d.mts.map +1 -0
- package/dist/context/index.d.mts +4 -5
- package/dist/context/index.d.mts.map +1 -1
- package/dist/context/index.mjs +1 -1
- package/dist/database/index.d.mts +3 -3
- package/dist/database/index.mjs +413 -34
- package/dist/database/index.mjs.map +1 -1
- package/dist/{decorate-B7nr7eBl.mjs → decorate-RQD1h28J.mjs} +1 -1
- package/dist/{decorateParam-DwV9LSPl.mjs → decorateParam-xwTkq9gO.mjs} +2 -2
- package/dist/{decorateParam-DwV9LSPl.mjs.map → decorateParam-xwTkq9gO.mjs.map} +1 -1
- package/dist/factory/index.d.mts +3 -5
- package/dist/factory/index.d.mts.map +1 -1
- package/dist/factory/index.mjs.map +1 -1
- package/dist/guards/index.d.mts +3 -4
- package/dist/guards/index.d.mts.map +1 -1
- package/dist/guards/index.mjs +4 -4
- package/dist/guards/index.mjs.map +1 -1
- package/dist/index-e_u1SRyd.d.mts +921 -0
- package/dist/index-e_u1SRyd.d.mts.map +1 -0
- package/dist/index.d.mts +1 -1
- package/dist/{types-CWZ9q74G.d.mts → types-B35g-lXi.d.mts} +18 -4
- package/dist/types-B35g-lXi.d.mts.map +1 -0
- package/package.json +31 -27
- package/dist/access.service-BmDhE-re.mjs.map +0 -1
- package/dist/auth-context-CGVbiSX3.d.mts.map +0 -1
- package/dist/index-Dt0YUA7r.d.mts +0 -446
- package/dist/index-Dt0YUA7r.d.mts.map +0 -1
- package/dist/types-CWZ9q74G.d.mts.map +0 -1
- package/dist/types-DabF8LGz.d.mts +0 -11
- package/dist/types-DabF8LGz.d.mts.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-e_u1SRyd.d.mts","names":[],"sources":["../src/database/database.module.ts","../src/database/pagination/cursor.ts","../src/database/pagination/cursor-reader.ts","../src/database/database.service.ts","../src/database/database.tokens.ts","../src/database/pool.ts","../src/database/decorators/inject-db.decorator.ts","../src/database/errors/cursor-model-unavailable.error.ts","../src/database/errors/cursor-ordering.error.ts","../src/database/errors/malformed-cursor.error.ts","../src/database/errors/record-not-found.error.ts","../src/database/errors/unique-constraint.error.ts","../src/database/errors/from-zenstack-error.ts","../src/database/event-types.ts","../src/database/i18n/en.ts","../src/database/plugins/error-handler.plugin.ts","../src/database/plugins/event-emitter.plugin.ts","../src/database/plugins/schema-switcher.ts","../src/database/commands/zenstack.command.ts","../src/database/commands/db-generate.command.ts","../src/database/commands/db-pull.command.ts","../src/database/commands/db-push.command.ts","../src/database/commands/migrate-deploy.command.ts","../src/database/commands/migrate-dev.command.ts","../src/database/commands/migrate-reset.command.ts","../src/database/commands/migrate-status.command.ts"],"mappings":"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"}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as
|
|
1
|
+
import { a as InferAnySchema, l as StratalDatabase, o as InferConnectionExtensions, r as DefaultConnectionName, s as InferConnectionSchema, t as ConnectionName } from "./types-B35g-lXi.mjs";
|
|
2
2
|
import { CustomEventRegistry, EventName } from "stratal/events";
|
|
3
3
|
export type { ConnectionName, CustomEventRegistry, DefaultConnectionName, EventName, InferAnySchema, InferConnectionExtensions, InferConnectionSchema, StratalDatabase };
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { RuntimePlugin } from "@zenstackhq/orm";
|
|
2
2
|
import { SchemaDef } from "@zenstackhq/schema";
|
|
3
|
-
|
|
4
3
|
//#region src/database/types.d.ts
|
|
5
4
|
/**
|
|
6
5
|
* Augment with per-connection schemas, default connection, and plugin types.
|
|
@@ -33,7 +32,22 @@ import { SchemaDef } from "@zenstackhq/schema";
|
|
|
33
32
|
interface StratalDatabase {}
|
|
34
33
|
/** Extract `ExtQueryArgs` from a `RuntimePlugin` */
|
|
35
34
|
type ExtractPluginQueryArgs<P> = P extends RuntimePlugin<infer _S, infer Q, infer _M, infer _R> ? Q : {};
|
|
36
|
-
/**
|
|
35
|
+
/**
|
|
36
|
+
* Drops index signatures, keeping the members a type actually declares.
|
|
37
|
+
*
|
|
38
|
+
* `ExtClientMembers` is constrained to `Record<string, unknown>`, so every
|
|
39
|
+
* plugin's member type carries an index signature. Letting one reach the client
|
|
40
|
+
* type is not cosmetic: it survives `$transaction`'s `Omit` and collapses every
|
|
41
|
+
* model delegate on a transaction client to `unknown`.
|
|
42
|
+
*/
|
|
43
|
+
type DeclaredMembers<T> = { [K in keyof T as string extends K ? never : number extends K ? never : K]: T[K]; };
|
|
44
|
+
/**
|
|
45
|
+
* Extract `ExtClientMembers` from a `RuntimePlugin`.
|
|
46
|
+
*
|
|
47
|
+
* Exported because the built-in plugins `createDatabaseService` always registers
|
|
48
|
+
* go through this same extraction, so their members reach the client type by the
|
|
49
|
+
* path an app's own plugins take rather than by a second hand-written copy.
|
|
50
|
+
*/
|
|
37
51
|
type ExtractPluginClientMembers<P> = P extends RuntimePlugin<infer _S, infer _Q, infer M, infer _R> ? M : {};
|
|
38
52
|
/** Extract `ExtResult` from a `RuntimePlugin` */
|
|
39
53
|
type ExtractPluginResult<P> = P extends RuntimePlugin<infer _S, infer _Q, infer _M, infer R> ? R : {};
|
|
@@ -88,5 +102,5 @@ interface InternalDatabaseEventContext {
|
|
|
88
102
|
result?: unknown;
|
|
89
103
|
}
|
|
90
104
|
//#endregion
|
|
91
|
-
export {
|
|
92
|
-
//# sourceMappingURL=types-
|
|
105
|
+
export { InferAnySchema as a, InternalDatabaseEventContext as c, ExtractPluginClientMembers as i, StratalDatabase as l, DeclaredMembers as n, InferConnectionExtensions as o, DefaultConnectionName as r, InferConnectionSchema as s, ConnectionName as t };
|
|
106
|
+
//# sourceMappingURL=types-B35g-lXi.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types-B35g-lXi.d.mts","names":[],"sources":["../src/database/types.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UA+BiB;;KAGZ,uBAAuB,KAC1B,UAAU,oBAAoB,UAAU,SAAS,UAAU,MAAM;;;;;;;;;KAUvD,gBAAgB,QACzB,WAAW,oBAAoB,2BAA2B,YAAY,IAAI,EAAE;;;;;;;;KAUnE,2BAA2B,KACrC,UAAU,oBAAoB,UAAU,UAAU,SAAS,MAAM;;KAG9D,oBAAoB,KACvB,UAAU,oBAAoB,UAAU,UAAU,UAAU,KAAK;;KAG9D,aAAa,6BAChB,uBAAuB,YAAY;EAE7B,cAAc,uBAAuB,KAAK,aAAa;EACvD,kBAAkB,2BAA2B,KAAK,aAAa;EAC/D,WAAW,oBAAoB,KAAK,aAAa;;EAEjD;EAAkB;EAAsB;;;KAGpC,0BAA0B,oBACpC;EAA0B,eAAe;IACrC,gBAAgB,IACd,EAAE,uBACA,aAAa,EAAE;EACb;EAAkB;EAAsB;;EAC1C;EAAkB;EAAsB;;EAC1C;EAAkB;EAAsB;;;KAGpC,sBAAsB,oBAChC;EAA0B,eAAe;IACrC,gBAAgB,IAAI,EAAE,WAAW,YAAY,EAAE,KAAK,YAAY,YAChE;;KAGM,iBACV;EAA0B,eAAe;IACrC,QAAQ,WAAW,YAAY,QAAQ,KAAK,YAC5C;;KAGM,iBACV;EAA0B,eAAe;UAC/B,2BAA2B,cAAc;;KAIzC,wBACV;EAA0B,yBAAyB;IAAqB;;;;;UAMzD;EACf;EACA"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stratal/framework",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.1.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
|
-
"author":
|
|
6
|
+
"author": {
|
|
7
|
+
"name": "Temitayo Fadojutimi",
|
|
8
|
+
"url": "https://x.com/adesege_"
|
|
9
|
+
},
|
|
10
|
+
"homepage": "https://stratal.dev",
|
|
7
11
|
"repository": {
|
|
8
12
|
"type": "git",
|
|
9
13
|
"url": "git+https://github.com/strataljs/stratal.git",
|
|
@@ -55,7 +59,7 @@
|
|
|
55
59
|
"scripts": {
|
|
56
60
|
"build": "tsdown",
|
|
57
61
|
"generate": "zenstack generate --schema=test/schema.zmodel -o test/zenstack",
|
|
58
|
-
"generate:types": "wrangler types -c test/wrangler.jsonc",
|
|
62
|
+
"generate:types": "wrangler types -c test/wrangler.jsonc --strict-vars=false",
|
|
59
63
|
"pretest": "npx dotenv -- yarn generate && yarn generate:types",
|
|
60
64
|
"test": "npx dotenv -- vitest run",
|
|
61
65
|
"test:watch": "npx dotenv -- vitest",
|
|
@@ -67,8 +71,7 @@
|
|
|
67
71
|
"lint:fix": "npx oxlint --fix ."
|
|
68
72
|
},
|
|
69
73
|
"dependencies": {
|
|
70
|
-
"@faker-js/faker": "^10.
|
|
71
|
-
"better-call": "1.3.5",
|
|
74
|
+
"@faker-js/faker": "^10.6.0",
|
|
72
75
|
"postgres-array": "^3.0.4"
|
|
73
76
|
},
|
|
74
77
|
"peerDependencies": {
|
|
@@ -77,29 +80,30 @@
|
|
|
77
80
|
"@zenstackhq/schema": ">=3.6",
|
|
78
81
|
"better-auth": ">=1.6",
|
|
79
82
|
"pg": "^8.0.0",
|
|
80
|
-
"stratal": "
|
|
83
|
+
"stratal": ">=0.1.0"
|
|
81
84
|
},
|
|
82
85
|
"devDependencies": {
|
|
83
|
-
"@better-auth/core": "^1.
|
|
84
|
-
"@cloudflare/vitest-
|
|
85
|
-
"@cloudflare/workers-types": "
|
|
86
|
-
"@stratal/testing": "
|
|
87
|
-
"@types/node": "^
|
|
88
|
-
"@types/pg": "^8.
|
|
89
|
-
"@vitest/coverage-istanbul": "~4.1.
|
|
90
|
-
"@vitest/runner": "~4.1.
|
|
91
|
-
"@vitest/snapshot": "~4.1.
|
|
92
|
-
"@zenstackhq/better-auth": "^3.
|
|
93
|
-
"@zenstackhq/cli": "^3.
|
|
94
|
-
"@zenstackhq/orm": "^3.
|
|
95
|
-
"@zenstackhq/schema": "^3.
|
|
96
|
-
"better-auth": "^1.
|
|
86
|
+
"@better-auth/core": "^1.7.5",
|
|
87
|
+
"@cloudflare/vitest-plugin": "^1.1.13",
|
|
88
|
+
"@cloudflare/workers-types": "5.20260919.1",
|
|
89
|
+
"@stratal/testing": "^0.1.0",
|
|
90
|
+
"@types/node": "^26.6.2",
|
|
91
|
+
"@types/pg": "^8.23.1",
|
|
92
|
+
"@vitest/coverage-istanbul": "~4.1.11",
|
|
93
|
+
"@vitest/runner": "~4.1.11",
|
|
94
|
+
"@vitest/snapshot": "~4.1.11",
|
|
95
|
+
"@zenstackhq/better-auth": "^3.9.4",
|
|
96
|
+
"@zenstackhq/cli": "^3.9.4",
|
|
97
|
+
"@zenstackhq/orm": "^3.9.4",
|
|
98
|
+
"@zenstackhq/schema": "^3.9.4",
|
|
99
|
+
"better-auth": "^1.7.5",
|
|
100
|
+
"better-call": "1.4.0",
|
|
97
101
|
"dotenv-cli": "^11.0.0",
|
|
98
|
-
"pg": "^8.
|
|
99
|
-
"stratal": "
|
|
100
|
-
"tsdown": "^0.
|
|
101
|
-
"typescript": "^
|
|
102
|
-
"vitest": "~4.1.
|
|
103
|
-
"wrangler": "^4.
|
|
102
|
+
"pg": "^8.23.0",
|
|
103
|
+
"stratal": "0.1.0",
|
|
104
|
+
"tsdown": "^0.23.0",
|
|
105
|
+
"typescript": "^7.0.2",
|
|
106
|
+
"vitest": "~4.1.11",
|
|
107
|
+
"wrangler": "^4.135.0"
|
|
104
108
|
}
|
|
105
|
-
}
|
|
109
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"access.service-BmDhE-re.mjs","names":[],"sources":["../src/access-control/plugin.ts","../src/access-control/services/access.service.ts"],"sourcesContent":["import type { BetterAuthPlugin } from 'better-auth'\nimport type { AccessControlOptions } from './types'\n\n/**\n * Creates the Stratal access control Better Auth plugin.\n *\n * Ensures the `user.role` schema field exists.\n * No endpoints are added — all permission logic lives in AccessService.\n *\n * Auto-added to Better Auth options when `accessControl` is provided to\n * `AuthModule.forRootAsync()`. Users never call this directly.\n */\nexport function createStratalAcPlugin(_options: AccessControlOptions): BetterAuthPlugin {\n return {\n id: 'stratal-ac',\n schema: {\n user: {\n fields: {\n role: {\n type: 'string',\n required: false,\n input: false,\n defaultValue: 'user',\n },\n },\n },\n },\n }\n}\n","import type { DatabaseService } from '@stratal/framework/database'\nimport { DI_TOKENS, inject, Request } from 'stratal/di'\nimport type { AuthContext } from '../../context/auth-context'\nimport { AC_TOKENS } from '../tokens'\nimport type { AccessControlOptions } from '../types'\n\nfunction parseRoles(role: string | null | undefined): string[] {\n if (!role) return []\n return role.split(',').map(r => r.trim()).filter(Boolean)\n}\n\n/**\n * AccessService\n *\n * Request-scoped service for role and permission management.\n *\n * Roles for the current user are read from AuthContext (populated by\n * SessionVerificationMiddleware — no DB hit). Other users are resolved\n * from the database.\n *\n * Permission checks use Better Auth's `role.authorize()` locally with\n * OR logic — access is granted if any of the user's roles allows it.\n *\n * @example\n * ```typescript\n * // Check current user\n * await accessService.currentUserHasPermission({ posts: ['update'] })\n *\n * // Check arbitrary user (e.g. from an admin action)\n * await accessService.hasPermission(userId, { admin: ['access'] })\n *\n * // Assign a role\n * await accessService.setUserRole(userId, 'admin')\n *\n * // Assign multiple roles\n * await accessService.setUserRole(userId, ['editor', 'reviewer'])\n * ```\n */\n@Request(AC_TOKENS.AccessService)\nexport class AccessService {\n constructor(\n @inject(DI_TOKENS.AuthContext)\n private readonly authContext: AuthContext,\n @inject(DI_TOKENS.Database)\n private readonly db: DatabaseService,\n @inject(AC_TOKENS.Options)\n private readonly options: AccessControlOptions\n ) { }\n\n /**\n * Get all roles for a user.\n *\n * Uses AuthContext for the current user (no DB hit).\n * Falls back to DB for other users.\n */\n async getUserRoles(userId: string): Promise<string[]> {\n if (userId === this.authContext.getUserId()) {\n const roles = this.authContext.getRoles()\n if (roles.length > 0) return roles\n }\n const user = await (this.db).user.findUnique({\n where: { id: userId },\n select: { role: true },\n })\n return parseRoles(user?.role)\n }\n\n /**\n * Assign one or more roles to a user.\n *\n * Multiple roles are stored as a comma-separated string in `user.role`.\n */\n async setUserRole(userId: string, role: string | string[]): Promise<void> {\n const roleStr = Array.isArray(role) ? role.join(',') : role\n await this.db.user.update({\n where: { id: userId },\n data: { role: roleStr },\n })\n }\n\n /**\n * Check if a user has the required permissions.\n *\n * Returns true if any of the user's roles grants all of the requested permissions.\n */\n async hasPermission(userId: string, permissions: Record<string, string[]>): Promise<boolean> {\n const roles = await this.getUserRoles(userId)\n return this.checkPermissions(roles, permissions)\n }\n\n /**\n * Get the merged permission set for a user across all their roles.\n * Useful for sending to the frontend.\n */\n async getPermissionsForUser(userId: string): Promise<Record<string, string[]>> {\n const roles = await this.getUserRoles(userId)\n return this.mergePermissions(roles)\n }\n\n /**\n * Get all roles for the currently authenticated user.\n * Reads from AuthContext — no DB hit.\n */\n getCurrentUserRoles(): string[] {\n return this.authContext.getRoles()\n }\n\n /**\n * Check if the currently authenticated user has the required permissions.\n * Reads roles from AuthContext — no DB hit.\n */\n currentUserHasPermission(permissions: Record<string, string[]>): boolean {\n const roles = this.authContext.getRoles()\n if (roles.length === 0) return false\n return this.checkPermissions(roles, permissions)\n }\n\n /**\n * Get merged permissions for the currently authenticated user.\n * Reads roles from AuthContext — no DB hit.\n */\n getCurrentUserPermissions(): Record<string, string[]> {\n const roles = this.authContext.getRoles()\n return this.mergePermissions(roles)\n }\n\n private checkPermissions(roles: string[], permissions: Record<string, string[]>): boolean {\n return roles.some(roleName => {\n const roleObj = this.options.roles[roleName]\n if (!roleObj) return false\n\n const specific: Record<string, string[]> = {}\n\n for (const [resource, actions] of Object.entries(permissions)) {\n if (actions.includes('*')) {\n // Wildcard: role must have at least one action defined for this resource\n const roleActions = (roleObj.statements as Record<string, readonly string[]>)[resource]\n if (!roleActions?.length) return false\n } else {\n specific[resource] = actions\n }\n }\n\n return Object.keys(specific).length === 0 || roleObj.authorize(specific).success\n })\n }\n\n private mergePermissions(roles: string[]): Record<string, string[]> {\n const result: Record<string, string[]> = {}\n for (const roleName of roles) {\n const roleObj = this.options.roles[roleName]\n if (!roleObj) continue\n for (const [resource, actions] of Object.entries(roleObj.statements)) {\n result[resource] ??= []\n for (const action of actions as string[]) {\n if (!result[resource].includes(action)) {\n result[resource].push(action)\n }\n }\n }\n }\n return result\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth-context-CGVbiSX3.d.mts","names":[],"sources":["../src/context/auth-context.ts"],"mappings":";;;;;AA8BA;;;;AAA0C;AAE1C;;;;AACgB;AAGhB;;;;;;;;;;;UANiB,QAAA,SAAiB,QAAQ;AAAA,UAEzB,QAAA;EACf,IAAA,EAAM,QAAQ;AAAA;AAAA,cAIH,WAAA;EAAA,UACD,IAAA,GAAO,QAAA;EAqBF;;;;EAff,cAAA,CAAe,IAAA,EAAM,QAAA;EAsDrB;;;;EA9CA,OAAA,IAAW,QAAA;EAuEK;;;EAhEhB,WAAA,IAAe,QAAA;;;;;EAWf,SAAA;;;;;EAQA,aAAA;;;;EAOA,WAAA,IAAe,QAAA;;;;;;;EAaf,OAAA;;;;;EAQA,QAAA;;;;EASA,eAAA;;;;;EAQA,gBAAA;AAAA"}
|
|
@@ -1,446 +0,0 @@
|
|
|
1
|
-
import { a as InferConnectionSchema, i as InferConnectionExtensions, n as DefaultConnectionName, r as InferAnySchema, t as ConnectionName } from "./types-CWZ9q74G.mjs";
|
|
2
|
-
import { AsyncModuleOptions, DynamicModule, ModuleContext, OnInitialize, OnShutdown } from "stratal/module";
|
|
3
|
-
import { ApplicationError, HttpException } from "stratal/errors";
|
|
4
|
-
import { Command } from "stratal/quarry";
|
|
5
|
-
import { AggregateArgs, AllCrudOperations, AnyPlugin, ClientContract, ClientOptions, ComputedFieldsOptions, CountArgs, CreateArgs, CreateManyArgs, DeleteArgs, DeleteManyArgs, EntityMutationHooksDef, FindFirstArgs, FindManyArgs, FindUniqueArgs, GroupByArgs, ModelResult, RuntimePlugin, UpdateArgs, UpdateManyArgs, UpsertArgs } from "@zenstackhq/orm";
|
|
6
|
-
import { SchemaDef } from "@zenstackhq/schema";
|
|
7
|
-
import { SchemaDef as SchemaDef$1 } from "@zenstackhq/orm/schema";
|
|
8
|
-
import { IEventRegistry } from "stratal/events";
|
|
9
|
-
|
|
10
|
-
//#region src/database/database.module.d.ts
|
|
11
|
-
interface DatabaseConnectionConfig<Schema extends SchemaDef = SchemaDef, Name extends ConnectionName = ConnectionName> {
|
|
12
|
-
name: Name;
|
|
13
|
-
schema: Schema;
|
|
14
|
-
dialect: () => ClientOptions<SchemaDef>['dialect'];
|
|
15
|
-
plugins?: AnyPlugin[];
|
|
16
|
-
/**
|
|
17
|
-
* Schema-level @computed field implementations. Required when the schema
|
|
18
|
-
* declares any `@computed` fields. Keyed by uncapitalized model name; values
|
|
19
|
-
* map field name to a Kysely-expression compute callback.
|
|
20
|
-
*/
|
|
21
|
-
computedFields?: ComputedFieldsOptions<Schema>;
|
|
22
|
-
}
|
|
23
|
-
interface DatabaseModuleConfig {
|
|
24
|
-
default: DefaultConnectionName;
|
|
25
|
-
connections: DatabaseConnectionConfig[];
|
|
26
|
-
}
|
|
27
|
-
declare class DatabaseModule implements OnInitialize, OnShutdown {
|
|
28
|
-
private readonly services;
|
|
29
|
-
static forRoot(config: DatabaseModuleConfig): DynamicModule;
|
|
30
|
-
static forRootAsync(options: AsyncModuleOptions<DatabaseModuleConfig>): DynamicModule;
|
|
31
|
-
onInitialize(context: ModuleContext): Promise<void>;
|
|
32
|
-
onShutdown(context: ModuleContext): Promise<void>;
|
|
33
|
-
}
|
|
34
|
-
//#endregion
|
|
35
|
-
//#region src/database/database.service.d.ts
|
|
36
|
-
/**
|
|
37
|
-
* DatabaseService type
|
|
38
|
-
*
|
|
39
|
-
* Each connection has its own schema and plugin extensions.
|
|
40
|
-
* Plugin extension types are automatically inferred from `StratalDatabase.plugins`.
|
|
41
|
-
*
|
|
42
|
-
* @example
|
|
43
|
-
* ```typescript
|
|
44
|
-
* // Typed to default connection (includes plugin extensions)
|
|
45
|
-
* constructor(@inject(DI_TOKENS.Database) private db: DatabaseService) {}
|
|
46
|
-
*
|
|
47
|
-
* // Typed to a specific named connection
|
|
48
|
-
* constructor(@InjectDB('analytics') private analytics: DatabaseService<'analytics'>) {}
|
|
49
|
-
* ```
|
|
50
|
-
*/
|
|
51
|
-
type DatabaseService<K extends ConnectionName = DefaultConnectionName> = ClientContract<InferConnectionSchema<K>, ClientOptions<InferConnectionSchema<K>>, InferConnectionExtensions<K>['extQueryArgs'], InferConnectionExtensions<K>['extClientMembers'], InferConnectionExtensions<K>['extResult']>;
|
|
52
|
-
//#endregion
|
|
53
|
-
//#region src/database/database.tokens.d.ts
|
|
54
|
-
declare const DATABASE_TOKENS: {
|
|
55
|
-
readonly Options: symbol;
|
|
56
|
-
readonly Services: symbol;
|
|
57
|
-
};
|
|
58
|
-
declare function connectionSymbol(name: ConnectionName): symbol;
|
|
59
|
-
//#endregion
|
|
60
|
-
//#region src/database/decorators/inject-db.decorator.d.ts
|
|
61
|
-
declare function InjectDB(name: ConnectionName): ParameterDecorator;
|
|
62
|
-
//#endregion
|
|
63
|
-
//#region src/database/errors/record-not-found.error.d.ts
|
|
64
|
-
declare class RecordNotFoundError extends HttpException {
|
|
65
|
-
readonly details?: string | undefined;
|
|
66
|
-
constructor(details?: string | undefined, cause?: unknown);
|
|
67
|
-
}
|
|
68
|
-
//#endregion
|
|
69
|
-
//#region src/database/errors/unique-constraint.error.d.ts
|
|
70
|
-
declare class UniqueConstraintError extends HttpException {
|
|
71
|
-
readonly fields?: string[] | undefined;
|
|
72
|
-
constructor(fields?: string[] | undefined, cause?: unknown);
|
|
73
|
-
}
|
|
74
|
-
//#endregion
|
|
75
|
-
//#region src/database/errors/from-zenstack-error.d.ts
|
|
76
|
-
declare function fromZenStackError(error: unknown): ApplicationError;
|
|
77
|
-
//#endregion
|
|
78
|
-
//#region src/database/event-types.d.ts
|
|
79
|
-
/**
|
|
80
|
-
* Event phase: before or after operation
|
|
81
|
-
*/
|
|
82
|
-
type EventPhase = 'before' | 'after';
|
|
83
|
-
/**
|
|
84
|
-
* All database operations that can trigger events
|
|
85
|
-
*/
|
|
86
|
-
type DatabaseOperation = AllCrudOperations;
|
|
87
|
-
/**
|
|
88
|
-
* Distributive helper — extracts model names from each schema member individually.
|
|
89
|
-
* Using a naked type parameter ensures TypeScript distributes over unions:
|
|
90
|
-
* `_ExtractModelNames<A | B>` = `_ExtractModelNames<A> | _ExtractModelNames<B>`
|
|
91
|
-
*/
|
|
92
|
-
type _ExtractModelNames<S> = S extends {
|
|
93
|
-
models: infer M;
|
|
94
|
-
} ? Extract<keyof M, string> : never;
|
|
95
|
-
/**
|
|
96
|
-
* Model names derived from the shared database schema.
|
|
97
|
-
* Distributes over all schema types so models from every connection are included.
|
|
98
|
-
*/
|
|
99
|
-
type ModelName = _ExtractModelNames<InferAnySchema>;
|
|
100
|
-
/**
|
|
101
|
-
* Database event names with all supported patterns.
|
|
102
|
-
*/
|
|
103
|
-
type DatabaseEventName = `${EventPhase}.${ModelName}.${DatabaseOperation}` | `${EventPhase}.${ModelName}` | `${EventPhase}.${DatabaseOperation}` | EventPhase;
|
|
104
|
-
/**
|
|
105
|
-
* Map operation name to ZenStack Args type for a given schema and model
|
|
106
|
-
*/
|
|
107
|
-
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;
|
|
108
|
-
/**
|
|
109
|
-
* Distributive helper — resolves data/where args for a model against each schema individually.
|
|
110
|
-
*/
|
|
111
|
-
type _ExtractData<S, M extends string, O extends DatabaseOperation> = S extends SchemaDef ? M extends Extract<keyof S['models'], string> ? OperationArgsMap<S, M, O> extends {
|
|
112
|
-
data: infer D;
|
|
113
|
-
} ? D : OperationArgsMap<S, M, O> extends {
|
|
114
|
-
where: infer W;
|
|
115
|
-
} ? W : OperationArgsMap<S, M, O> : never : never;
|
|
116
|
-
/**
|
|
117
|
-
* Extract the data/where property from operation args.
|
|
118
|
-
* Distributes over all schemas to find the matching model.
|
|
119
|
-
*/
|
|
120
|
-
type GetData<M extends ModelName, O extends DatabaseOperation> = _ExtractData<InferAnySchema, M, O> extends never ? unknown : _ExtractData<InferAnySchema, M, O>;
|
|
121
|
-
/**
|
|
122
|
-
* Distributive helper — resolves result type for a model against each schema individually.
|
|
123
|
-
*/
|
|
124
|
-
type _ExtractResult<S, M extends string, O extends DatabaseOperation> = S extends SchemaDef ? M extends Extract<keyof S['models'], string> ? O extends 'findMany' | 'createMany' | 'updateMany' | 'deleteMany' ? ModelResult<S, M>[] : O extends 'count' ? number : ModelResult<S, M> : never : never;
|
|
125
|
-
/**
|
|
126
|
-
* Extract result type for a model operation.
|
|
127
|
-
* Distributes over all schemas to find the matching model.
|
|
128
|
-
*/
|
|
129
|
-
type GetResult<M extends ModelName, O extends DatabaseOperation> = _ExtractResult<InferAnySchema, M, O> extends never ? unknown : _ExtractResult<InferAnySchema, M, O>;
|
|
130
|
-
/**
|
|
131
|
-
* Verb suffix for entity-mutation events (`entity.{Model}.{verb}`).
|
|
132
|
-
*/
|
|
133
|
-
type EntityMutationVerb = 'created' | 'updated' | 'deleted';
|
|
134
|
-
/**
|
|
135
|
-
* Entity-mutation event names with all supported patterns.
|
|
136
|
-
*
|
|
137
|
-
* Unlike `before.*`/`after.*` (raw query args/result), entity events carry
|
|
138
|
-
* full entity snapshots: `created` has `after`, `updated` has `before` and
|
|
139
|
-
* `after`, `deleted` has `before`. The pre-mutation snapshot is loaded inside
|
|
140
|
-
* the mutation's transaction, and only when a listener matches — a wildcard
|
|
141
|
-
* subscription (`entity`) makes every model pay that pre-read, so subscribe
|
|
142
|
-
* per model when cost matters.
|
|
143
|
-
*/
|
|
144
|
-
type EntityEventName = `entity.${ModelName}.${EntityMutationVerb}` | `entity.${ModelName}` | `entity.${EntityMutationVerb}` | 'entity';
|
|
145
|
-
/**
|
|
146
|
-
* Distributive helper — resolves the full entity shape for a model.
|
|
147
|
-
*/
|
|
148
|
-
type _ExtractEntity<S, M extends string> = S extends SchemaDef ? M extends Extract<keyof S['models'], string> ? ModelResult<S, M> : never : never;
|
|
149
|
-
/**
|
|
150
|
-
* Full entity snapshot type for a model, across all connections' schemas.
|
|
151
|
-
*/
|
|
152
|
-
type GetEntity<M extends ModelName> = _ExtractEntity<InferAnySchema, M> extends never ? unknown : _ExtractEntity<InferAnySchema, M>;
|
|
153
|
-
interface EntityCreatedEventContext<M extends ModelName> {
|
|
154
|
-
model: M;
|
|
155
|
-
action: 'created';
|
|
156
|
-
before: undefined;
|
|
157
|
-
after: GetEntity<M>;
|
|
158
|
-
}
|
|
159
|
-
interface EntityUpdatedEventContext<M extends ModelName> {
|
|
160
|
-
model: M;
|
|
161
|
-
action: 'updated';
|
|
162
|
-
before: GetEntity<M>;
|
|
163
|
-
after: GetEntity<M>;
|
|
164
|
-
}
|
|
165
|
-
interface EntityDeletedEventContext<M extends ModelName> {
|
|
166
|
-
model: M;
|
|
167
|
-
action: 'deleted';
|
|
168
|
-
before: GetEntity<M>;
|
|
169
|
-
after: undefined;
|
|
170
|
-
}
|
|
171
|
-
/** Context for model wildcard subscriptions (e.g. "entity.User") */
|
|
172
|
-
interface EntityModelWildcardContext<M extends ModelName> {
|
|
173
|
-
model: M;
|
|
174
|
-
action: EntityMutationVerb;
|
|
175
|
-
before: GetEntity<M> | undefined;
|
|
176
|
-
after: GetEntity<M> | undefined;
|
|
177
|
-
}
|
|
178
|
-
/** Context for verb wildcard subscriptions (e.g. "entity.updated") */
|
|
179
|
-
interface EntityVerbWildcardContext<V extends EntityMutationVerb> {
|
|
180
|
-
model: ModelName;
|
|
181
|
-
action: V;
|
|
182
|
-
before: V extends 'created' ? undefined : unknown;
|
|
183
|
-
after: V extends 'deleted' ? undefined : unknown;
|
|
184
|
-
}
|
|
185
|
-
/** Context for the global wildcard subscription ("entity") */
|
|
186
|
-
interface EntityWildcardContext {
|
|
187
|
-
model: ModelName;
|
|
188
|
-
action: EntityMutationVerb;
|
|
189
|
-
before: unknown;
|
|
190
|
-
after: unknown;
|
|
191
|
-
}
|
|
192
|
-
type EntityEventContext<E extends string> = E extends `entity.${infer M extends ModelName}.created` ? EntityCreatedEventContext<M> : E extends `entity.${infer M extends ModelName}.updated` ? EntityUpdatedEventContext<M> : E extends `entity.${infer M extends ModelName}.deleted` ? EntityDeletedEventContext<M> : E extends `entity.${infer M extends ModelName}` ? EntityModelWildcardContext<M> : E extends `entity.${infer V extends EntityMutationVerb}` ? EntityVerbWildcardContext<V> : EntityWildcardContext;
|
|
193
|
-
/**
|
|
194
|
-
* Mapped type producing all entity-mutation event name → context pairs.
|
|
195
|
-
*/
|
|
196
|
-
type EntityEvents = { [E in EntityEventName]: EntityEventContext<E> };
|
|
197
|
-
/**
|
|
198
|
-
* Parse event string into structured type for discriminated unions
|
|
199
|
-
*/
|
|
200
|
-
type ParseEvent<E extends string> = E extends `${infer Phase extends EventPhase}.${infer Model extends ModelName}.${infer Op extends DatabaseOperation}` ? {
|
|
201
|
-
phase: Phase;
|
|
202
|
-
model: Model;
|
|
203
|
-
operation: Op;
|
|
204
|
-
type: 'exact';
|
|
205
|
-
} : E extends `${infer Phase extends EventPhase}.${infer Second}` ? Second extends ModelName ? {
|
|
206
|
-
phase: Phase;
|
|
207
|
-
model: Second;
|
|
208
|
-
type: 'model-wildcard';
|
|
209
|
-
} : Second extends DatabaseOperation ? {
|
|
210
|
-
phase: Phase;
|
|
211
|
-
operation: Second;
|
|
212
|
-
type: 'operation-wildcard';
|
|
213
|
-
} : never : E extends EventPhase ? {
|
|
214
|
-
phase: E;
|
|
215
|
-
type: 'phase-wildcard';
|
|
216
|
-
} : never;
|
|
217
|
-
/** Base context fields present in all events */
|
|
218
|
-
interface BaseEventContext {}
|
|
219
|
-
/** Context for exact database events (e.g., "after.User.create") */
|
|
220
|
-
interface ExactDatabaseEventContext<M extends ModelName, O extends DatabaseOperation, Phase extends EventPhase> extends BaseEventContext {
|
|
221
|
-
data: Phase extends 'before' ? GetData<M, O> : Readonly<GetData<M, O>>;
|
|
222
|
-
result: Phase extends 'after' ? GetResult<M, O> : undefined;
|
|
223
|
-
}
|
|
224
|
-
/** Context for model wildcard events (e.g., "after.User") */
|
|
225
|
-
interface ModelWildcardEventContext<Phase extends EventPhase> extends BaseEventContext {
|
|
226
|
-
operation: DatabaseOperation;
|
|
227
|
-
data: Phase extends 'before' ? unknown : Readonly<unknown>;
|
|
228
|
-
result: Phase extends 'after' ? unknown : undefined;
|
|
229
|
-
}
|
|
230
|
-
/** Context for operation wildcard events (e.g., "after.create") */
|
|
231
|
-
interface OperationWildcardEventContext<Phase extends EventPhase> extends BaseEventContext {
|
|
232
|
-
model: ModelName;
|
|
233
|
-
data: Phase extends 'before' ? unknown : Readonly<unknown>;
|
|
234
|
-
result: Phase extends 'after' ? unknown : undefined;
|
|
235
|
-
}
|
|
236
|
-
/** Context for phase wildcard events (e.g., "after" or "before") */
|
|
237
|
-
interface PhaseWildcardEventContext<Phase extends EventPhase> extends BaseEventContext {
|
|
238
|
-
model: ModelName;
|
|
239
|
-
operation: DatabaseOperation;
|
|
240
|
-
data: Phase extends 'before' ? unknown : Readonly<unknown>;
|
|
241
|
-
result: Phase extends 'after' ? unknown : undefined;
|
|
242
|
-
}
|
|
243
|
-
/**
|
|
244
|
-
* Type-safe event context with discriminated unions.
|
|
245
|
-
*/
|
|
246
|
-
type DatabaseEventContext<E extends string> = ParseEvent<E> extends {
|
|
247
|
-
phase: infer P extends EventPhase;
|
|
248
|
-
model: infer M extends ModelName;
|
|
249
|
-
operation: infer O extends DatabaseOperation;
|
|
250
|
-
type: 'exact';
|
|
251
|
-
} ? ExactDatabaseEventContext<M, O, P> : ParseEvent<E> extends {
|
|
252
|
-
phase: infer P extends EventPhase;
|
|
253
|
-
model: infer _M extends ModelName;
|
|
254
|
-
type: 'model-wildcard';
|
|
255
|
-
} ? ModelWildcardEventContext<P> : ParseEvent<E> extends {
|
|
256
|
-
phase: infer P extends EventPhase;
|
|
257
|
-
operation: infer _O extends DatabaseOperation;
|
|
258
|
-
type: 'operation-wildcard';
|
|
259
|
-
} ? OperationWildcardEventContext<P> : ParseEvent<E> extends {
|
|
260
|
-
phase: infer P extends EventPhase;
|
|
261
|
-
type: 'phase-wildcard';
|
|
262
|
-
} ? PhaseWildcardEventContext<P> : BaseEventContext;
|
|
263
|
-
/**
|
|
264
|
-
* Mapped type that produces all database event name to context pairs.
|
|
265
|
-
*
|
|
266
|
-
* Used to augment core's `CustomEventRegistry`:
|
|
267
|
-
*
|
|
268
|
-
* @example
|
|
269
|
-
* ```typescript
|
|
270
|
-
* declare module 'stratal/events' {
|
|
271
|
-
* interface CustomEventRegistry extends DatabaseEvents {}
|
|
272
|
-
* }
|
|
273
|
-
* ```
|
|
274
|
-
*/
|
|
275
|
-
type DatabaseEvents = { [E in DatabaseEventName]: DatabaseEventContext<E> };
|
|
276
|
-
declare module 'stratal/events' {
|
|
277
|
-
interface CustomEventRegistry extends DatabaseEvents, EntityEvents {}
|
|
278
|
-
}
|
|
279
|
-
//#endregion
|
|
280
|
-
//#region src/database/i18n/en.d.ts
|
|
281
|
-
declare const databaseMessages: {
|
|
282
|
-
readonly en: {
|
|
283
|
-
readonly connectionNameRequired: "Connection name is required";
|
|
284
|
-
readonly defaultConnectionRequired: "Default connection name is required";
|
|
285
|
-
readonly connectionRequired: "At least one connection is required";
|
|
286
|
-
readonly duplicateConnections: "Duplicate connection names found";
|
|
287
|
-
readonly defaultConnectionNotFound: "Default connection not found in connections";
|
|
288
|
-
};
|
|
289
|
-
};
|
|
290
|
-
declare module 'stratal/i18n' {
|
|
291
|
-
interface AppMessageNamespaces {
|
|
292
|
-
database: typeof databaseMessages['en'];
|
|
293
|
-
}
|
|
294
|
-
} //# sourceMappingURL=en.d.ts.map
|
|
295
|
-
//#endregion
|
|
296
|
-
//#region src/database/plugins/error-handler.plugin.d.ts
|
|
297
|
-
/**
|
|
298
|
-
* ZenStack runtime plugin that transforms ORM errors into ApplicationError instances.
|
|
299
|
-
*
|
|
300
|
-
* @example
|
|
301
|
-
* ```typescript
|
|
302
|
-
* super(schema, {
|
|
303
|
-
* dialect: new PostgresDialect({ pool }),
|
|
304
|
-
* plugins: [new ErrorHandlerPlugin()]
|
|
305
|
-
* })
|
|
306
|
-
* ```
|
|
307
|
-
*/
|
|
308
|
-
declare class ErrorHandlerPlugin implements RuntimePlugin<SchemaDef$1, Record<string, unknown>, Record<string, unknown>, {}> {
|
|
309
|
-
readonly id = "error-handler";
|
|
310
|
-
onQuery: ({
|
|
311
|
-
args,
|
|
312
|
-
proceed
|
|
313
|
-
}: {
|
|
314
|
-
args: Record<string, unknown> | undefined;
|
|
315
|
-
proceed: (args: Record<string, unknown> | undefined) => Promise<unknown>;
|
|
316
|
-
}) => Promise<unknown>;
|
|
317
|
-
}
|
|
318
|
-
//#endregion
|
|
319
|
-
//#region src/database/plugins/event-emitter.plugin.d.ts
|
|
320
|
-
interface EventEmitterPluginOptions {
|
|
321
|
-
eventRegistry: IEventRegistry;
|
|
322
|
-
}
|
|
323
|
-
/**
|
|
324
|
-
* ZenStack runtime plugin that emits before/after events for database operations.
|
|
325
|
-
*
|
|
326
|
-
* Emits events in the format:
|
|
327
|
-
* - `before.{Model}.{operation}` - Before the database operation
|
|
328
|
-
* - `after.{Model}.{operation}` - After the database operation
|
|
329
|
-
*
|
|
330
|
-
* Additionally emits entity-mutation events carrying full entity snapshots:
|
|
331
|
-
* - `entity.{Model}.created` - `{ after }`
|
|
332
|
-
* - `entity.{Model}.updated` - `{ before, after }`
|
|
333
|
-
* - `entity.{Model}.deleted` - `{ before }`
|
|
334
|
-
*
|
|
335
|
-
* Entity events are listener-driven: the pre-mutation snapshot is only
|
|
336
|
-
* loaded (inside the mutation's transaction) when `hasListeners()` reports
|
|
337
|
-
* a matching subscription, so models nobody observes pay no cost. Note that
|
|
338
|
-
* a wildcard subscription (`entity`) therefore makes every model pay the
|
|
339
|
-
* pre-read — subscribe per model when cost matters.
|
|
340
|
-
*
|
|
341
|
-
* @example
|
|
342
|
-
* ```typescript
|
|
343
|
-
* super(schema, {
|
|
344
|
-
* dialect: new PostgresDialect({ pool }),
|
|
345
|
-
* plugins: [
|
|
346
|
-
* new EventEmitterPlugin({
|
|
347
|
-
* eventRegistry,
|
|
348
|
-
* })
|
|
349
|
-
* ]
|
|
350
|
-
* })
|
|
351
|
-
* ```
|
|
352
|
-
*/
|
|
353
|
-
declare class EventEmitterPlugin implements RuntimePlugin<SchemaDef$1, Record<string, unknown>, Record<string, unknown>, {}> {
|
|
354
|
-
private options;
|
|
355
|
-
readonly id = "event-emitter";
|
|
356
|
-
constructor(options: EventEmitterPluginOptions);
|
|
357
|
-
onEntityMutation: EntityMutationHooksDef<SchemaDef$1>;
|
|
358
|
-
onQuery: ({
|
|
359
|
-
model,
|
|
360
|
-
operation,
|
|
361
|
-
args,
|
|
362
|
-
proceed
|
|
363
|
-
}: {
|
|
364
|
-
model: string;
|
|
365
|
-
operation: string;
|
|
366
|
-
args: Record<string, unknown> | undefined;
|
|
367
|
-
proceed: (args: Record<string, unknown> | undefined) => Promise<unknown>;
|
|
368
|
-
}) => Promise<unknown>;
|
|
369
|
-
}
|
|
370
|
-
//#endregion
|
|
371
|
-
//#region src/database/plugins/schema-switcher.d.ts
|
|
372
|
-
/**
|
|
373
|
-
* Switches the active schema on a ZenStack/Kysely database client by mutating
|
|
374
|
-
* `$schema.provider.defaultSchema`. This causes ZenStack's QueryNameMapper to
|
|
375
|
-
* generate fully-qualified table references (e.g. `"tenant_123"."User"`).
|
|
376
|
-
*
|
|
377
|
-
* Must be called BEFORE any queries are made on the client.
|
|
378
|
-
*
|
|
379
|
-
* Note: The ZenStack RuntimePlugin `onQuery` hook fires after table names are
|
|
380
|
-
* already resolved, so a plugin-based approach cannot set the schema prefix.
|
|
381
|
-
* Direct client mutation is the only supported method.
|
|
382
|
-
*/
|
|
383
|
-
declare class SchemaSwitcher {
|
|
384
|
-
static apply<T>(client: T, schemaName: string): T;
|
|
385
|
-
}
|
|
386
|
-
//#endregion
|
|
387
|
-
//#region src/database/commands/zenstack.command.d.ts
|
|
388
|
-
/**
|
|
389
|
-
* Base command for ZenStack CLI wrappers.
|
|
390
|
-
* Uses execFileSync with array arguments to prevent shell injection.
|
|
391
|
-
*/
|
|
392
|
-
declare abstract class ZenStackCommand extends Command {
|
|
393
|
-
protected zenstack(args: string[]): Promise<number>;
|
|
394
|
-
}
|
|
395
|
-
//#endregion
|
|
396
|
-
//#region src/database/commands/db-generate.command.d.ts
|
|
397
|
-
declare class DbGenerateCommand extends ZenStackCommand {
|
|
398
|
-
static command: string;
|
|
399
|
-
static description: string;
|
|
400
|
-
handle(): Promise<number>;
|
|
401
|
-
}
|
|
402
|
-
//#endregion
|
|
403
|
-
//#region src/database/commands/db-pull.command.d.ts
|
|
404
|
-
declare class DbPullCommand extends ZenStackCommand {
|
|
405
|
-
static command: string;
|
|
406
|
-
static description: string;
|
|
407
|
-
handle(): Promise<number>;
|
|
408
|
-
}
|
|
409
|
-
//#endregion
|
|
410
|
-
//#region src/database/commands/db-push.command.d.ts
|
|
411
|
-
declare class DbPushCommand extends ZenStackCommand {
|
|
412
|
-
static command: string;
|
|
413
|
-
static description: string;
|
|
414
|
-
handle(): Promise<number>;
|
|
415
|
-
}
|
|
416
|
-
//#endregion
|
|
417
|
-
//#region src/database/commands/migrate-deploy.command.d.ts
|
|
418
|
-
declare class MigrateDeployCommand extends ZenStackCommand {
|
|
419
|
-
static command: string;
|
|
420
|
-
static description: string;
|
|
421
|
-
handle(): Promise<number>;
|
|
422
|
-
}
|
|
423
|
-
//#endregion
|
|
424
|
-
//#region src/database/commands/migrate-dev.command.d.ts
|
|
425
|
-
declare class MigrateDevCommand extends ZenStackCommand {
|
|
426
|
-
static command: string;
|
|
427
|
-
static description: string;
|
|
428
|
-
handle(): Promise<number>;
|
|
429
|
-
}
|
|
430
|
-
//#endregion
|
|
431
|
-
//#region src/database/commands/migrate-reset.command.d.ts
|
|
432
|
-
declare class MigrateResetCommand extends ZenStackCommand {
|
|
433
|
-
static command: string;
|
|
434
|
-
static description: string;
|
|
435
|
-
handle(): Promise<number>;
|
|
436
|
-
}
|
|
437
|
-
//#endregion
|
|
438
|
-
//#region src/database/commands/migrate-status.command.d.ts
|
|
439
|
-
declare class MigrateStatusCommand extends ZenStackCommand {
|
|
440
|
-
static command: string;
|
|
441
|
-
static description: string;
|
|
442
|
-
handle(): Promise<number>;
|
|
443
|
-
}
|
|
444
|
-
//#endregion
|
|
445
|
-
export { DATABASE_TOKENS as A, GetResult as C, UniqueConstraintError as D, fromZenStackError as E, DatabaseModuleConfig as F, DatabaseService as M, DatabaseConnectionConfig as N, RecordNotFoundError as O, DatabaseModule as P, GetEntity as S, ParseEvent as T, EntityEventName as _, DbPushCommand as a, EventPhase as b, ZenStackCommand as c, EventEmitterPluginOptions as d, ErrorHandlerPlugin as f, DatabaseOperation as g, DatabaseEvents as h, MigrateDeployCommand as i, connectionSymbol as j, InjectDB as k, SchemaSwitcher as l, DatabaseEventName as m, MigrateResetCommand as n, DbPullCommand as o, databaseMessages as p, MigrateDevCommand as r, DbGenerateCommand as s, MigrateStatusCommand as t, EventEmitterPlugin as u, EntityEvents as v, ModelName as w, GetData as x, EntityMutationVerb as y };
|
|
446
|
-
//# sourceMappingURL=index-Dt0YUA7r.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-Dt0YUA7r.d.mts","names":[],"sources":["../src/database/database.module.ts","../src/database/database.service.ts","../src/database/database.tokens.ts","../src/database/decorators/inject-db.decorator.ts","../src/database/errors/record-not-found.error.ts","../src/database/errors/unique-constraint.error.ts","../src/database/errors/from-zenstack-error.ts","../src/database/event-types.ts","../src/database/i18n/en.ts","../src/database/plugins/error-handler.plugin.ts","../src/database/plugins/event-emitter.plugin.ts","../src/database/plugins/schema-switcher.ts","../src/database/commands/zenstack.command.ts","../src/database/commands/db-generate.command.ts","../src/database/commands/db-pull.command.ts","../src/database/commands/db-push.command.ts","../src/database/commands/migrate-deploy.command.ts","../src/database/commands/migrate-dev.command.ts","../src/database/commands/migrate-reset.command.ts","../src/database/commands/migrate-status.command.ts"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types-CWZ9q74G.d.mts","names":[],"sources":["../src/database/types.ts"],"mappings":";;;;;;AA+BA;;;;AAAgC;AAAG;;;;;;;;;;;;;AAIiC;AAAA;;;;;;;UAJnD,eAAA;;KAGZ,sBAAA,MACH,CAAA,SAAU,aAAa,0CAA0C,CAAA;;KAG9D,0BAAA,MACH,CAAA,SAAU,aAAa,0CAA0C,CAAA;AAAC;AAAA,KAG/D,mBAAA,MACH,CAAA,SAAU,aAAa,0CAA0C,CAAA;;KAG9D,YAAA,8BACH,OAAA;EAEM,YAAA,EAAc,sBAAA,CAAuB,CAAA,IAAK,YAAA,CAAa,IAAA;EACvD,gBAAA,EAAkB,0BAAA,CAA2B,CAAA,IAAK,YAAA,CAAa,IAAA;EAC/D,SAAA,EAAW,mBAAA,CAAoB,CAAA,IAAK,YAAA,CAAa,IAAA;AAAA;EAEjD,YAAA;EAAkB,gBAAA;EAAsB,SAAA;AAAA;;KAGpC,yBAAA,qBACV,eAAA;EAA0B,OAAA;AAAA,IACtB,CAAA,eAAgB,CAAA,GACd,CAAA,CAAE,CAAA,sBACA,YAAA,CAAa,CAAA,CAAE,CAAA;EACb,YAAA;EAAkB,gBAAA;EAAsB,SAAA;AAAA;EAC1C,YAAA;EAAkB,gBAAA;EAAsB,SAAA;AAAA;EAC1C,YAAA;EAAkB,gBAAA;EAAsB,SAAA;AAAA;;KAGpC,qBAAA,qBACV,eAAA;EAA0B,OAAA;AAAA,IACtB,CAAA,eAAgB,CAAA,GAAI,CAAA,CAAE,CAAA,UAAW,SAAA,GAAY,CAAA,CAAE,CAAA,IAAK,SAAA,GAAY,SAAA,GAChE,SAAA;;KAGM,cAAA,GACV,eAAA;EAA0B,OAAA;AAAA,IACtB,CAAA,OAAQ,CAAA,UAAW,SAAA,GAAY,CAAA,OAAQ,CAAA,IAAK,SAAA,GAC5C,SAAA;;KAGM,cAAA,GACV,eAAA;EAA0B,OAAA;AAAA,UAChB,CAAA,0BAA2B,OAAA,OAAc,CAAA;;KAIzC,qBAAA,GACV,eAAe;EAAW,iBAAA;AAAA,IAA8C,CAAA;;;;;UAMzD,4BAAA;EACf,IAAA;EACA,MAAM;AAAA"}
|