@stratal/framework 0.0.12 → 0.0.14
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/dist/auth/index.d.mts +202 -0
- package/dist/auth/index.d.mts.map +1 -0
- package/dist/auth/index.mjs +323 -0
- package/dist/auth/index.mjs.map +1 -0
- package/dist/auth-context-BD2ApWg1.d.mts +38 -0
- package/dist/auth-context-BD2ApWg1.d.mts.map +1 -0
- package/dist/auth-context-CV3Ko1ew.mjs +55 -0
- package/dist/auth-context-CV3Ko1ew.mjs.map +1 -0
- package/dist/context/index.d.mts +20 -0
- package/dist/context/index.d.mts.map +1 -0
- package/dist/context/index.mjs +3 -0
- package/dist/database/index.d.mts +3 -0
- package/dist/database/index.mjs +374 -0
- package/dist/database/index.mjs.map +1 -0
- package/dist/decorate-RSane8dy.mjs +9 -0
- package/dist/decorateMetadata-CETItPez.mjs +6 -0
- package/dist/decorateParam-CcTvpNsw.mjs +8 -0
- package/dist/errors-C_KIIU1v.mjs +25 -0
- package/dist/errors-C_KIIU1v.mjs.map +1 -0
- package/dist/factory/index.d.mts +99 -0
- package/dist/factory/index.d.mts.map +1 -0
- package/dist/factory/index.mjs +138 -0
- package/dist/factory/index.mjs.map +1 -0
- package/dist/guards/{auth.guard.d.ts → index.d.mts} +7 -3
- package/dist/guards/index.d.mts.map +1 -0
- package/dist/guards/index.mjs +93 -0
- package/dist/guards/index.mjs.map +1 -0
- package/dist/index-Dlg8mNjq.d.mts +386 -0
- package/dist/index-Dlg8mNjq.d.mts.map +1 -0
- package/dist/index.d.mts +3 -0
- package/dist/index.mjs +1 -0
- package/dist/rbac/index.d.mts +206 -0
- package/dist/rbac/index.d.mts.map +1 -0
- package/dist/rbac/index.mjs +346 -0
- package/dist/rbac/index.mjs.map +1 -0
- package/dist/tokens-Di1ofovy.mjs +32 -0
- package/dist/tokens-Di1ofovy.mjs.map +1 -0
- package/dist/{database/types.d.ts → types-Gjk0d2qB.d.mts} +18 -15
- package/dist/types-Gjk0d2qB.d.mts.map +1 -0
- package/package.json +25 -24
- package/dist/auth/auth.module.d.ts +0 -37
- package/dist/auth/auth.module.d.ts.map +0 -1
- package/dist/auth/auth.module.js +0 -74
- package/dist/auth/auth.module.js.map +0 -1
- package/dist/auth/auth.tokens.d.ts +0 -5
- package/dist/auth/auth.tokens.d.ts.map +0 -1
- package/dist/auth/auth.tokens.js +0 -5
- package/dist/auth/auth.tokens.js.map +0 -1
- package/dist/auth/errors/auth-errors.d.ts +0 -74
- package/dist/auth/errors/auth-errors.d.ts.map +0 -1
- package/dist/auth/errors/auth-errors.js +0 -122
- package/dist/auth/errors/auth-errors.js.map +0 -1
- package/dist/auth/errors/index.d.ts +0 -5
- package/dist/auth/errors/index.d.ts.map +0 -1
- package/dist/auth/errors/index.js +0 -5
- package/dist/auth/errors/index.js.map +0 -1
- package/dist/auth/errors/invalid-token.error.d.ts +0 -5
- package/dist/auth/errors/invalid-token.error.d.ts.map +0 -1
- package/dist/auth/errors/invalid-token.error.js +0 -7
- package/dist/auth/errors/invalid-token.error.js.map +0 -1
- package/dist/auth/errors/token-required.error.d.ts +0 -5
- package/dist/auth/errors/token-required.error.d.ts.map +0 -1
- package/dist/auth/errors/token-required.error.js +0 -7
- package/dist/auth/errors/token-required.error.js.map +0 -1
- package/dist/auth/errors/verification-failed.error.d.ts +0 -5
- package/dist/auth/errors/verification-failed.error.d.ts.map +0 -1
- package/dist/auth/errors/verification-failed.error.js +0 -7
- package/dist/auth/errors/verification-failed.error.js.map +0 -1
- package/dist/auth/index.d.ts +0 -7
- package/dist/auth/index.d.ts.map +0 -1
- package/dist/auth/index.js +0 -7
- package/dist/auth/index.js.map +0 -1
- package/dist/auth/middleware/auth-context.middleware.d.ts +0 -12
- package/dist/auth/middleware/auth-context.middleware.d.ts.map +0 -1
- package/dist/auth/middleware/auth-context.middleware.js +0 -28
- package/dist/auth/middleware/auth-context.middleware.js.map +0 -1
- package/dist/auth/middleware/index.d.ts +0 -3
- package/dist/auth/middleware/index.d.ts.map +0 -1
- package/dist/auth/middleware/index.js +0 -3
- package/dist/auth/middleware/index.js.map +0 -1
- package/dist/auth/middleware/session-verification.middleware.d.ts +0 -18
- package/dist/auth/middleware/session-verification.middleware.d.ts.map +0 -1
- package/dist/auth/middleware/session-verification.middleware.js +0 -48
- package/dist/auth/middleware/session-verification.middleware.js.map +0 -1
- package/dist/auth/services/auth.service.d.ts +0 -32
- package/dist/auth/services/auth.service.d.ts.map +0 -1
- package/dist/auth/services/auth.service.js +0 -62
- package/dist/auth/services/auth.service.js.map +0 -1
- package/dist/auth/services/index.d.ts +0 -2
- package/dist/auth/services/index.d.ts.map +0 -1
- package/dist/auth/services/index.js +0 -2
- package/dist/auth/services/index.js.map +0 -1
- package/dist/auth/utils/auth-helpers.d.ts +0 -11
- package/dist/auth/utils/auth-helpers.d.ts.map +0 -1
- package/dist/auth/utils/auth-helpers.js +0 -31
- package/dist/auth/utils/auth-helpers.js.map +0 -1
- package/dist/auth/utils/better-auth-error-handler.d.ts +0 -11
- package/dist/auth/utils/better-auth-error-handler.d.ts.map +0 -1
- package/dist/auth/utils/better-auth-error-handler.js +0 -95
- package/dist/auth/utils/better-auth-error-handler.js.map +0 -1
- package/dist/auth/utils/index.d.ts +0 -3
- package/dist/auth/utils/index.d.ts.map +0 -1
- package/dist/auth/utils/index.js +0 -3
- package/dist/auth/utils/index.js.map +0 -1
- package/dist/context/auth-context.d.ts +0 -35
- package/dist/context/auth-context.d.ts.map +0 -1
- package/dist/context/auth-context.js +0 -65
- package/dist/context/auth-context.js.map +0 -1
- package/dist/context/errors/context-not-initialized.error.d.ts +0 -5
- package/dist/context/errors/context-not-initialized.error.d.ts.map +0 -1
- package/dist/context/errors/context-not-initialized.error.js +0 -7
- package/dist/context/errors/context-not-initialized.error.js.map +0 -1
- package/dist/context/errors/index.d.ts +0 -4
- package/dist/context/errors/index.d.ts.map +0 -1
- package/dist/context/errors/index.js +0 -4
- package/dist/context/errors/index.js.map +0 -1
- package/dist/context/errors/user-not-authenticated.error.d.ts +0 -5
- package/dist/context/errors/user-not-authenticated.error.d.ts.map +0 -1
- package/dist/context/errors/user-not-authenticated.error.js +0 -7
- package/dist/context/errors/user-not-authenticated.error.js.map +0 -1
- package/dist/context/errors/user-not-authorized.error.d.ts +0 -5
- package/dist/context/errors/user-not-authorized.error.d.ts.map +0 -1
- package/dist/context/errors/user-not-authorized.error.js +0 -7
- package/dist/context/errors/user-not-authorized.error.js.map +0 -1
- package/dist/context/index.d.ts +0 -3
- package/dist/context/index.d.ts.map +0 -1
- package/dist/context/index.js +0 -3
- package/dist/context/index.js.map +0 -1
- package/dist/database/custom-pg-types.d.ts +0 -21
- package/dist/database/custom-pg-types.d.ts.map +0 -1
- package/dist/database/custom-pg-types.js +0 -41
- package/dist/database/custom-pg-types.js.map +0 -1
- package/dist/database/database.helpers.d.ts +0 -15
- package/dist/database/database.helpers.d.ts.map +0 -1
- package/dist/database/database.helpers.js +0 -47
- package/dist/database/database.helpers.js.map +0 -1
- package/dist/database/database.module.d.ts +0 -22
- package/dist/database/database.module.d.ts.map +0 -1
- package/dist/database/database.module.js +0 -54
- package/dist/database/database.module.js.map +0 -1
- package/dist/database/database.service.d.ts +0 -18
- package/dist/database/database.service.d.ts.map +0 -1
- package/dist/database/database.service.js +0 -2
- package/dist/database/database.service.js.map +0 -1
- package/dist/database/database.tokens.d.ts +0 -7
- package/dist/database/database.tokens.d.ts.map +0 -1
- package/dist/database/database.tokens.js +0 -8
- package/dist/database/database.tokens.js.map +0 -1
- package/dist/database/decorators/inject-db.decorator.d.ts +0 -3
- package/dist/database/decorators/inject-db.decorator.d.ts.map +0 -1
- package/dist/database/decorators/inject-db.decorator.js +0 -6
- package/dist/database/decorators/inject-db.decorator.js.map +0 -1
- package/dist/database/errors/database-config.error.d.ts +0 -5
- package/dist/database/errors/database-config.error.d.ts.map +0 -1
- package/dist/database/errors/database-config.error.js +0 -8
- package/dist/database/errors/database-config.error.js.map +0 -1
- package/dist/database/errors/database-error.d.ts +0 -14
- package/dist/database/errors/database-error.d.ts.map +0 -1
- package/dist/database/errors/database-error.js +0 -20
- package/dist/database/errors/database-error.js.map +0 -1
- package/dist/database/errors/foreign-key-constraint.error.d.ts +0 -14
- package/dist/database/errors/foreign-key-constraint.error.d.ts.map +0 -1
- package/dist/database/errors/foreign-key-constraint.error.js +0 -19
- package/dist/database/errors/foreign-key-constraint.error.js.map +0 -1
- package/dist/database/errors/from-zenstack-error.d.ts +0 -22
- package/dist/database/errors/from-zenstack-error.d.ts.map +0 -1
- package/dist/database/errors/from-zenstack-error.js +0 -114
- package/dist/database/errors/from-zenstack-error.js.map +0 -1
- package/dist/database/errors/index.d.ts +0 -8
- package/dist/database/errors/index.d.ts.map +0 -1
- package/dist/database/errors/index.js +0 -8
- package/dist/database/errors/index.js.map +0 -1
- package/dist/database/errors/invalid-error-code-range.error.d.ts +0 -12
- package/dist/database/errors/invalid-error-code-range.error.d.ts.map +0 -1
- package/dist/database/errors/invalid-error-code-range.error.js +0 -14
- package/dist/database/errors/invalid-error-code-range.error.js.map +0 -1
- package/dist/database/errors/record-not-found.error.d.ts +0 -15
- package/dist/database/errors/record-not-found.error.d.ts.map +0 -1
- package/dist/database/errors/record-not-found.error.js +0 -20
- package/dist/database/errors/record-not-found.error.js.map +0 -1
- package/dist/database/errors/unique-constraint.error.d.ts +0 -15
- package/dist/database/errors/unique-constraint.error.d.ts.map +0 -1
- package/dist/database/errors/unique-constraint.error.js +0 -20
- package/dist/database/errors/unique-constraint.error.js.map +0 -1
- package/dist/database/event-types.d.ts +0 -137
- package/dist/database/event-types.d.ts.map +0 -1
- package/dist/database/event-types.js +0 -13
- package/dist/database/event-types.js.map +0 -1
- package/dist/database/i18n/en.d.ts +0 -15
- package/dist/database/i18n/en.d.ts.map +0 -1
- package/dist/database/i18n/en.js +0 -10
- package/dist/database/i18n/en.js.map +0 -1
- package/dist/database/i18n/index.d.ts +0 -2
- package/dist/database/i18n/index.d.ts.map +0 -1
- package/dist/database/i18n/index.js +0 -2
- package/dist/database/i18n/index.js.map +0 -1
- package/dist/database/index.d.ts +0 -11
- package/dist/database/index.d.ts.map +0 -1
- package/dist/database/index.js +0 -11
- package/dist/database/index.js.map +0 -1
- package/dist/database/plugins/error-handler.plugin.d.ts +0 -21
- package/dist/database/plugins/error-handler.plugin.d.ts.map +0 -1
- package/dist/database/plugins/error-handler.plugin.js +0 -24
- package/dist/database/plugins/error-handler.plugin.js.map +0 -1
- package/dist/database/plugins/event-emitter.plugin.d.ts +0 -37
- package/dist/database/plugins/event-emitter.plugin.d.ts.map +0 -1
- package/dist/database/plugins/event-emitter.plugin.js +0 -43
- package/dist/database/plugins/event-emitter.plugin.js.map +0 -1
- package/dist/database/plugins/index.d.ts +0 -4
- package/dist/database/plugins/index.d.ts.map +0 -1
- package/dist/database/plugins/index.js +0 -4
- package/dist/database/plugins/index.js.map +0 -1
- package/dist/database/plugins/schema-switcher.plugin.d.ts +0 -32
- package/dist/database/plugins/schema-switcher.plugin.d.ts.map +0 -1
- package/dist/database/plugins/schema-switcher.plugin.js +0 -27
- package/dist/database/plugins/schema-switcher.plugin.js.map +0 -1
- package/dist/database/types.d.ts.map +0 -1
- package/dist/database/types.js +0 -2
- package/dist/database/types.js.map +0 -1
- package/dist/factory/factory.d.ts +0 -56
- package/dist/factory/factory.d.ts.map +0 -1
- package/dist/factory/factory.js +0 -86
- package/dist/factory/factory.js.map +0 -1
- package/dist/factory/index.d.ts +0 -3
- package/dist/factory/index.d.ts.map +0 -1
- package/dist/factory/index.js +0 -3
- package/dist/factory/index.js.map +0 -1
- package/dist/factory/sequence.d.ts +0 -38
- package/dist/factory/sequence.d.ts.map +0 -1
- package/dist/factory/sequence.js +0 -54
- package/dist/factory/sequence.js.map +0 -1
- package/dist/guards/auth.guard.d.ts.map +0 -1
- package/dist/guards/auth.guard.js +0 -99
- package/dist/guards/auth.guard.js.map +0 -1
- package/dist/guards/index.d.ts +0 -3
- package/dist/guards/index.d.ts.map +0 -1
- package/dist/guards/index.js +0 -5
- package/dist/guards/index.js.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -2
- package/dist/index.js.map +0 -1
- package/dist/rbac/adapters/custom-zenstack-adapter.d.ts +0 -61
- package/dist/rbac/adapters/custom-zenstack-adapter.d.ts.map +0 -1
- package/dist/rbac/adapters/custom-zenstack-adapter.js +0 -159
- package/dist/rbac/adapters/custom-zenstack-adapter.js.map +0 -1
- package/dist/rbac/adapters/index.d.ts +0 -2
- package/dist/rbac/adapters/index.d.ts.map +0 -1
- package/dist/rbac/adapters/index.js +0 -2
- package/dist/rbac/adapters/index.js.map +0 -1
- package/dist/rbac/constants.d.ts +0 -8
- package/dist/rbac/constants.d.ts.map +0 -1
- package/dist/rbac/constants.js +0 -8
- package/dist/rbac/constants.js.map +0 -1
- package/dist/rbac/errors/index.d.ts +0 -2
- package/dist/rbac/errors/index.d.ts.map +0 -1
- package/dist/rbac/errors/index.js +0 -2
- package/dist/rbac/errors/index.js.map +0 -1
- package/dist/rbac/errors/insufficient-permissions.error.d.ts +0 -14
- package/dist/rbac/errors/insufficient-permissions.error.d.ts.map +0 -1
- package/dist/rbac/errors/insufficient-permissions.error.js +0 -19
- package/dist/rbac/errors/insufficient-permissions.error.js.map +0 -1
- package/dist/rbac/index.d.ts +0 -9
- package/dist/rbac/index.d.ts.map +0 -1
- package/dist/rbac/index.js +0 -8
- package/dist/rbac/index.js.map +0 -1
- package/dist/rbac/rbac.module.d.ts +0 -26
- package/dist/rbac/rbac.module.d.ts.map +0 -1
- package/dist/rbac/rbac.module.js +0 -62
- package/dist/rbac/rbac.module.js.map +0 -1
- package/dist/rbac/services/casbin-enforcer.service.d.ts +0 -37
- package/dist/rbac/services/casbin-enforcer.service.d.ts.map +0 -1
- package/dist/rbac/services/casbin-enforcer.service.js +0 -86
- package/dist/rbac/services/casbin-enforcer.service.js.map +0 -1
- package/dist/rbac/services/casbin.service.d.ts +0 -37
- package/dist/rbac/services/casbin.service.d.ts.map +0 -1
- package/dist/rbac/services/casbin.service.js +0 -174
- package/dist/rbac/services/casbin.service.js.map +0 -1
- package/dist/rbac/services/index.d.ts +0 -3
- package/dist/rbac/services/index.d.ts.map +0 -1
- package/dist/rbac/services/index.js +0 -3
- package/dist/rbac/services/index.js.map +0 -1
- package/dist/rbac/tokens.d.ts +0 -10
- package/dist/rbac/tokens.d.ts.map +0 -1
- package/dist/rbac/tokens.js +0 -10
- package/dist/rbac/tokens.js.map +0 -1
- package/dist/rbac/types.d.ts +0 -12
- package/dist/rbac/types.d.ts.map +0 -1
- package/dist/rbac/types.js +0 -2
- package/dist/rbac/types.js.map +0 -1
|
@@ -1,47 +0,0 @@
|
|
|
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
|
-
};
|
|
10
|
-
import { ZenStackClient } from '@zenstackhq/orm';
|
|
11
|
-
import { Transient } from 'stratal/di';
|
|
12
|
-
import { withI18n, z } from 'stratal/validation';
|
|
13
|
-
import { ErrorHandlerPlugin, EventEmitterPlugin } from './plugins';
|
|
14
|
-
const databaseConnectionSchema = z.object({
|
|
15
|
-
name: z.string().min(1, withI18n('database.connectionNameRequired')),
|
|
16
|
-
schema: z.object({}).loose(),
|
|
17
|
-
dialect: z.function(),
|
|
18
|
-
plugins: z.array(z.object({}).loose()).optional(),
|
|
19
|
-
});
|
|
20
|
-
export const databaseModuleConfigSchema = z.object({
|
|
21
|
-
default: z.string().min(1, withI18n('database.defaultConnectionRequired')),
|
|
22
|
-
connections: z.array(databaseConnectionSchema).min(1, withI18n('database.connectionRequired')),
|
|
23
|
-
}).refine((config) => {
|
|
24
|
-
const names = config.connections.map(c => c.name);
|
|
25
|
-
return new Set(names).size === names.length;
|
|
26
|
-
}, withI18n('database.duplicateConnections')).refine((config) => config.connections.some(c => c.name === config.default), withI18n('database.defaultConnectionNotFound'));
|
|
27
|
-
export function createDatabaseService(conn, eventRegistry) {
|
|
28
|
-
const plugins = [
|
|
29
|
-
new ErrorHandlerPlugin(),
|
|
30
|
-
new EventEmitterPlugin({
|
|
31
|
-
eventRegistry,
|
|
32
|
-
}),
|
|
33
|
-
...(conn.plugins ?? []),
|
|
34
|
-
];
|
|
35
|
-
let DatabaseClient = class DatabaseClient extends ZenStackClient {
|
|
36
|
-
constructor() {
|
|
37
|
-
const dialect = conn.dialect();
|
|
38
|
-
super(conn.schema, { dialect, plugins });
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
DatabaseClient = __decorate([
|
|
42
|
-
Transient(),
|
|
43
|
-
__metadata("design:paramtypes", [])
|
|
44
|
-
], DatabaseClient);
|
|
45
|
-
return DatabaseClient;
|
|
46
|
-
}
|
|
47
|
-
//# sourceMappingURL=database.helpers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"database.helpers.js","sourceRoot":"","sources":["../../src/database/database.helpers.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,cAAc,EAAkB,MAAM,iBAAiB,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEtC,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAA;AAEhD,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,QAAQ,CAAC,iCAAiC,CAAC,CAAC;IACpE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE;IAC5B,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;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,QAAQ,CAAC,oCAAoC,CAAC,CAAC;IAC1E,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,6BAA6B,CAAC,CAAC;CAC/F,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,QAAQ,CAAC,+BAA+B,CAAC,CAC1C,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,QAAQ,CAAC,oCAAoC,CAAC,CAC/C,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;IAED,IACM,cAAc,GADpB,MACM,cAAe,SAAQ,cAAkC;QAC7D;YACE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;YAC9B,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA;QAC1C,CAAC;KACF,CAAA;IALK,cAAc;QADnB,SAAS,EAAE;;OACN,cAAc,CAKnB;IAED,OAAO,cAAc,CAAA;AACvB,CAAC"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import type { AnyPlugin } from '@zenstackhq/orm';
|
|
2
|
-
import type { SchemaDef } from '@zenstackhq/schema';
|
|
3
|
-
import type { Dialect } from 'kysely';
|
|
4
|
-
import { type AsyncModuleOptions, type DynamicModule, type ModuleContext, type OnInitialize, type OnShutdown } from 'stratal/module';
|
|
5
|
-
import type { ConnectionName, DefaultConnectionName } from './types';
|
|
6
|
-
export interface DatabaseConnectionConfig<Schema extends SchemaDef = SchemaDef, Name extends ConnectionName = ConnectionName> {
|
|
7
|
-
name: Name;
|
|
8
|
-
schema: Schema;
|
|
9
|
-
dialect: () => Dialect;
|
|
10
|
-
plugins?: AnyPlugin[];
|
|
11
|
-
}
|
|
12
|
-
export interface DatabaseModuleConfig {
|
|
13
|
-
default: DefaultConnectionName;
|
|
14
|
-
connections: DatabaseConnectionConfig[];
|
|
15
|
-
}
|
|
16
|
-
export declare class DatabaseModule implements OnInitialize, OnShutdown {
|
|
17
|
-
static forRoot(config: DatabaseModuleConfig): DynamicModule;
|
|
18
|
-
static forRootAsync(options: AsyncModuleOptions<DatabaseModuleConfig>): DynamicModule;
|
|
19
|
-
onInitialize(context: ModuleContext): void;
|
|
20
|
-
onShutdown(context: ModuleContext): void;
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=database.module.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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,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,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,OAAO,CAAA;IACtB,OAAO,CAAC,EAAE,SAAS,EAAE,CAAA;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,qBAAqB,CAAA;IAC9B,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;IAmB1C,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;CAGzC"}
|
|
@@ -1,54 +0,0 @@
|
|
|
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 DatabaseModule_1;
|
|
8
|
-
import { DI_TOKENS, Scope, delay } from 'stratal/di';
|
|
9
|
-
import { Module, } from 'stratal/module';
|
|
10
|
-
import { createDatabaseService } from './database.helpers';
|
|
11
|
-
import { DATABASE_TOKENS, connectionSymbol } from './database.tokens';
|
|
12
|
-
let DatabaseModule = DatabaseModule_1 = class DatabaseModule {
|
|
13
|
-
static forRoot(config) {
|
|
14
|
-
return {
|
|
15
|
-
module: DatabaseModule_1,
|
|
16
|
-
providers: [
|
|
17
|
-
{ provide: DATABASE_TOKENS.Options, useValue: config },
|
|
18
|
-
],
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
static forRootAsync(options) {
|
|
22
|
-
return {
|
|
23
|
-
module: DatabaseModule_1,
|
|
24
|
-
providers: [
|
|
25
|
-
{
|
|
26
|
-
provide: DATABASE_TOKENS.Options,
|
|
27
|
-
useFactory: options.useFactory,
|
|
28
|
-
inject: options.inject,
|
|
29
|
-
},
|
|
30
|
-
],
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
onInitialize(context) {
|
|
34
|
-
const config = context.container.resolve(DATABASE_TOKENS.Options);
|
|
35
|
-
const eventRegistry = context.container.resolve(DI_TOKENS.EventRegistry);
|
|
36
|
-
const container = context.container.getTsyringeContainer();
|
|
37
|
-
for (const conn of config.connections) {
|
|
38
|
-
const Service = createDatabaseService(conn, eventRegistry);
|
|
39
|
-
container.register(connectionSymbol(conn.name),
|
|
40
|
-
// @ts-expect-error Overload error
|
|
41
|
-
delay(() => Service), { lifecycle: Scope.Request });
|
|
42
|
-
}
|
|
43
|
-
context.container.registerExisting(DI_TOKENS.Database, connectionSymbol(config.default));
|
|
44
|
-
context.logger.info('DatabaseModule initialized');
|
|
45
|
-
}
|
|
46
|
-
onShutdown(context) {
|
|
47
|
-
context.logger.info('DatabaseModule shutdown');
|
|
48
|
-
}
|
|
49
|
-
};
|
|
50
|
-
DatabaseModule = DatabaseModule_1 = __decorate([
|
|
51
|
-
Module({})
|
|
52
|
-
], DatabaseModule);
|
|
53
|
-
export { DatabaseModule };
|
|
54
|
-
//# sourceMappingURL=database.module.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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;AAmB9D,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,IAAI,EAAE,aAAa,CAAC,CAAA;YAE1D,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 +0,0 @@
|
|
|
1
|
-
import type { ClientContract, ClientOptions } from '@zenstackhq/orm';
|
|
2
|
-
import type { ConnectionName, DefaultConnectionName, InferConnectionSchema } from './types';
|
|
3
|
-
/**
|
|
4
|
-
* DatabaseService type
|
|
5
|
-
*
|
|
6
|
-
* Each connection has its own schema. The service is typed to the connection's schema.
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* ```typescript
|
|
10
|
-
* // Typed to default connection
|
|
11
|
-
* constructor(@inject(DI_TOKENS.Database) private db: DatabaseService) {}
|
|
12
|
-
*
|
|
13
|
-
* // Typed to a specific named connection
|
|
14
|
-
* constructor(@InjectDB('analytics') private analytics: DatabaseService<'analytics'>) {}
|
|
15
|
-
* ```
|
|
16
|
-
*/
|
|
17
|
-
export type DatabaseService<K extends ConnectionName = DefaultConnectionName> = ClientContract<InferConnectionSchema<K>, ClientOptions<InferConnectionSchema<K>>>;
|
|
18
|
-
//# sourceMappingURL=database.service.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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,IAC9C,cAAc,CAChB,qBAAqB,CAAC,CAAC,CAAC,EACxB,aAAa,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CACxC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"database.service.js","sourceRoot":"","sources":["../../src/database/database.service.ts"],"names":[],"mappings":""}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export declare const DATABASE_TOKENS: {
|
|
2
|
-
readonly Options: symbol;
|
|
3
|
-
readonly Services: symbol;
|
|
4
|
-
};
|
|
5
|
-
import type { ConnectionName } from './types';
|
|
6
|
-
export declare function connectionSymbol(name: ConnectionName): symbol;
|
|
7
|
-
//# sourceMappingURL=database.tokens.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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,8 +0,0 @@
|
|
|
1
|
-
export const DATABASE_TOKENS = {
|
|
2
|
-
Options: Symbol.for('stratal:database:options'),
|
|
3
|
-
Services: Symbol.for('stratal:database:services'),
|
|
4
|
-
};
|
|
5
|
-
export function connectionSymbol(name) {
|
|
6
|
-
return Symbol.for(`stratal:database:connection:${name}`);
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=database.tokens.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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,0BAA0B,CAAC;IAC/C,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC;CACzC,CAAA;AAIV,MAAM,UAAU,gBAAgB,CAAC,IAAoB;IACnD,OAAO,MAAM,CAAC,GAAG,CAAC,+BAA+B,IAAI,EAAE,CAAC,CAAA;AAC1D,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inject-db.decorator.d.ts","sourceRoot":"","sources":["../../../src/database/decorators/inject-db.decorator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAG9C,wBAAgB,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,kBAAkB,CAEjE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inject-db.decorator.js","sourceRoot":"","sources":["../../../src/database/decorators/inject-db.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,MAAM,UAAU,QAAQ,CAAC,IAAoB;IAC3C,OAAO,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAA;AACvC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"database-config.error.d.ts","sourceRoot":"","sources":["../../../src/database/errors/database-config.error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD,qBAAa,mBAAoB,SAAQ,aAAa;gBACxC,OAAO,EAAE,MAAM;CAG5B"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { ERROR_CODES } from 'stratal/errors';
|
|
2
|
-
import { DatabaseError } from './database-error';
|
|
3
|
-
export class DatabaseConfigError extends DatabaseError {
|
|
4
|
-
constructor(details) {
|
|
5
|
-
super('errors.databaseGeneric', ERROR_CODES.DATABASE.GENERIC, { details });
|
|
6
|
-
}
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=database-config.error.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"database-config.error.js","sourceRoot":"","sources":["../../../src/database/errors/database-config.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD,MAAM,OAAO,mBAAoB,SAAQ,aAAa;IACpD,YAAY,OAAe;QACzB,KAAK,CAAC,wBAAwB,EAAE,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;IAC5E,CAAC;CACF"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { MessageKeys } from 'stratal/i18n';
|
|
2
|
-
import { ApplicationError, type ErrorCode } from 'stratal/errors';
|
|
3
|
-
/**
|
|
4
|
-
* DatabaseError
|
|
5
|
-
*
|
|
6
|
-
* Generic database error thrown when a database operation fails
|
|
7
|
-
* and doesn't fit into a more specific error category.
|
|
8
|
-
*
|
|
9
|
-
* This is the base class for all database-related errors.
|
|
10
|
-
*/
|
|
11
|
-
export declare class DatabaseError extends ApplicationError {
|
|
12
|
-
constructor(messageKey?: MessageKeys, code?: ErrorCode, metadata?: Record<string, unknown>);
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=database-error.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"database-error.d.ts","sourceRoot":"","sources":["../../../src/database/errors/database-error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAe,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAG9E;;;;;;;GAOG;AACH,qBAAa,aAAc,SAAQ,gBAAgB;gBAE/C,UAAU,GAAE,WAAsC,EAClD,IAAI,GAAE,SAAwC,EAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CASrC"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { ApplicationError, ERROR_CODES } from 'stratal/errors';
|
|
2
|
-
import { InvalidErrorCodeRangeError } from './invalid-error-code-range.error';
|
|
3
|
-
/**
|
|
4
|
-
* DatabaseError
|
|
5
|
-
*
|
|
6
|
-
* Generic database error thrown when a database operation fails
|
|
7
|
-
* and doesn't fit into a more specific error category.
|
|
8
|
-
*
|
|
9
|
-
* This is the base class for all database-related errors.
|
|
10
|
-
*/
|
|
11
|
-
export class DatabaseError extends ApplicationError {
|
|
12
|
-
constructor(messageKey = 'errors.databaseGeneric', code = ERROR_CODES.DATABASE.GENERIC, metadata) {
|
|
13
|
-
// Validate that code is in the database error range
|
|
14
|
-
if (code < 2000 || code >= 3000) {
|
|
15
|
-
throw new InvalidErrorCodeRangeError(code, '2000-2999');
|
|
16
|
-
}
|
|
17
|
-
super(messageKey, code, metadata);
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=database-error.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"database-error.js","sourceRoot":"","sources":["../../../src/database/errors/database-error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAkB,MAAM,gBAAgB,CAAA;AAC9E,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAA;AAE7E;;;;;;;GAOG;AACH,MAAM,OAAO,aAAc,SAAQ,gBAAgB;IACjD,YACE,aAA0B,wBAAwB,EAClD,OAAkB,WAAW,CAAC,QAAQ,CAAC,OAAO,EAC9C,QAAkC;QAElC,oDAAoD;QACpD,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YAChC,MAAM,IAAI,0BAA0B,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;QACzD,CAAC;QAED,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;IACnC,CAAC;CACF"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { DatabaseError } from './database-error';
|
|
2
|
-
/**
|
|
3
|
-
* ForeignKeyConstraintError
|
|
4
|
-
*
|
|
5
|
-
* Thrown when a database foreign key constraint is violated.
|
|
6
|
-
* This typically occurs when:
|
|
7
|
-
* - Trying to insert a record with a foreign key that doesn't exist
|
|
8
|
-
* - Trying to delete a record that is referenced by other records
|
|
9
|
-
* - Trying to update a foreign key to a non-existent value
|
|
10
|
-
*/
|
|
11
|
-
export declare class ForeignKeyConstraintError extends DatabaseError {
|
|
12
|
-
constructor(field?: string);
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=foreign-key-constraint.error.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"foreign-key-constraint.error.d.ts","sourceRoot":"","sources":["../../../src/database/errors/foreign-key-constraint.error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD;;;;;;;;GAQG;AACH,qBAAa,yBAA0B,SAAQ,aAAa;gBAC9C,KAAK,CAAC,EAAE,MAAM;CAK3B"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { ERROR_CODES } from 'stratal/errors';
|
|
2
|
-
import { DatabaseError } from './database-error';
|
|
3
|
-
/**
|
|
4
|
-
* ForeignKeyConstraintError
|
|
5
|
-
*
|
|
6
|
-
* Thrown when a database foreign key constraint is violated.
|
|
7
|
-
* This typically occurs when:
|
|
8
|
-
* - Trying to insert a record with a foreign key that doesn't exist
|
|
9
|
-
* - Trying to delete a record that is referenced by other records
|
|
10
|
-
* - Trying to update a foreign key to a non-existent value
|
|
11
|
-
*/
|
|
12
|
-
export class ForeignKeyConstraintError extends DatabaseError {
|
|
13
|
-
constructor(field) {
|
|
14
|
-
super('errors.databaseForeignKeyConstraint', ERROR_CODES.DATABASE.FOREIGN_KEY_CONSTRAINT, {
|
|
15
|
-
field,
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=foreign-key-constraint.error.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"foreign-key-constraint.error.js","sourceRoot":"","sources":["../../../src/database/errors/foreign-key-constraint.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD;;;;;;;;GAQG;AACH,MAAM,OAAO,yBAA0B,SAAQ,aAAa;IAC1D,YAAY,KAAc;QACxB,KAAK,CAAC,qCAAqC,EAAE,WAAW,CAAC,QAAQ,CAAC,sBAAsB,EAAE;YACxF,KAAK;SACN,CAAC,CAAA;IACJ,CAAC;CACF"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { DatabaseError } from './database-error';
|
|
2
|
-
/**
|
|
3
|
-
* Transform ZenStack ORM errors into ApplicationError instances
|
|
4
|
-
*
|
|
5
|
-
* This function maps ORMError codes to generic database error classes.
|
|
6
|
-
* Services can catch these generic errors and optionally refine them to
|
|
7
|
-
* more specific domain errors if needed.
|
|
8
|
-
*
|
|
9
|
-
* @param error - The error thrown by ZenStack ORM
|
|
10
|
-
* @returns An ApplicationError instance
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* ```typescript
|
|
14
|
-
* try {
|
|
15
|
-
* await db.user.create({ data: { email: 'existing@example.com' } })
|
|
16
|
-
* } catch (error) {
|
|
17
|
-
* throw fromZenStackError(error) // Becomes UniqueConstraintError or other
|
|
18
|
-
* }
|
|
19
|
-
* ```
|
|
20
|
-
*/
|
|
21
|
-
export declare function fromZenStackError(error: unknown): DatabaseError;
|
|
22
|
-
//# sourceMappingURL=from-zenstack-error.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"from-zenstack-error.d.ts","sourceRoot":"","sources":["../../../src/database/errors/from-zenstack-error.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAKhD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,CAwD/D"}
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { ORMError, ORMErrorReason } from '@zenstackhq/orm';
|
|
2
|
-
import { ERROR_CODES } from 'stratal/errors';
|
|
3
|
-
import { DatabaseError } from './database-error';
|
|
4
|
-
import { ForeignKeyConstraintError } from './foreign-key-constraint.error';
|
|
5
|
-
import { RecordNotFoundError } from './record-not-found.error';
|
|
6
|
-
import { UniqueConstraintError } from './unique-constraint.error';
|
|
7
|
-
/**
|
|
8
|
-
* Transform ZenStack ORM errors into ApplicationError instances
|
|
9
|
-
*
|
|
10
|
-
* This function maps ORMError codes to generic database error classes.
|
|
11
|
-
* Services can catch these generic errors and optionally refine them to
|
|
12
|
-
* more specific domain errors if needed.
|
|
13
|
-
*
|
|
14
|
-
* @param error - The error thrown by ZenStack ORM
|
|
15
|
-
* @returns An ApplicationError instance
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* ```typescript
|
|
19
|
-
* try {
|
|
20
|
-
* await db.user.create({ data: { email: 'existing@example.com' } })
|
|
21
|
-
* } catch (error) {
|
|
22
|
-
* throw fromZenStackError(error) // Becomes UniqueConstraintError or other
|
|
23
|
-
* }
|
|
24
|
-
* ```
|
|
25
|
-
*/
|
|
26
|
-
export function fromZenStackError(error) {
|
|
27
|
-
// Handle ZenStack ORM Errors
|
|
28
|
-
if (error instanceof ORMError) {
|
|
29
|
-
const ormError = error;
|
|
30
|
-
switch (ormError.reason) {
|
|
31
|
-
case ORMErrorReason.NOT_FOUND:
|
|
32
|
-
return new RecordNotFoundError(ormError.model);
|
|
33
|
-
case ORMErrorReason.DB_QUERY_ERROR:
|
|
34
|
-
// Parse database-specific error codes
|
|
35
|
-
return parseDatabaseError(ormError);
|
|
36
|
-
case ORMErrorReason.INVALID_INPUT:
|
|
37
|
-
return new DatabaseError('errors.databaseInvalidQuery', ERROR_CODES.DATABASE.GENERIC, { message: ormError.message });
|
|
38
|
-
case ORMErrorReason.CONFIG_ERROR:
|
|
39
|
-
return new DatabaseError('errors.databaseConnectionFailed', ERROR_CODES.DATABASE.CONNECTION_FAILED, { message: ormError.message });
|
|
40
|
-
case ORMErrorReason.NOT_SUPPORTED:
|
|
41
|
-
return new DatabaseError('errors.databaseGeneric', ERROR_CODES.DATABASE.GENERIC, { message: ormError.message, reason: 'Operation not supported' });
|
|
42
|
-
case ORMErrorReason.INTERNAL_ERROR:
|
|
43
|
-
return new DatabaseError('errors.databaseGeneric', ERROR_CODES.DATABASE.GENERIC, { message: ormError.message });
|
|
44
|
-
default:
|
|
45
|
-
return new DatabaseError('errors.databaseGeneric', ERROR_CODES.DATABASE.GENERIC, { message: ormError.message, reason: ormError.reason });
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
// Handle unknown errors
|
|
49
|
-
return new DatabaseError('errors.databaseGeneric', ERROR_CODES.DATABASE.GENERIC, { originalError: String(error) });
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Parse database-specific errors from the dbErrorCode field
|
|
53
|
-
*/
|
|
54
|
-
function parseDatabaseError(error) {
|
|
55
|
-
// Cast dbErrorCode to string since ZenStack types it loosely
|
|
56
|
-
const dbErrorCode = error.dbErrorCode;
|
|
57
|
-
// PostgreSQL error codes
|
|
58
|
-
// https://www.postgresql.org/docs/current/errcodes-appendix.html
|
|
59
|
-
if (dbErrorCode) {
|
|
60
|
-
// Class 23 - Integrity Constraint Violation
|
|
61
|
-
if (dbErrorCode === '23505') {
|
|
62
|
-
// Unique violation
|
|
63
|
-
return new UniqueConstraintError([error.model ?? 'unknown']);
|
|
64
|
-
}
|
|
65
|
-
if (dbErrorCode === '23503') {
|
|
66
|
-
// Foreign key violation
|
|
67
|
-
return new ForeignKeyConstraintError(error.model ?? 'unknown');
|
|
68
|
-
}
|
|
69
|
-
if (dbErrorCode === '23502') {
|
|
70
|
-
// Not null violation
|
|
71
|
-
return new DatabaseError('errors.databaseNullConstraint', ERROR_CODES.DATABASE.NULL_CONSTRAINT, { dbErrorCode, message: error.dbErrorMessage });
|
|
72
|
-
}
|
|
73
|
-
if (dbErrorCode === '23514') {
|
|
74
|
-
// Check constraint violation
|
|
75
|
-
return new DatabaseError('errors.databaseConstraintFailed', ERROR_CODES.DATABASE.GENERIC, { dbErrorCode, message: error.dbErrorMessage });
|
|
76
|
-
}
|
|
77
|
-
// Class 42 - Syntax Error or Access Rule Violation
|
|
78
|
-
if (dbErrorCode.startsWith('42')) {
|
|
79
|
-
if (dbErrorCode === '42P01') {
|
|
80
|
-
// Undefined table
|
|
81
|
-
return new DatabaseError('errors.databaseTableNotFound', ERROR_CODES.DATABASE.GENERIC, { dbErrorCode, message: error.dbErrorMessage });
|
|
82
|
-
}
|
|
83
|
-
if (dbErrorCode === '42703') {
|
|
84
|
-
// Undefined column
|
|
85
|
-
return new DatabaseError('errors.databaseColumnNotFound', ERROR_CODES.DATABASE.GENERIC, { dbErrorCode, message: error.dbErrorMessage });
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
// Class 08 - Connection Exception
|
|
89
|
-
if (dbErrorCode.startsWith('08')) {
|
|
90
|
-
return new DatabaseError('errors.databaseConnectionFailed', ERROR_CODES.DATABASE.CONNECTION_FAILED, { dbErrorCode, message: error.dbErrorMessage });
|
|
91
|
-
}
|
|
92
|
-
// Class 57 - Operator Intervention
|
|
93
|
-
if (dbErrorCode === '57014') {
|
|
94
|
-
// Query cancelled
|
|
95
|
-
return new DatabaseError('errors.databaseTimeout', ERROR_CODES.DATABASE.TIMEOUT, { dbErrorCode, message: error.dbErrorMessage });
|
|
96
|
-
}
|
|
97
|
-
// Class 40 - Transaction Rollback
|
|
98
|
-
if (dbErrorCode.startsWith('40')) {
|
|
99
|
-
return new DatabaseError('errors.databaseTransactionConflict', ERROR_CODES.DATABASE.TRANSACTION_CONFLICT, { dbErrorCode, message: error.dbErrorMessage });
|
|
100
|
-
}
|
|
101
|
-
// Class 53 - Insufficient Resources
|
|
102
|
-
if (dbErrorCode === '53300') {
|
|
103
|
-
// Too many connections
|
|
104
|
-
return new DatabaseError('errors.databaseTooManyConnections', ERROR_CODES.DATABASE.TOO_MANY_CONNECTIONS, { dbErrorCode, message: error.dbErrorMessage });
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
// Default database error
|
|
108
|
-
return new DatabaseError('errors.databaseGeneric', ERROR_CODES.DATABASE.GENERIC, {
|
|
109
|
-
dbErrorCode,
|
|
110
|
-
dbErrorMessage: error.dbErrorMessage,
|
|
111
|
-
sql: error.sql,
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
//# sourceMappingURL=from-zenstack-error.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"from-zenstack-error.js","sourceRoot":"","sources":["../../../src/database/errors/from-zenstack-error.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export * from './database-config.error';
|
|
2
|
-
export * from './database-error';
|
|
3
|
-
export * from './foreign-key-constraint.error';
|
|
4
|
-
export * from './invalid-error-code-range.error';
|
|
5
|
-
export * from './record-not-found.error';
|
|
6
|
-
export * from './unique-constraint.error';
|
|
7
|
-
export * from './from-zenstack-error';
|
|
8
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/database/errors/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,kCAAkC,CAAA;AAChD,cAAc,0BAA0B,CAAA;AACxC,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export * from './database-config.error';
|
|
2
|
-
export * from './database-error';
|
|
3
|
-
export * from './foreign-key-constraint.error';
|
|
4
|
-
export * from './invalid-error-code-range.error';
|
|
5
|
-
export * from './record-not-found.error';
|
|
6
|
-
export * from './unique-constraint.error';
|
|
7
|
-
export * from './from-zenstack-error';
|
|
8
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/database/errors/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,kCAAkC,CAAA;AAChD,cAAc,0BAA0B,CAAA;AACxC,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { ApplicationError } from 'stratal/errors';
|
|
2
|
-
/**
|
|
3
|
-
* InvalidErrorCodeRangeError
|
|
4
|
-
*
|
|
5
|
-
* Thrown when a DatabaseError subclass is constructed with an error code
|
|
6
|
-
* outside the valid database error range (2000-2999).
|
|
7
|
-
* This is a developer-facing error to enforce error code conventions.
|
|
8
|
-
*/
|
|
9
|
-
export declare class InvalidErrorCodeRangeError extends ApplicationError {
|
|
10
|
-
constructor(code: number, expectedRange: string);
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=invalid-error-code-range.error.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"invalid-error-code-range.error.d.ts","sourceRoot":"","sources":["../../../src/database/errors/invalid-error-code-range.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAe,MAAM,gBAAgB,CAAA;AAE9D;;;;;;GAMG;AACH,qBAAa,0BAA2B,SAAQ,gBAAgB;gBAClD,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;CAOhD"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { ApplicationError, ERROR_CODES } from 'stratal/errors';
|
|
2
|
-
/**
|
|
3
|
-
* InvalidErrorCodeRangeError
|
|
4
|
-
*
|
|
5
|
-
* Thrown when a DatabaseError subclass is constructed with an error code
|
|
6
|
-
* outside the valid database error range (2000-2999).
|
|
7
|
-
* This is a developer-facing error to enforce error code conventions.
|
|
8
|
-
*/
|
|
9
|
-
export class InvalidErrorCodeRangeError extends ApplicationError {
|
|
10
|
-
constructor(code, expectedRange) {
|
|
11
|
-
super('errors.invalidErrorCodeRange', ERROR_CODES.SYSTEM.INVALID_ERROR_CODE_RANGE, { code, expectedRange });
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=invalid-error-code-range.error.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"invalid-error-code-range.error.js","sourceRoot":"","sources":["../../../src/database/errors/invalid-error-code-range.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAE9D;;;;;;GAMG;AACH,MAAM,OAAO,0BAA2B,SAAQ,gBAAgB;IAC9D,YAAY,IAAY,EAAE,aAAqB;QAC7C,KAAK,CACH,8BAA8B,EAC9B,WAAW,CAAC,MAAM,CAAC,wBAAwB,EAC3C,EAAE,IAAI,EAAE,aAAa,EAAE,CACxB,CAAA;IACH,CAAC;CACF"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { DatabaseError } from './database-error';
|
|
2
|
-
/**
|
|
3
|
-
* RecordNotFoundError
|
|
4
|
-
*
|
|
5
|
-
* Generic error thrown when a database record is not found.
|
|
6
|
-
* This is typically thrown when a findUnique or findFirst operation
|
|
7
|
-
* returns null, or when a required record doesn't exist.
|
|
8
|
-
*
|
|
9
|
-
* Services should catch this and optionally refine it to a more specific
|
|
10
|
-
* domain error (e.g., NoteNotFoundError, UserNotFoundError).
|
|
11
|
-
*/
|
|
12
|
-
export declare class RecordNotFoundError extends DatabaseError {
|
|
13
|
-
constructor(details?: string);
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=record-not-found.error.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"record-not-found.error.d.ts","sourceRoot":"","sources":["../../../src/database/errors/record-not-found.error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD;;;;;;;;;GASG;AACH,qBAAa,mBAAoB,SAAQ,aAAa;gBACxC,OAAO,CAAC,EAAE,MAAM;CAK7B"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { ERROR_CODES } from 'stratal/errors';
|
|
2
|
-
import { DatabaseError } from './database-error';
|
|
3
|
-
/**
|
|
4
|
-
* RecordNotFoundError
|
|
5
|
-
*
|
|
6
|
-
* Generic error thrown when a database record is not found.
|
|
7
|
-
* This is typically thrown when a findUnique or findFirst operation
|
|
8
|
-
* returns null, or when a required record doesn't exist.
|
|
9
|
-
*
|
|
10
|
-
* Services should catch this and optionally refine it to a more specific
|
|
11
|
-
* domain error (e.g., NoteNotFoundError, UserNotFoundError).
|
|
12
|
-
*/
|
|
13
|
-
export class RecordNotFoundError extends DatabaseError {
|
|
14
|
-
constructor(details) {
|
|
15
|
-
super('errors.databaseRecordNotFound', ERROR_CODES.DATABASE.RECORD_NOT_FOUND, {
|
|
16
|
-
details,
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=record-not-found.error.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"record-not-found.error.js","sourceRoot":"","sources":["../../../src/database/errors/record-not-found.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD;;;;;;;;;GASG;AACH,MAAM,OAAO,mBAAoB,SAAQ,aAAa;IACpD,YAAY,OAAgB;QAC1B,KAAK,CAAC,+BAA+B,EAAE,WAAW,CAAC,QAAQ,CAAC,gBAAgB,EAAE;YAC5E,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;CACF"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { DatabaseError } from './database-error';
|
|
2
|
-
/**
|
|
3
|
-
* UniqueConstraintError
|
|
4
|
-
*
|
|
5
|
-
* Thrown when a database unique constraint is violated.
|
|
6
|
-
* This typically occurs when trying to insert or update a record
|
|
7
|
-
* with a value that already exists in a unique column.
|
|
8
|
-
*
|
|
9
|
-
* Services should catch this and optionally refine it to a more specific
|
|
10
|
-
* domain error (e.g., UserEmailAlreadyExistsError).
|
|
11
|
-
*/
|
|
12
|
-
export declare class UniqueConstraintError extends DatabaseError {
|
|
13
|
-
constructor(fields?: string[]);
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=unique-constraint.error.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"unique-constraint.error.d.ts","sourceRoot":"","sources":["../../../src/database/errors/unique-constraint.error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD;;;;;;;;;GASG;AACH,qBAAa,qBAAsB,SAAQ,aAAa;gBAC1C,MAAM,CAAC,EAAE,MAAM,EAAE;CAK9B"}
|