@zenstackhq/runtime 2.4.1 → 2.5.1
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.js +3 -2
- package/browser/index.js.map +1 -1
- package/browser/index.mjs +3 -2
- package/browser/index.mjs.map +1 -1
- package/constants.d.ts +1 -1
- package/constants.js +1 -1
- package/constants.js.map +1 -1
- package/edge.d.ts +1 -7
- package/edge.js +1 -7
- package/edge.js.map +1 -1
- package/enhance-edge.d.ts +1 -0
- package/enhance-edge.js +10 -0
- package/enhancements/edge/create-enhancement.d.ts +37 -0
- package/enhancements/{create-enhancement.js → edge/create-enhancement.js} +2 -2
- package/enhancements/edge/create-enhancement.js.map +1 -0
- package/enhancements/{default-auth.d.ts → edge/default-auth.d.ts} +2 -1
- package/enhancements/{default-auth.js → edge/default-auth.js} +1 -1
- package/enhancements/edge/default-auth.js.map +1 -0
- package/enhancements/{delegate.d.ts → edge/delegate.d.ts} +1 -1
- package/enhancements/{delegate.js → edge/delegate.js} +16 -3
- package/enhancements/edge/delegate.js.map +1 -0
- package/enhancements/{index.d.ts → edge/index.d.ts} +1 -1
- package/enhancements/{index.js → edge/index.js} +1 -1
- package/enhancements/edge/index.js.map +1 -0
- package/enhancements/edge/logger.js.map +1 -0
- package/enhancements/{omit.js → edge/omit.js} +33 -3
- package/enhancements/edge/omit.js.map +1 -0
- package/enhancements/{password.js → edge/password.js} +2 -2
- package/enhancements/edge/password.js.map +1 -0
- package/enhancements/edge/policy/check-utils.d.ts +5 -0
- package/enhancements/edge/policy/check-utils.js +20 -0
- package/enhancements/edge/policy/check-utils.js.map +1 -0
- package/enhancements/{policy → edge/policy}/handler.d.ts +24 -9
- package/enhancements/{policy → edge/policy}/handler.js +67 -91
- package/enhancements/edge/policy/handler.js.map +1 -0
- package/enhancements/{policy → edge/policy}/index.d.ts +2 -1
- package/enhancements/{policy → edge/policy}/index.js +2 -2
- package/enhancements/edge/policy/index.js.map +1 -0
- package/enhancements/{policy → edge/policy}/policy-utils.d.ts +5 -5
- package/enhancements/{policy → edge/policy}/policy-utils.js +27 -21
- package/enhancements/edge/policy/policy-utils.js.map +1 -0
- package/enhancements/{promise.d.ts → edge/promise.d.ts} +1 -1
- package/enhancements/{promise.js → edge/promise.js} +1 -1
- package/enhancements/edge/promise.js.map +1 -0
- package/enhancements/{proxy.d.ts → edge/proxy.d.ts} +26 -9
- package/enhancements/{proxy.js → edge/proxy.js} +31 -7
- package/enhancements/edge/proxy.js.map +1 -0
- package/enhancements/{query-utils.d.ts → edge/query-utils.d.ts} +2 -2
- package/enhancements/{query-utils.js → edge/query-utils.js} +3 -4
- package/enhancements/edge/query-utils.js.map +1 -0
- package/enhancements/{types.d.ts → edge/types.d.ts} +5 -12
- package/enhancements/{types.js.map → edge/types.js.map} +1 -1
- package/enhancements/{utils.d.ts → edge/utils.d.ts} +2 -2
- package/enhancements/{utils.js → edge/utils.js} +2 -2
- package/enhancements/edge/utils.js.map +1 -0
- package/enhancements/{where-visitor.d.ts → edge/where-visitor.d.ts} +1 -1
- package/enhancements/{where-visitor.js → edge/where-visitor.js} +1 -1
- package/enhancements/edge/where-visitor.js.map +1 -0
- package/enhancements/node/create-enhancement.d.ts +37 -0
- package/enhancements/node/create-enhancement.js +79 -0
- package/enhancements/node/create-enhancement.js.map +1 -0
- package/enhancements/node/default-auth.d.ts +8 -0
- package/enhancements/node/default-auth.js +129 -0
- package/enhancements/node/default-auth.js.map +1 -0
- package/enhancements/node/delegate.d.ts +69 -0
- package/enhancements/node/delegate.js +1006 -0
- package/enhancements/node/delegate.js.map +1 -0
- package/enhancements/node/index.d.ts +4 -0
- package/enhancements/node/index.js +21 -0
- package/enhancements/node/index.js.map +1 -0
- package/enhancements/node/logger.d.ts +29 -0
- package/enhancements/node/logger.js +65 -0
- package/enhancements/node/logger.js.map +1 -0
- package/enhancements/node/omit.d.ts +7 -0
- package/enhancements/node/omit.js +93 -0
- package/enhancements/node/omit.js.map +1 -0
- package/enhancements/node/password.d.ts +7 -0
- package/enhancements/node/password.js +65 -0
- package/enhancements/node/password.js.map +1 -0
- package/enhancements/node/policy/check-utils.d.ts +5 -0
- package/enhancements/node/policy/check-utils.js +87 -0
- package/enhancements/node/policy/check-utils.js.map +1 -0
- package/enhancements/node/policy/constraint-solver.js.map +1 -0
- package/enhancements/node/policy/handler.d.ts +94 -0
- package/enhancements/node/policy/handler.js +1357 -0
- package/enhancements/node/policy/handler.js.map +1 -0
- package/enhancements/node/policy/index.d.ts +13 -0
- package/enhancements/node/policy/index.js +42 -0
- package/enhancements/node/policy/index.js.map +1 -0
- package/enhancements/node/policy/policy-utils.d.ts +184 -0
- package/enhancements/node/policy/policy-utils.js +1296 -0
- package/enhancements/node/policy/policy-utils.js.map +1 -0
- package/enhancements/node/promise.d.ts +15 -0
- package/enhancements/node/promise.js +99 -0
- package/enhancements/node/promise.js.map +1 -0
- package/enhancements/node/proxy.d.ts +118 -0
- package/enhancements/node/proxy.js +267 -0
- package/enhancements/node/proxy.js.map +1 -0
- package/enhancements/node/query-utils.d.ts +38 -0
- package/enhancements/node/query-utils.js +185 -0
- package/enhancements/node/query-utils.js.map +1 -0
- package/enhancements/node/types.d.ts +224 -0
- package/enhancements/node/types.js +3 -0
- package/enhancements/node/types.js.map +1 -0
- package/enhancements/node/utils.d.ts +11 -0
- package/enhancements/node/utils.js +49 -0
- package/enhancements/node/utils.js.map +1 -0
- package/enhancements/node/where-visitor.d.ts +32 -0
- package/enhancements/node/where-visitor.js +86 -0
- package/enhancements/node/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 +14 -6
- package/types.d.ts +62 -0
- package/enhancements/create-enhancement.d.ts +0 -78
- package/enhancements/create-enhancement.js.map +0 -1
- package/enhancements/default-auth.js.map +0 -1
- package/enhancements/delegate.js.map +0 -1
- package/enhancements/index.js.map +0 -1
- package/enhancements/logger.js.map +0 -1
- package/enhancements/omit.js.map +0 -1
- package/enhancements/password.js.map +0 -1
- package/enhancements/policy/constraint-solver.js.map +0 -1
- package/enhancements/policy/handler.js.map +0 -1
- package/enhancements/policy/index.js.map +0 -1
- package/enhancements/policy/policy-utils.js.map +0 -1
- package/enhancements/promise.js.map +0 -1
- package/enhancements/proxy.js.map +0 -1
- package/enhancements/query-utils.js.map +0 -1
- package/enhancements/utils.js.map +0 -1
- package/enhancements/where-visitor.js.map +0 -1
- /package/enhancements/{logger.d.ts → edge/logger.d.ts} +0 -0
- /package/enhancements/{logger.js → edge/logger.js} +0 -0
- /package/enhancements/{omit.d.ts → edge/omit.d.ts} +0 -0
- /package/enhancements/{password.d.ts → edge/password.d.ts} +0 -0
- /package/enhancements/{types.js → edge/types.js} +0 -0
- /package/enhancements/{policy → node/policy}/constraint-solver.d.ts +0 -0
- /package/enhancements/{policy → node/policy}/constraint-solver.js +0 -0
|
@@ -12,7 +12,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
exports.createDeferredPromise = createDeferredPromise;
|
|
14
14
|
exports.createFluentPromise = createFluentPromise;
|
|
15
|
-
const cross_1 = require("
|
|
15
|
+
const cross_1 = require("../../cross");
|
|
16
16
|
/**
|
|
17
17
|
* Creates a promise that only executes when it's awaited or .then() is called.
|
|
18
18
|
* @see https://github.com/prisma/prisma/blob/main/packages/client/src/runtime/core/request/createPrismaPromise.ts
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promise.js","sourceRoot":"","sources":["../../../src/enhancements/edge/promise.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type { DbClientContract } from '
|
|
1
|
+
import { type ModelMeta } from '../../cross';
|
|
2
|
+
import type { DbClientContract, ErrorTransformer } from '../../types';
|
|
3
3
|
import type { InternalEnhancementOptions } from './create-enhancement';
|
|
4
4
|
/**
|
|
5
5
|
* Prisma batch write operation result
|
|
@@ -7,10 +7,6 @@ import type { InternalEnhancementOptions } from './create-enhancement';
|
|
|
7
7
|
export type BatchResult = {
|
|
8
8
|
count: number;
|
|
9
9
|
};
|
|
10
|
-
/**
|
|
11
|
-
* Function for transforming errors.
|
|
12
|
-
*/
|
|
13
|
-
export type ErrorTransformer = (error: unknown) => unknown;
|
|
14
10
|
/**
|
|
15
11
|
* Interface for proxy that intercepts Prisma operations.
|
|
16
12
|
*/
|
|
@@ -39,6 +35,7 @@ export interface PrismaProxyHandler {
|
|
|
39
35
|
groupBy(args: any): Promise<unknown>;
|
|
40
36
|
count(args: any): Promise<unknown | number>;
|
|
41
37
|
subscribe(args: any): Promise<unknown>;
|
|
38
|
+
stream(args: any): Promise<unknown>;
|
|
42
39
|
}
|
|
43
40
|
/**
|
|
44
41
|
* All Prisma operation names
|
|
@@ -85,15 +82,35 @@ export declare class DefaultPrismaProxyHandler implements PrismaProxyHandler {
|
|
|
85
82
|
aggregate(args: any): Promise<unknown>;
|
|
86
83
|
groupBy(args: any): Promise<unknown>;
|
|
87
84
|
count(args: any): Promise<unknown>;
|
|
88
|
-
subscribe(args: any): Promise<
|
|
85
|
+
subscribe(args: any): Promise<{
|
|
86
|
+
[Symbol.asyncIterator]: () => {
|
|
87
|
+
next: () => Promise<{
|
|
88
|
+
done: any;
|
|
89
|
+
value: any;
|
|
90
|
+
}>;
|
|
91
|
+
return: () => any;
|
|
92
|
+
throw: () => any;
|
|
93
|
+
};
|
|
94
|
+
}>;
|
|
95
|
+
stream(args: any): Promise<{
|
|
96
|
+
[Symbol.asyncIterator]: () => {
|
|
97
|
+
next: () => Promise<{
|
|
98
|
+
done: any;
|
|
99
|
+
value: any;
|
|
100
|
+
}>;
|
|
101
|
+
return: () => any;
|
|
102
|
+
throw: () => any;
|
|
103
|
+
};
|
|
104
|
+
}>;
|
|
105
|
+
private doSubscribeStream;
|
|
89
106
|
/**
|
|
90
107
|
* Processes result entities before they're returned
|
|
91
108
|
*/
|
|
92
|
-
protected processResultEntity<T>(data: T): Promise<T>;
|
|
109
|
+
protected processResultEntity<T>(_method: PrismaProxyActions, data: T): Promise<T>;
|
|
93
110
|
/**
|
|
94
111
|
* Processes query args before they're passed to Prisma.
|
|
95
112
|
*/
|
|
96
|
-
protected preprocessArgs(
|
|
113
|
+
protected preprocessArgs(_method: PrismaProxyActions, args: any): Promise<any>;
|
|
97
114
|
}
|
|
98
115
|
/**
|
|
99
116
|
* Makes a Prisma client proxy.
|
|
@@ -12,8 +12,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
exports.DefaultPrismaProxyHandler = void 0;
|
|
14
14
|
exports.makeProxy = makeProxy;
|
|
15
|
-
const constants_1 = require("
|
|
16
|
-
const cross_1 = require("
|
|
15
|
+
const constants_1 = require("../../constants");
|
|
16
|
+
const cross_1 = require("../../cross");
|
|
17
17
|
const promise_1 = require("./promise");
|
|
18
18
|
/**
|
|
19
19
|
* A default implementation of @see PrismaProxyHandler which directly
|
|
@@ -31,7 +31,7 @@ class DefaultPrismaProxyHandler {
|
|
|
31
31
|
const promise = (0, promise_1.createFluentPromise)(() => __awaiter(this, void 0, void 0, function* () {
|
|
32
32
|
args = yield this.preprocessArgs(method, args);
|
|
33
33
|
const r = yield this.prisma[this.model][method](args);
|
|
34
|
-
return postProcess ? this.processResultEntity(r) : r;
|
|
34
|
+
return postProcess ? this.processResultEntity(method, r) : r;
|
|
35
35
|
}), args, this.options.modelMeta, this.model);
|
|
36
36
|
return promise;
|
|
37
37
|
}
|
|
@@ -39,7 +39,7 @@ class DefaultPrismaProxyHandler {
|
|
|
39
39
|
return (0, promise_1.createDeferredPromise)(() => __awaiter(this, void 0, void 0, function* () {
|
|
40
40
|
args = yield this.preprocessArgs(method, args);
|
|
41
41
|
const r = yield this.prisma[this.model][method](args);
|
|
42
|
-
return postProcess ? this.processResultEntity(r) : r;
|
|
42
|
+
return postProcess ? this.processResultEntity(method, r) : r;
|
|
43
43
|
}));
|
|
44
44
|
}
|
|
45
45
|
findUnique(args) {
|
|
@@ -91,12 +91,36 @@ class DefaultPrismaProxyHandler {
|
|
|
91
91
|
return this.deferred('count', args, false);
|
|
92
92
|
}
|
|
93
93
|
subscribe(args) {
|
|
94
|
-
return this.
|
|
94
|
+
return this.doSubscribeStream('subscribe', args);
|
|
95
|
+
}
|
|
96
|
+
stream(args) {
|
|
97
|
+
return this.doSubscribeStream('stream', args);
|
|
98
|
+
}
|
|
99
|
+
doSubscribeStream(method, args) {
|
|
100
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
101
|
+
// Prisma's `subscribe` and `stream` methods return an async iterable
|
|
102
|
+
// which we need to wrap to process the iteration results
|
|
103
|
+
const iterable = yield this.prisma[this.model][method](args);
|
|
104
|
+
return {
|
|
105
|
+
[Symbol.asyncIterator]: () => {
|
|
106
|
+
const iter = iterable[Symbol.asyncIterator].bind(iterable)();
|
|
107
|
+
return {
|
|
108
|
+
next: () => __awaiter(this, void 0, void 0, function* () {
|
|
109
|
+
const { done, value } = yield iter.next();
|
|
110
|
+
const processedValue = value ? yield this.processResultEntity(method, value) : value;
|
|
111
|
+
return { done, value: processedValue };
|
|
112
|
+
}),
|
|
113
|
+
return: () => { var _a; return (_a = iter.return) === null || _a === void 0 ? void 0 : _a.call(iter); },
|
|
114
|
+
throw: () => { var _a; return (_a = iter.throw) === null || _a === void 0 ? void 0 : _a.call(iter); },
|
|
115
|
+
};
|
|
116
|
+
},
|
|
117
|
+
};
|
|
118
|
+
});
|
|
95
119
|
}
|
|
96
120
|
/**
|
|
97
121
|
* Processes result entities before they're returned
|
|
98
122
|
*/
|
|
99
|
-
processResultEntity(data) {
|
|
123
|
+
processResultEntity(_method, data) {
|
|
100
124
|
return __awaiter(this, void 0, void 0, function* () {
|
|
101
125
|
return data;
|
|
102
126
|
});
|
|
@@ -104,7 +128,7 @@ class DefaultPrismaProxyHandler {
|
|
|
104
128
|
/**
|
|
105
129
|
* Processes query args before they're passed to Prisma.
|
|
106
130
|
*/
|
|
107
|
-
preprocessArgs(
|
|
131
|
+
preprocessArgs(_method, args) {
|
|
108
132
|
return __awaiter(this, void 0, void 0, function* () {
|
|
109
133
|
return args;
|
|
110
134
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../src/enhancements/edge/proxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { type FieldInfo, type NestedWriteVisitorContext } from '
|
|
2
|
-
import type { CrudContract, DbClientContract } from '
|
|
1
|
+
import { type FieldInfo, type NestedWriteVisitorContext } from '../../cross';
|
|
2
|
+
import type { CrudContract, DbClientContract } from '../../types';
|
|
3
3
|
import { InternalEnhancementOptions } from './create-enhancement';
|
|
4
4
|
export declare class QueryUtils {
|
|
5
5
|
private readonly prisma;
|
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.QueryUtils = void 0;
|
|
4
4
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
5
|
-
const cross_1 = require("
|
|
6
|
-
const
|
|
7
|
-
const version_1 = require("../version");
|
|
5
|
+
const cross_1 = require("../../cross");
|
|
6
|
+
const version_1 = require("../../version");
|
|
8
7
|
const utils_1 = require("./utils");
|
|
9
8
|
class QueryUtils {
|
|
10
9
|
constructor(prisma, options) {
|
|
@@ -179,7 +178,7 @@ class QueryUtils {
|
|
|
179
178
|
* Clones an object and makes sure it's not empty.
|
|
180
179
|
*/
|
|
181
180
|
safeClone(value) {
|
|
182
|
-
return value ? (0,
|
|
181
|
+
return value ? (0, cross_1.clone)(value) : value === undefined || value === null ? {} : value;
|
|
183
182
|
}
|
|
184
183
|
}
|
|
185
184
|
exports.QueryUtils = QueryUtils;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-utils.js","sourceRoot":"","sources":["../../../src/enhancements/edge/query-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type { CrudContract, PermissionCheckerContext, QueryContext } from '../types';
|
|
1
|
+
import type { CrudContract, PermissionCheckerContext, PolicyCrudKind, QueryContext } from '../../types';
|
|
3
2
|
/**
|
|
4
3
|
* Common options for PrismaClient enhancements
|
|
5
4
|
*/
|
|
@@ -216,16 +215,10 @@ type FieldUpdateDef = {
|
|
|
216
215
|
overrideEntityChecker?: EntityChecker;
|
|
217
216
|
};
|
|
218
217
|
/**
|
|
219
|
-
*
|
|
218
|
+
* Permission check API (`check()`) arguments
|
|
220
219
|
*/
|
|
221
|
-
export type
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
*/
|
|
225
|
-
models: Record<string, z.ZodSchema>;
|
|
226
|
-
/**
|
|
227
|
-
* Zod schema for Prisma input types for each model
|
|
228
|
-
*/
|
|
229
|
-
input?: Record<string, Record<string, z.ZodSchema>>;
|
|
220
|
+
export type PermissionCheckArgs = {
|
|
221
|
+
operation: PolicyCrudKind;
|
|
222
|
+
where?: Record<string, number | string | boolean>;
|
|
230
223
|
};
|
|
231
224
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/enhancements/edge/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { type FieldInfo, type ModelMeta } from '
|
|
2
|
-
import type { DbClientContract } from '
|
|
1
|
+
import { type FieldInfo, type ModelMeta } from '../../cross';
|
|
2
|
+
import type { DbClientContract } from '../../types';
|
|
3
3
|
/**
|
|
4
4
|
* Formats an object for pretty printing.
|
|
5
5
|
*/
|
|
@@ -10,7 +10,7 @@ exports.prismaClientUnknownRequestError = prismaClientUnknownRequestError;
|
|
|
10
10
|
exports.isUnsafeMutate = isUnsafeMutate;
|
|
11
11
|
exports.isAutoIncrementIdField = isAutoIncrementIdField;
|
|
12
12
|
const safe_json_stringify_1 = __importDefault(require("safe-json-stringify"));
|
|
13
|
-
const
|
|
13
|
+
const cross_1 = require("../../cross");
|
|
14
14
|
/**
|
|
15
15
|
* Formats an object for pretty printing.
|
|
16
16
|
*/
|
|
@@ -36,7 +36,7 @@ function isUnsafeMutate(model, args, modelMeta) {
|
|
|
36
36
|
return false;
|
|
37
37
|
}
|
|
38
38
|
for (const k of Object.keys(args)) {
|
|
39
|
-
const field = (0,
|
|
39
|
+
const field = (0, cross_1.resolveField)(modelMeta, model, k);
|
|
40
40
|
if (field && (isAutoIncrementIdField(field) || field.isForeignKey)) {
|
|
41
41
|
return true;
|
|
42
42
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/enhancements/edge/utils.ts"],"names":[],"mappings":";;;;;AAQA,oCAEC;AAGD,kEAEC;AAGD,sEAEC;AAGD,0EAEC;AAGD,wCAWC;AAED,wDAEC;AA3CD,8EAAoD;AACpD,uCAA2E;AAG3E;;GAEG;AACH,8DAA8D;AAC9D,SAAgB,YAAY,CAAC,KAAU,EAAE,SAAS,GAAG,IAAI;IACrD,OAAO,SAAS,CAAC,CAAC,CAAC,IAAA,6BAAiB,EAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,6BAAiB,EAAC,KAAK,CAAC,CAAC;AACzF,CAAC;AAED,8DAA8D;AAC9D,SAAgB,2BAA2B,CAAC,MAAwB,EAAE,YAAiB,EAAE,OAAe;IACpG,MAAM,IAAI,YAAY,CAAC,2BAA2B,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;AAC1G,CAAC;AAED,8DAA8D;AAC9D,SAAgB,6BAA6B,CAAC,MAAwB,EAAE,YAAiB,EAAE,GAAG,IAAe;IACzG,OAAO,IAAI,YAAY,CAAC,6BAA6B,CAAC,GAAG,IAAI,CAAC,CAAC;AACnE,CAAC;AAED,8DAA8D;AAC9D,SAAgB,+BAA+B,CAAC,YAAiB,EAAE,GAAG,IAAe;IACjF,MAAM,IAAI,YAAY,CAAC,+BAA+B,CAAC,GAAG,IAAI,CAAC,CAAC;AACpE,CAAC;AAED,8DAA8D;AAC9D,SAAgB,cAAc,CAAC,KAAa,EAAE,IAAS,EAAE,SAAoB;IACzE,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,IAAA,oBAAY,EAAC,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAChD,IAAI,KAAK,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;YACjE,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAgB,sBAAsB,CAAC,KAAgB;IACnD,OAAO,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,eAAe,CAAC;AAC/C,CAAC"}
|
|
@@ -12,7 +12,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
12
12
|
};
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
14
|
exports.WhereVisitor = void 0;
|
|
15
|
-
const cross_1 = require("
|
|
15
|
+
const cross_1 = require("../../cross");
|
|
16
16
|
const FILTER_OPERATORS = [
|
|
17
17
|
'equals',
|
|
18
18
|
'not',
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"where-visitor.js","sourceRoot":"","sources":["../../../src/enhancements/edge/where-visitor.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,uDAAuD;;;;;;;;;;;;AAEvD,uCAAsF;AAwBtF,MAAM,gBAAgB,GAAG;IACrB,QAAQ;IACR,KAAK;IACL,IAAI;IACJ,OAAO;IACP,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,KAAK;IACL,UAAU;IACV,QAAQ;IACR,YAAY;IACZ,UAAU;CACb,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAE3E;;GAEG;AACH,MAAa,YAAY;IACrB,YAA6B,SAAoB,EAAmB,QAA8B;QAArE,cAAS,GAAT,SAAS,CAAW;QAAmB,aAAQ,GAAR,QAAQ,CAAsB;IAAG,CAAC;IAEtG;;OAEG;IACG,KAAK,CAAC,KAAa,EAAE,KAAU;;;YACjC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACT,OAAO;YACX,CAAC;YAED,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAM,KAAK,CAAC,EAAE,CAAC;gBAC9C,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnC,KAAK,MAAM,IAAI,IAAI,IAAA,iBAAS,EAAC,CAAC,CAAC,EAAE,CAAC;wBAC9B,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBAClC,CAAC;oBACD,SAAS;gBACb,CAAC;gBAED,IAAI,yBAAyB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;oBACxC,yBAAyB;oBACzB,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oBAC3B,SAAS;gBACb,CAAC;gBAED,MAAM,KAAK,GAAG,IAAA,oBAAY,EAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;gBACrD,IAAI,CAAC,KAAK,EAAE,CAAC;oBACT,SAAS;gBACb,CAAC;gBAED,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;oBACxB,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1E,IAAI,QAAQ,EAAE,CAAC;wBACX,0BAA0B;wBAC1B,MAAM,QAAQ,GAAG,MAAM,CAAA,MAAA,MAAA,IAAI,CAAC,QAAQ,EAAC,KAAK,mDAAG,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA,CAAC;wBACjE,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;wBACvB,SAAS;oBACb,CAAC;oBAED,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBACpE,iBAAiB;wBACjB,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;wBAChC,SAAS;oBACb,CAAC;gBACL,CAAC;gBAED,eAAe;gBACf,MAAM,QAAQ,GAAG,MAAM,CAAA,MAAA,MAAA,IAAI,CAAC,QAAQ,EAAC,KAAK,mDAAG,KAAK,EAAE,CAAC,CAAC,CAAA,CAAC;gBACvD,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;YACxB,CAAC;QACL,CAAC;KAAA;CACJ;AAnDD,oCAmDC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { type ModelMeta } from '../../cross';
|
|
2
|
+
import type { EnhancementContext, EnhancementOptions, ZodSchemas } from '../../types';
|
|
3
|
+
import type { PolicyDef } from './types';
|
|
4
|
+
/**
|
|
5
|
+
* Options for {@link createEnhancement}
|
|
6
|
+
*
|
|
7
|
+
* @private
|
|
8
|
+
*/
|
|
9
|
+
export type InternalEnhancementOptions = EnhancementOptions & {
|
|
10
|
+
/**
|
|
11
|
+
* Policy definition
|
|
12
|
+
*/
|
|
13
|
+
policy: PolicyDef;
|
|
14
|
+
/**
|
|
15
|
+
* Model metadata
|
|
16
|
+
*/
|
|
17
|
+
modelMeta: ModelMeta;
|
|
18
|
+
/**
|
|
19
|
+
* Zod schemas for validation
|
|
20
|
+
*/
|
|
21
|
+
zodSchemas?: ZodSchemas;
|
|
22
|
+
/**
|
|
23
|
+
* The Node module that contains PrismaClient
|
|
24
|
+
*/
|
|
25
|
+
prismaModule: any;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Gets a Prisma client enhanced with all enhancement behaviors, including access
|
|
29
|
+
* policy, field validation, field omission and password hashing.
|
|
30
|
+
*
|
|
31
|
+
* @private
|
|
32
|
+
*
|
|
33
|
+
* @param prisma The Prisma client to enhance.
|
|
34
|
+
* @param context Context.
|
|
35
|
+
* @param options Options.
|
|
36
|
+
*/
|
|
37
|
+
export declare function createEnhancement<DbClient extends object>(prisma: DbClient, options: InternalEnhancementOptions, context?: EnhancementContext): DbClient;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createEnhancement = createEnhancement;
|
|
7
|
+
const semver_1 = __importDefault(require("semver"));
|
|
8
|
+
const constants_1 = require("../../constants");
|
|
9
|
+
const cross_1 = require("../../cross");
|
|
10
|
+
const default_auth_1 = require("./default-auth");
|
|
11
|
+
const delegate_1 = require("./delegate");
|
|
12
|
+
const logger_1 = require("./logger");
|
|
13
|
+
const omit_1 = require("./omit");
|
|
14
|
+
const password_1 = require("./password");
|
|
15
|
+
const policy_1 = require("./policy");
|
|
16
|
+
/**
|
|
17
|
+
* All enhancement kinds
|
|
18
|
+
*/
|
|
19
|
+
const ALL_ENHANCEMENTS = ['password', 'omit', 'policy', 'validation', 'delegate'];
|
|
20
|
+
/**
|
|
21
|
+
* Gets a Prisma client enhanced with all enhancement behaviors, including access
|
|
22
|
+
* policy, field validation, field omission and password hashing.
|
|
23
|
+
*
|
|
24
|
+
* @private
|
|
25
|
+
*
|
|
26
|
+
* @param prisma The Prisma client to enhance.
|
|
27
|
+
* @param context Context.
|
|
28
|
+
* @param options Options.
|
|
29
|
+
*/
|
|
30
|
+
function createEnhancement(prisma, options, context) {
|
|
31
|
+
var _a;
|
|
32
|
+
if (!prisma) {
|
|
33
|
+
throw new Error('Invalid prisma instance');
|
|
34
|
+
}
|
|
35
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
36
|
+
const prismaVer = prisma._clientVersion;
|
|
37
|
+
if (prismaVer && semver_1.default.lt(prismaVer, constants_1.PRISMA_MINIMUM_VERSION)) {
|
|
38
|
+
console.warn(`ZenStack requires Prisma version "${constants_1.PRISMA_MINIMUM_VERSION}" or higher. Detected version is "${prismaVer}".`);
|
|
39
|
+
}
|
|
40
|
+
// TODO: move the detection logic into each enhancement
|
|
41
|
+
// TODO: how to properly cache the detection result?
|
|
42
|
+
const allFields = Object.values(options.modelMeta.models).flatMap((modelInfo) => Object.values(modelInfo.fields));
|
|
43
|
+
const hasPassword = allFields.some((field) => { var _a; return (_a = field.attributes) === null || _a === void 0 ? void 0 : _a.some((attr) => attr.name === '@password'); });
|
|
44
|
+
const hasOmit = allFields.some((field) => { var _a; return (_a = field.attributes) === null || _a === void 0 ? void 0 : _a.some((attr) => attr.name === '@omit'); });
|
|
45
|
+
const hasDefaultAuth = allFields.some((field) => field.defaultValueProvider);
|
|
46
|
+
const kinds = (_a = options.kinds) !== null && _a !== void 0 ? _a : ALL_ENHANCEMENTS;
|
|
47
|
+
let result = prisma;
|
|
48
|
+
// delegate proxy needs to be wrapped inside policy proxy, since it may translate `deleteMany`
|
|
49
|
+
// and `updateMany` to plain `delete` and `update`
|
|
50
|
+
if (Object.values(options.modelMeta.models).some((model) => (0, cross_1.isDelegateModel)(options.modelMeta, model.name))) {
|
|
51
|
+
if (!kinds.includes('delegate')) {
|
|
52
|
+
const logger = new logger_1.Logger(prisma);
|
|
53
|
+
logger.warn('Your ZModel contains delegate models but "delegate" enhancement kind is not enabled. This may result in unexpected behavior.');
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
result = (0, delegate_1.withDelegate)(result, options);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
// password enhancement must be applied prior to policy because it changes then length of the field
|
|
60
|
+
// and can break validation rules like `@length`
|
|
61
|
+
if (hasPassword && kinds.includes('password')) {
|
|
62
|
+
// @password proxy
|
|
63
|
+
result = (0, password_1.withPassword)(result, options);
|
|
64
|
+
}
|
|
65
|
+
// 'policy' and 'validation' enhancements are both enabled by `withPolicy`
|
|
66
|
+
if (kinds.includes('policy') || kinds.includes('validation')) {
|
|
67
|
+
result = (0, policy_1.withPolicy)(result, options, context);
|
|
68
|
+
if (kinds.includes('policy') && hasDefaultAuth) {
|
|
69
|
+
// @default(auth()) proxy
|
|
70
|
+
result = (0, default_auth_1.withDefaultAuth)(result, options, context);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
if (hasOmit && kinds.includes('omit')) {
|
|
74
|
+
// @omit proxy
|
|
75
|
+
result = (0, omit_1.withOmit)(result, options);
|
|
76
|
+
}
|
|
77
|
+
return result;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=create-enhancement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-enhancement.js","sourceRoot":"","sources":["../../../src/enhancements/node/create-enhancement.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { EnhancementContext } from '../../types';
|
|
2
|
+
import { InternalEnhancementOptions } from './create-enhancement';
|
|
3
|
+
/**
|
|
4
|
+
* Gets an enhanced Prisma client that supports `@default(auth())` attribute.
|
|
5
|
+
*
|
|
6
|
+
* @private
|
|
7
|
+
*/
|
|
8
|
+
export declare function withDefaultAuth<DbClient extends object>(prisma: DbClient, options: InternalEnhancementOptions, context?: EnhancementContext): DbClient;
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
3
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
4
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
5
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
6
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
7
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
8
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
9
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
10
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.withDefaultAuth = withDefaultAuth;
|
|
15
|
+
const cross_1 = require("../../cross");
|
|
16
|
+
const proxy_1 = require("./proxy");
|
|
17
|
+
const utils_1 = require("./utils");
|
|
18
|
+
/**
|
|
19
|
+
* Gets an enhanced Prisma client that supports `@default(auth())` attribute.
|
|
20
|
+
*
|
|
21
|
+
* @private
|
|
22
|
+
*/
|
|
23
|
+
function withDefaultAuth(prisma, options, context = {}) {
|
|
24
|
+
return (0, proxy_1.makeProxy)(prisma, options.modelMeta, (_prisma, model) => new DefaultAuthHandler(_prisma, model, options, context), 'defaultAuth');
|
|
25
|
+
}
|
|
26
|
+
class DefaultAuthHandler extends proxy_1.DefaultPrismaProxyHandler {
|
|
27
|
+
constructor(prisma, model, options, context) {
|
|
28
|
+
super(prisma, model, options);
|
|
29
|
+
this.context = context;
|
|
30
|
+
this.userContext = this.context.user;
|
|
31
|
+
}
|
|
32
|
+
// base override
|
|
33
|
+
preprocessArgs(action, args) {
|
|
34
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
+
const actionsOfInterest = ['create', 'createMany', 'update', 'updateMany', 'upsert'];
|
|
36
|
+
if (actionsOfInterest.includes(action)) {
|
|
37
|
+
const newArgs = yield this.preprocessWritePayload(this.model, action, args);
|
|
38
|
+
return newArgs;
|
|
39
|
+
}
|
|
40
|
+
return args;
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
preprocessWritePayload(model, action, args) {
|
|
44
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
45
|
+
const newArgs = (0, cross_1.clone)(args);
|
|
46
|
+
const processCreatePayload = (model, data) => {
|
|
47
|
+
const fields = (0, cross_1.getFields)(this.options.modelMeta, model);
|
|
48
|
+
for (const fieldInfo of Object.values(fields)) {
|
|
49
|
+
if (fieldInfo.name in data) {
|
|
50
|
+
// create payload already sets field value
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
if (!fieldInfo.defaultValueProvider) {
|
|
54
|
+
// field doesn't have a runtime default value provider
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
const authDefaultValue = this.getDefaultValueFromAuth(fieldInfo);
|
|
58
|
+
if (authDefaultValue !== undefined) {
|
|
59
|
+
// set field value extracted from `auth()`
|
|
60
|
+
this.setAuthDefaultValue(fieldInfo, model, data, authDefaultValue);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
// visit create payload and set default value to fields using `auth()` in `@default()`
|
|
65
|
+
const visitor = new cross_1.NestedWriteVisitor(this.options.modelMeta, {
|
|
66
|
+
create: (model, data) => {
|
|
67
|
+
processCreatePayload(model, data);
|
|
68
|
+
},
|
|
69
|
+
upsert: (model, data) => {
|
|
70
|
+
processCreatePayload(model, data.create);
|
|
71
|
+
},
|
|
72
|
+
createMany: (model, args) => {
|
|
73
|
+
for (const item of (0, cross_1.enumerate)(args.data)) {
|
|
74
|
+
processCreatePayload(model, item);
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
});
|
|
78
|
+
yield visitor.visit(model, action, newArgs);
|
|
79
|
+
return newArgs;
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
setAuthDefaultValue(fieldInfo, model, data, authDefaultValue) {
|
|
83
|
+
var _a;
|
|
84
|
+
if (fieldInfo.isForeignKey && fieldInfo.relationField && fieldInfo.relationField in data) {
|
|
85
|
+
// if the field is a fk, and the relation field is already set, we should not override it
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
if (fieldInfo.isForeignKey && !(0, utils_1.isUnsafeMutate)(model, data, this.options.modelMeta)) {
|
|
89
|
+
// if the field is a fk, and the create payload is not unsafe, we need to translate
|
|
90
|
+
// the fk field setting to a `connect` of the corresponding relation field
|
|
91
|
+
const relFieldName = fieldInfo.relationField;
|
|
92
|
+
if (!relFieldName) {
|
|
93
|
+
throw new Error(`Field \`${fieldInfo.name}\` is a foreign key field but no corresponding relation field is found`);
|
|
94
|
+
}
|
|
95
|
+
const relationField = (0, cross_1.requireField)(this.options.modelMeta, model, relFieldName);
|
|
96
|
+
// construct a `{ connect: { ... } }` payload
|
|
97
|
+
let connect = (_a = data[relationField.name]) === null || _a === void 0 ? void 0 : _a.connect;
|
|
98
|
+
if (!connect) {
|
|
99
|
+
connect = {};
|
|
100
|
+
data[relationField.name] = { connect };
|
|
101
|
+
}
|
|
102
|
+
// sets the opposite fk field to value `authDefaultValue`
|
|
103
|
+
const oppositeFkFieldName = this.getOppositeFkFieldName(relationField, fieldInfo);
|
|
104
|
+
if (!oppositeFkFieldName) {
|
|
105
|
+
throw new Error(`Cannot find opposite foreign key field for \`${fieldInfo.name}\` in relation field \`${relFieldName}\``);
|
|
106
|
+
}
|
|
107
|
+
connect[oppositeFkFieldName] = authDefaultValue;
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
// set default value directly
|
|
111
|
+
data[fieldInfo.name] = authDefaultValue;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
getOppositeFkFieldName(relationField, fieldInfo) {
|
|
115
|
+
if (!relationField.foreignKeyMapping) {
|
|
116
|
+
return undefined;
|
|
117
|
+
}
|
|
118
|
+
const entry = Object.entries(relationField.foreignKeyMapping).find(([, v]) => v === fieldInfo.name);
|
|
119
|
+
return entry === null || entry === void 0 ? void 0 : entry[0];
|
|
120
|
+
}
|
|
121
|
+
getDefaultValueFromAuth(fieldInfo) {
|
|
122
|
+
var _a;
|
|
123
|
+
if (!this.userContext) {
|
|
124
|
+
throw (0, utils_1.prismaClientValidationError)(this.prisma, this.options.prismaModule, `Evaluating default value of field \`${fieldInfo.name}\` requires a user context`);
|
|
125
|
+
}
|
|
126
|
+
return (_a = fieldInfo.defaultValueProvider) === null || _a === void 0 ? void 0 : _a.call(fieldInfo, this.userContext);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=default-auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-auth.js","sourceRoot":"","sources":["../../../src/enhancements/node/default-auth.ts"],"names":[],"mappings":"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"}
|