@zenstackhq/runtime 1.0.0-alpha.99 → 1.0.0-beta.10
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/browser/index.d.mts +13 -0
- package/browser/index.d.ts +13 -0
- package/browser/index.js +69 -0
- package/browser/index.js.map +1 -0
- package/browser/index.mjs +31 -0
- package/browser/index.mjs.map +1 -0
- package/constants.d.ts +31 -0
- package/constants.js +34 -1
- package/constants.js.map +1 -1
- package/enhancements/index.d.ts +5 -0
- package/enhancements/index.js +5 -0
- package/enhancements/index.js.map +1 -1
- package/enhancements/model-meta.d.ts +4 -0
- package/enhancements/model-meta.js +26 -5
- package/enhancements/model-meta.js.map +1 -1
- package/enhancements/nested-write-vistor.d.ts +17 -16
- package/enhancements/nested-write-vistor.js +86 -59
- package/enhancements/nested-write-vistor.js.map +1 -1
- package/enhancements/omit.d.ts +10 -1
- package/enhancements/omit.js +4 -3
- package/enhancements/omit.js.map +1 -1
- package/enhancements/password.d.ts +10 -1
- package/enhancements/password.js +3 -2
- package/enhancements/password.js.map +1 -1
- package/enhancements/policy/handler.d.ts +6 -3
- package/enhancements/policy/handler.js +99 -39
- package/enhancements/policy/handler.js.map +1 -1
- package/enhancements/policy/index.d.ts +23 -2
- package/enhancements/policy/index.js +39 -6
- package/enhancements/policy/index.js.map +1 -1
- package/enhancements/policy/logger.d.ts +9 -1
- package/enhancements/policy/logger.js +14 -3
- package/enhancements/policy/logger.js.map +1 -1
- package/enhancements/policy/policy-utils.d.ts +13 -9
- package/enhancements/policy/policy-utils.js +250 -138
- package/enhancements/policy/policy-utils.js.map +1 -1
- package/enhancements/preset.d.ts +9 -7
- package/enhancements/preset.js +3 -6
- package/enhancements/preset.js.map +1 -1
- package/enhancements/proxy.js +62 -1
- package/enhancements/proxy.js.map +1 -1
- package/enhancements/types.d.ts +10 -1
- package/enhancements/utils.d.ts +12 -4
- package/enhancements/utils.js +97 -11
- package/enhancements/utils.js.map +1 -1
- package/enhancements/where-visitor.d.ts +33 -0
- package/enhancements/where-visitor.js +87 -0
- package/enhancements/where-visitor.js.map +1 -0
- package/index.d.ts +2 -2
- package/index.js +2 -2
- package/index.js.map +1 -1
- package/package.json +33 -12
- package/version.js +1 -0
- package/version.js.map +1 -1
- package/zod/index.d.ts +2 -0
- package/zod/index.js +4 -0
- package/zod/input.d.ts +1 -0
- package/zod/input.js +8 -0
- package/zod/models.d.ts +1 -0
- package/zod/models.js +8 -0
- package/serialization-utils.d.ts +0 -1
- package/serialization-utils.js +0 -22
- package/serialization-utils.js.map +0 -1
- package/zod.d.ts +0 -10
- package/zod.js +0 -17
- package/zod.js.map +0 -1
|
@@ -3,8 +3,16 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export declare class Logger {
|
|
5
5
|
private readonly prisma;
|
|
6
|
+
private emitter;
|
|
7
|
+
private eventNames;
|
|
6
8
|
constructor(prisma: any);
|
|
7
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Checks if a log level is enabled.
|
|
11
|
+
*/
|
|
12
|
+
enabled(level: 'info' | 'warn' | 'error'): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Generates a message with the given level.
|
|
15
|
+
*/
|
|
8
16
|
log(level: 'info' | 'warn' | 'error', message: string): void;
|
|
9
17
|
/**
|
|
10
18
|
* Generates a log message with info level.
|
|
@@ -8,11 +8,22 @@ exports.Logger = void 0;
|
|
|
8
8
|
class Logger {
|
|
9
9
|
constructor(prisma) {
|
|
10
10
|
this.prisma = prisma;
|
|
11
|
-
|
|
12
|
-
get emitter() {
|
|
11
|
+
this.eventNames = [];
|
|
13
12
|
const engine = this.prisma.getEngine();
|
|
14
|
-
|
|
13
|
+
this.emitter = engine ? engine.logEmitter : undefined;
|
|
14
|
+
if (this.emitter) {
|
|
15
|
+
this.eventNames = this.emitter.eventNames();
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Checks if a log level is enabled.
|
|
20
|
+
*/
|
|
21
|
+
enabled(level) {
|
|
22
|
+
return !!this.eventNames.includes(level);
|
|
15
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* Generates a message with the given level.
|
|
26
|
+
*/
|
|
16
27
|
log(level, message) {
|
|
17
28
|
var _a;
|
|
18
29
|
(_a = this.emitter) === null || _a === void 0 ? void 0 : _a.emit(level, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/enhancements/policy/logger.ts"],"names":[],"mappings":";AAAA,uDAAuD;;;AAIvD;;GAEG;AACH,MAAa,MAAM;
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/enhancements/policy/logger.ts"],"names":[],"mappings":";AAAA,uDAAuD;;;AAIvD;;GAEG;AACH,MAAa,MAAM;IAIf,YAA6B,MAAW;QAAX,WAAM,GAAN,MAAM,CAAK;QAFhC,eAAU,GAA2B,EAAE,CAAC;QAG5C,MAAM,MAAM,GAAI,IAAI,CAAC,MAAc,CAAC,SAAS,EAAE,CAAC;QAChD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAE,MAAM,CAAC,UAA2B,CAAC,CAAC,CAAC,SAAS,CAAC;QACxE,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;SAC/C;IACL,CAAC;IAED;;OAEG;IACI,OAAO,CAAC,KAAgC;QAC3C,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACI,GAAG,CAAC,KAAgC,EAAE,OAAe;;QACxD,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC,KAAK,EAAE;YACtB,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,OAAO;YACP,MAAM,EAAE,UAAU;SACrB,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACI,IAAI,CAAC,OAAe;QACvB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACI,IAAI,CAAC,OAAe;QACvB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,OAAe;QACxB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/B,CAAC;CACJ;AAlDD,wBAkDC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { CrudFailureReason } from '@zenstackhq/sdk';
|
|
1
|
+
import { CrudFailureReason } from '../../constants';
|
|
3
2
|
import { AuthUser, DbClientContract, DbOperations, FieldInfo, PolicyOperationKind, PrismaWriteActionType } from '../../types';
|
|
4
|
-
import { ModelMeta, PolicyDef } from '../types';
|
|
3
|
+
import type { ModelMeta, PolicyDef, ZodSchemas } from '../types';
|
|
5
4
|
/**
|
|
6
5
|
* Access policy enforcement utilities
|
|
7
6
|
*/
|
|
@@ -9,9 +8,11 @@ export declare class PolicyUtil {
|
|
|
9
8
|
private readonly db;
|
|
10
9
|
private readonly modelMeta;
|
|
11
10
|
private readonly policy;
|
|
11
|
+
private readonly zodSchemas;
|
|
12
12
|
private readonly user?;
|
|
13
|
+
private readonly logPrismaQuery?;
|
|
13
14
|
private readonly logger;
|
|
14
|
-
constructor(db: DbClientContract, modelMeta: ModelMeta, policy: PolicyDef, user?: AuthUser | undefined);
|
|
15
|
+
constructor(db: DbClientContract, modelMeta: ModelMeta, policy: PolicyDef, zodSchemas: ZodSchemas | undefined, user?: AuthUser | undefined, logPrismaQuery?: boolean | undefined);
|
|
15
16
|
/**
|
|
16
17
|
* Creates a conjunction of a list of query conditions.
|
|
17
18
|
*/
|
|
@@ -30,7 +31,8 @@ export declare class PolicyUtil {
|
|
|
30
31
|
* @returns true if operation is unconditionally allowed, false if unconditionally denied,
|
|
31
32
|
* otherwise returns a guard object
|
|
32
33
|
*/
|
|
33
|
-
getAuthGuard(model: string, operation: PolicyOperationKind, preValue?: any):
|
|
34
|
+
getAuthGuard(model: string, operation: PolicyOperationKind, preValue?: any): boolean | object;
|
|
35
|
+
private hasValidation;
|
|
34
36
|
private getPreValueSelect;
|
|
35
37
|
private getModelSchema;
|
|
36
38
|
/**
|
|
@@ -63,15 +65,16 @@ export declare class PolicyUtil {
|
|
|
63
65
|
* (which can't be trimmed at query time) and removes fields that should be
|
|
64
66
|
* omitted.
|
|
65
67
|
*/
|
|
66
|
-
postProcessForRead(
|
|
68
|
+
postProcessForRead(data: any, model: string, args: any, operation: PolicyOperationKind): Promise<void>;
|
|
67
69
|
/**
|
|
68
70
|
* Process Prisma write actions.
|
|
69
71
|
*/
|
|
70
72
|
processWrite(model: string, action: PrismaWriteActionType, args: any, writeAction: (dbOps: DbOperations, writeArgs: any) => Promise<unknown>): Promise<any>;
|
|
73
|
+
private getModelField;
|
|
71
74
|
private transaction;
|
|
72
|
-
deniedByPolicy(model: string, operation: PolicyOperationKind, extra?: string, reason?: CrudFailureReason):
|
|
73
|
-
notFound(model: string):
|
|
74
|
-
unknownError(message: string):
|
|
75
|
+
deniedByPolicy(model: string, operation: PolicyOperationKind, extra?: string, reason?: CrudFailureReason): Error;
|
|
76
|
+
notFound(model: string): Error;
|
|
77
|
+
unknownError(message: string): void;
|
|
75
78
|
/**
|
|
76
79
|
* Given a filter, check if applying access policy filtering will result
|
|
77
80
|
* in data being trimmed, and if so, throw an error.
|
|
@@ -91,4 +94,5 @@ export declare class PolicyUtil {
|
|
|
91
94
|
* Gets id field value from an entity.
|
|
92
95
|
*/
|
|
93
96
|
getEntityIds(model: string, entityData: any): Record<string, unknown>;
|
|
97
|
+
private get shouldLogQuery();
|
|
94
98
|
}
|