@zenstackhq/runtime 2.15.1 → 3.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/dist/client.cjs +6094 -0
- package/dist/client.cjs.map +1 -0
- package/dist/client.d.cts +19 -0
- package/dist/client.d.ts +19 -0
- package/dist/client.js +6060 -0
- package/dist/client.js.map +1 -0
- package/dist/contract-DguafRNB.d.cts +1272 -0
- package/dist/contract-DguafRNB.d.ts +1272 -0
- package/dist/index.cjs +6088 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +14 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.js +6057 -0
- package/dist/index.js.map +1 -0
- package/dist/plugins/policy.cjs +2343 -0
- package/dist/plugins/policy.cjs.map +1 -0
- package/dist/plugins/policy.d.cts +24 -0
- package/dist/plugins/policy.d.ts +24 -0
- package/dist/plugins/policy.js +2307 -0
- package/dist/plugins/policy.js.map +1 -0
- package/dist/schema.cjs +110 -0
- package/dist/schema.cjs.map +1 -0
- package/dist/schema.d.cts +29 -0
- package/dist/schema.d.ts +29 -0
- package/dist/schema.js +85 -0
- package/dist/schema.js.map +1 -0
- package/dist/utils/pg-utils.cjs +39 -0
- package/dist/utils/pg-utils.cjs.map +1 -0
- package/dist/utils/pg-utils.d.cts +8 -0
- package/dist/utils/pg-utils.d.ts +8 -0
- package/dist/utils/pg-utils.js +16 -0
- package/dist/utils/pg-utils.js.map +1 -0
- package/{browser/index.js → dist/utils/sqlite-utils.cjs} +21 -37
- package/dist/utils/sqlite-utils.cjs.map +1 -0
- package/dist/utils/sqlite-utils.d.cts +8 -0
- package/dist/utils/sqlite-utils.d.ts +8 -0
- package/dist/utils/sqlite-utils.js +22 -0
- package/dist/utils/sqlite-utils.js.map +1 -0
- package/package.json +105 -114
- package/README.md +0 -5
- package/browser/index.d.mts +0 -13
- package/browser/index.d.ts +0 -13
- package/browser/index.js.map +0 -1
- package/browser/index.mjs +0 -33
- package/browser/index.mjs.map +0 -1
- package/constants.d.ts +0 -62
- package/constants.js +0 -76
- package/constants.js.map +0 -1
- package/cross/index.d.mts +0 -379
- package/cross/index.d.ts +0 -379
- package/cross/index.js +0 -903
- package/cross/index.js.map +0 -1
- package/cross/index.mjs +0 -861
- package/cross/index.mjs.map +0 -1
- package/edge.d.ts +0 -1
- package/edge.js +0 -18
- package/edge.js.map +0 -1
- package/encryption/index.d.ts +0 -25
- package/encryption/index.js +0 -74
- package/encryption/index.js.map +0 -1
- package/encryption/utils.d.ts +0 -9
- package/encryption/utils.js +0 -99
- package/encryption/utils.js.map +0 -1
- package/enhance-edge.d.ts +0 -1
- package/enhance-edge.js +0 -10
- package/enhance.d.ts +0 -1
- package/enhance.js +0 -10
- package/enhancements/edge/create-enhancement.d.ts +0 -42
- package/enhancements/edge/create-enhancement.js +0 -102
- package/enhancements/edge/create-enhancement.js.map +0 -1
- package/enhancements/edge/default-auth.d.ts +0 -8
- package/enhancements/edge/default-auth.js +0 -180
- package/enhancements/edge/default-auth.js.map +0 -1
- package/enhancements/edge/delegate.d.ts +0 -77
- package/enhancements/edge/delegate.js +0 -1294
- package/enhancements/edge/delegate.js.map +0 -1
- package/enhancements/edge/encryption.d.ts +0 -7
- package/enhancements/edge/encryption.js +0 -150
- package/enhancements/edge/encryption.js.map +0 -1
- package/enhancements/edge/index.d.ts +0 -4
- package/enhancements/edge/index.js +0 -21
- package/enhancements/edge/index.js.map +0 -1
- package/enhancements/edge/json-processor.d.ts +0 -7
- package/enhancements/edge/json-processor.js +0 -89
- package/enhancements/edge/json-processor.js.map +0 -1
- package/enhancements/edge/logger.d.ts +0 -29
- package/enhancements/edge/logger.js +0 -65
- package/enhancements/edge/logger.js.map +0 -1
- package/enhancements/edge/omit.d.ts +0 -7
- package/enhancements/edge/omit.js +0 -96
- package/enhancements/edge/omit.js.map +0 -1
- package/enhancements/edge/password.d.ts +0 -7
- package/enhancements/edge/password.js +0 -64
- package/enhancements/edge/password.js.map +0 -1
- package/enhancements/edge/policy/check-utils.d.ts +0 -5
- package/enhancements/edge/policy/check-utils.js +0 -20
- package/enhancements/edge/policy/check-utils.js.map +0 -1
- package/enhancements/edge/policy/handler.d.ts +0 -100
- package/enhancements/edge/policy/handler.js +0 -1442
- package/enhancements/edge/policy/handler.js.map +0 -1
- package/enhancements/edge/policy/index.d.ts +0 -19
- package/enhancements/edge/policy/index.js +0 -65
- package/enhancements/edge/policy/index.js.map +0 -1
- package/enhancements/edge/policy/policy-utils.d.ts +0 -181
- package/enhancements/edge/policy/policy-utils.js +0 -1357
- package/enhancements/edge/policy/policy-utils.js.map +0 -1
- package/enhancements/edge/promise.d.ts +0 -15
- package/enhancements/edge/promise.js +0 -99
- package/enhancements/edge/promise.js.map +0 -1
- package/enhancements/edge/proxy.d.ts +0 -120
- package/enhancements/edge/proxy.js +0 -287
- package/enhancements/edge/proxy.js.map +0 -1
- package/enhancements/edge/query-utils.d.ts +0 -53
- package/enhancements/edge/query-utils.js +0 -256
- package/enhancements/edge/query-utils.js.map +0 -1
- package/enhancements/edge/types.d.ts +0 -238
- package/enhancements/edge/types.js +0 -3
- package/enhancements/edge/types.js.map +0 -1
- package/enhancements/edge/utils.d.ts +0 -11
- package/enhancements/edge/utils.js +0 -49
- package/enhancements/edge/utils.js.map +0 -1
- package/enhancements/edge/where-visitor.d.ts +0 -32
- package/enhancements/edge/where-visitor.js +0 -86
- package/enhancements/edge/where-visitor.js.map +0 -1
- package/enhancements/node/create-enhancement.d.ts +0 -42
- package/enhancements/node/create-enhancement.js +0 -102
- package/enhancements/node/create-enhancement.js.map +0 -1
- package/enhancements/node/default-auth.d.ts +0 -8
- package/enhancements/node/default-auth.js +0 -180
- package/enhancements/node/default-auth.js.map +0 -1
- package/enhancements/node/delegate.d.ts +0 -77
- package/enhancements/node/delegate.js +0 -1294
- package/enhancements/node/delegate.js.map +0 -1
- package/enhancements/node/encryption.d.ts +0 -7
- package/enhancements/node/encryption.js +0 -150
- package/enhancements/node/encryption.js.map +0 -1
- package/enhancements/node/index.d.ts +0 -4
- package/enhancements/node/index.js +0 -21
- package/enhancements/node/index.js.map +0 -1
- package/enhancements/node/json-processor.d.ts +0 -7
- package/enhancements/node/json-processor.js +0 -89
- package/enhancements/node/json-processor.js.map +0 -1
- package/enhancements/node/logger.d.ts +0 -29
- package/enhancements/node/logger.js +0 -65
- package/enhancements/node/logger.js.map +0 -1
- package/enhancements/node/omit.d.ts +0 -7
- package/enhancements/node/omit.js +0 -96
- package/enhancements/node/omit.js.map +0 -1
- package/enhancements/node/password.d.ts +0 -7
- package/enhancements/node/password.js +0 -64
- package/enhancements/node/password.js.map +0 -1
- package/enhancements/node/policy/check-utils.d.ts +0 -5
- package/enhancements/node/policy/check-utils.js +0 -87
- package/enhancements/node/policy/check-utils.js.map +0 -1
- package/enhancements/node/policy/constraint-solver.d.ts +0 -27
- package/enhancements/node/policy/constraint-solver.js +0 -164
- package/enhancements/node/policy/constraint-solver.js.map +0 -1
- package/enhancements/node/policy/handler.d.ts +0 -100
- package/enhancements/node/policy/handler.js +0 -1442
- package/enhancements/node/policy/handler.js.map +0 -1
- package/enhancements/node/policy/index.d.ts +0 -19
- package/enhancements/node/policy/index.js +0 -65
- package/enhancements/node/policy/index.js.map +0 -1
- package/enhancements/node/policy/policy-utils.d.ts +0 -181
- package/enhancements/node/policy/policy-utils.js +0 -1357
- package/enhancements/node/policy/policy-utils.js.map +0 -1
- package/enhancements/node/promise.d.ts +0 -15
- package/enhancements/node/promise.js +0 -99
- package/enhancements/node/promise.js.map +0 -1
- package/enhancements/node/proxy.d.ts +0 -120
- package/enhancements/node/proxy.js +0 -287
- package/enhancements/node/proxy.js.map +0 -1
- package/enhancements/node/query-utils.d.ts +0 -53
- package/enhancements/node/query-utils.js +0 -256
- package/enhancements/node/query-utils.js.map +0 -1
- package/enhancements/node/types.d.ts +0 -238
- package/enhancements/node/types.js +0 -3
- package/enhancements/node/types.js.map +0 -1
- package/enhancements/node/utils.d.ts +0 -11
- package/enhancements/node/utils.js +0 -49
- package/enhancements/node/utils.js.map +0 -1
- package/enhancements/node/where-visitor.d.ts +0 -32
- package/enhancements/node/where-visitor.js +0 -86
- package/enhancements/node/where-visitor.js.map +0 -1
- package/error.d.ts +0 -11
- package/error.js +0 -22
- package/error.js.map +0 -1
- package/index.d.ts +0 -7
- package/index.js +0 -24
- package/index.js.map +0 -1
- package/model-meta.d.ts +0 -1
- package/model-meta.js +0 -10
- package/models.d.ts +0 -1
- package/models.js +0 -1
- package/types.d.ts +0 -180
- package/types.js +0 -4
- package/types.js.map +0 -1
- package/validation.d.ts +0 -24
- package/validation.js +0 -52
- package/validation.js.map +0 -1
- package/version.d.ts +0 -5
- package/version.js +0 -35
- package/version.js.map +0 -1
- package/zod/index.d.ts +0 -3
- package/zod/index.js +0 -5
- package/zod/input.d.ts +0 -1
- package/zod/input.js +0 -8
- package/zod/models.d.ts +0 -1
- package/zod/models.js +0 -8
- package/zod/objects.d.ts +0 -1
- package/zod/objects.js +0 -8
- package/zod-utils.d.ts +0 -12
- package/zod-utils.js +0 -97
- package/zod-utils.js.map +0 -1
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
|
|
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.WhereVisitor = void 0;
|
|
15
|
-
const cross_1 = require("../../cross");
|
|
16
|
-
const FILTER_OPERATORS = [
|
|
17
|
-
'equals',
|
|
18
|
-
'not',
|
|
19
|
-
'in',
|
|
20
|
-
'notIn',
|
|
21
|
-
'lt',
|
|
22
|
-
'lte',
|
|
23
|
-
'gt',
|
|
24
|
-
'gte',
|
|
25
|
-
'contains',
|
|
26
|
-
'search',
|
|
27
|
-
'startsWith',
|
|
28
|
-
'endsWith',
|
|
29
|
-
];
|
|
30
|
-
const RELATION_FILTER_OPERATORS = ['is', 'isNot', 'some', 'every', 'none'];
|
|
31
|
-
/**
|
|
32
|
-
* Recursive visitor for where payload
|
|
33
|
-
*/
|
|
34
|
-
class WhereVisitor {
|
|
35
|
-
constructor(modelMeta, callback) {
|
|
36
|
-
this.modelMeta = modelMeta;
|
|
37
|
-
this.callback = callback;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Start visiting
|
|
41
|
-
*/
|
|
42
|
-
visit(model, where) {
|
|
43
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
44
|
-
var _a, _b, _c, _d;
|
|
45
|
-
if (!where) {
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
for (const [k, v] of Object.entries(where)) {
|
|
49
|
-
if (['AND', 'OR', 'NOT'].includes(k)) {
|
|
50
|
-
for (const item of (0, cross_1.enumerate)(v)) {
|
|
51
|
-
yield this.visit(model, item);
|
|
52
|
-
}
|
|
53
|
-
continue;
|
|
54
|
-
}
|
|
55
|
-
if (RELATION_FILTER_OPERATORS.includes(k)) {
|
|
56
|
-
// visit into filter body
|
|
57
|
-
yield this.visit(model, v);
|
|
58
|
-
continue;
|
|
59
|
-
}
|
|
60
|
-
const field = (0, cross_1.resolveField)(this.modelMeta, model, k);
|
|
61
|
-
if (!field) {
|
|
62
|
-
continue;
|
|
63
|
-
}
|
|
64
|
-
if (typeof v === 'object') {
|
|
65
|
-
const filterOp = Object.keys(v).find((f) => FILTER_OPERATORS.includes(f));
|
|
66
|
-
if (filterOp) {
|
|
67
|
-
// reach into filter value
|
|
68
|
-
const newValue = yield ((_b = (_a = this.callback).field) === null || _b === void 0 ? void 0 : _b.call(_a, field, v[filterOp]));
|
|
69
|
-
v[filterOp] = newValue;
|
|
70
|
-
continue;
|
|
71
|
-
}
|
|
72
|
-
if (Object.keys(v).some((f) => RELATION_FILTER_OPERATORS.includes(f))) {
|
|
73
|
-
// filter payload
|
|
74
|
-
yield this.visit(field.type, v);
|
|
75
|
-
continue;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
// scalar field
|
|
79
|
-
const newValue = yield ((_d = (_c = this.callback).field) === null || _d === void 0 ? void 0 : _d.call(_c, field, v));
|
|
80
|
-
where[k] = newValue;
|
|
81
|
-
}
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
exports.WhereVisitor = WhereVisitor;
|
|
86
|
-
//# sourceMappingURL=where-visitor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { type ModelMeta } from '../../cross';
|
|
2
|
-
import type { DbClientContract, 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
|
-
* A callback shared among enhancements to process the payload for including a relation
|
|
28
|
-
* field. e.g.: `{ author: true }`.
|
|
29
|
-
*/
|
|
30
|
-
processIncludeRelationPayload?: (prisma: DbClientContract, model: string, payload: unknown, options: InternalEnhancementOptions, context: EnhancementContext | undefined) => Promise<void>;
|
|
31
|
-
};
|
|
32
|
-
/**
|
|
33
|
-
* Gets a Prisma client enhanced with all enhancement behaviors, including access
|
|
34
|
-
* policy, field validation, field omission and password hashing.
|
|
35
|
-
*
|
|
36
|
-
* @private
|
|
37
|
-
*
|
|
38
|
-
* @param prisma The Prisma client to enhance.
|
|
39
|
-
* @param context Context.
|
|
40
|
-
* @param options Options.
|
|
41
|
-
*/
|
|
42
|
-
export declare function createEnhancement<DbClient extends object>(prisma: DbClient, options: InternalEnhancementOptions, context?: EnhancementContext): DbClient;
|
|
@@ -1,102 +0,0 @@
|
|
|
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 encryption_1 = require("./encryption");
|
|
13
|
-
const json_processor_1 = require("./json-processor");
|
|
14
|
-
const logger_1 = require("./logger");
|
|
15
|
-
const omit_1 = require("./omit");
|
|
16
|
-
const password_1 = require("./password");
|
|
17
|
-
const policy_1 = require("./policy");
|
|
18
|
-
/**
|
|
19
|
-
* All enhancement kinds
|
|
20
|
-
*/
|
|
21
|
-
const ALL_ENHANCEMENTS = ['password', 'omit', 'policy', 'validation', 'delegate', 'encryption'];
|
|
22
|
-
/**
|
|
23
|
-
* Gets a Prisma client enhanced with all enhancement behaviors, including access
|
|
24
|
-
* policy, field validation, field omission and password hashing.
|
|
25
|
-
*
|
|
26
|
-
* @private
|
|
27
|
-
*
|
|
28
|
-
* @param prisma The Prisma client to enhance.
|
|
29
|
-
* @param context Context.
|
|
30
|
-
* @param options Options.
|
|
31
|
-
*/
|
|
32
|
-
function createEnhancement(prisma, options, context) {
|
|
33
|
-
var _a;
|
|
34
|
-
if (!prisma) {
|
|
35
|
-
throw new Error('Invalid prisma instance');
|
|
36
|
-
}
|
|
37
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
38
|
-
const prismaVer = prisma._clientVersion;
|
|
39
|
-
if (prismaVer && semver_1.default.lt(prismaVer, constants_1.PRISMA_MINIMUM_VERSION)) {
|
|
40
|
-
console.warn(`ZenStack requires Prisma version "${constants_1.PRISMA_MINIMUM_VERSION}" or higher. Detected version is "${prismaVer}".`);
|
|
41
|
-
}
|
|
42
|
-
// TODO: move the detection logic into each enhancement
|
|
43
|
-
// TODO: how to properly cache the detection result?
|
|
44
|
-
const allFields = Object.values(options.modelMeta.models).flatMap((modelInfo) => Object.values(modelInfo.fields));
|
|
45
|
-
if (options.modelMeta.typeDefs) {
|
|
46
|
-
allFields.push(...Object.values(options.modelMeta.typeDefs).flatMap((typeDefInfo) => Object.values(typeDefInfo.fields)));
|
|
47
|
-
}
|
|
48
|
-
const hasPassword = allFields.some((field) => { var _a; return (_a = field.attributes) === null || _a === void 0 ? void 0 : _a.some((attr) => attr.name === '@password'); });
|
|
49
|
-
const hasEncrypted = allFields.some((field) => { var _a; return (_a = field.attributes) === null || _a === void 0 ? void 0 : _a.some((attr) => attr.name === '@encrypted'); });
|
|
50
|
-
const hasOmit = allFields.some((field) => { var _a; return (_a = field.attributes) === null || _a === void 0 ? void 0 : _a.some((attr) => attr.name === '@omit'); });
|
|
51
|
-
const hasDefaultAuth = allFields.some((field) => field.defaultValueProvider);
|
|
52
|
-
const hasTypeDefField = allFields.some((field) => field.isTypeDef);
|
|
53
|
-
const kinds = (_a = options.kinds) !== null && _a !== void 0 ? _a : ALL_ENHANCEMENTS;
|
|
54
|
-
let result = prisma;
|
|
55
|
-
// delegate proxy needs to be wrapped inside policy proxy, since it may translate `deleteMany`
|
|
56
|
-
// and `updateMany` to plain `delete` and `update`
|
|
57
|
-
if (Object.values(options.modelMeta.models).some((model) => (0, cross_1.isDelegateModel)(options.modelMeta, model.name))) {
|
|
58
|
-
if (!kinds.includes('delegate')) {
|
|
59
|
-
const logger = new logger_1.Logger(prisma);
|
|
60
|
-
logger.warn('Your ZModel contains delegate models but "delegate" enhancement kind is not enabled. This may result in unexpected behavior.');
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
result = (0, delegate_1.withDelegate)(result, options, context);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
// password and encrypted enhancement must be applied prior to policy because it changes then length of the field
|
|
67
|
-
// and can break validation rules like `@length`
|
|
68
|
-
if (hasPassword && kinds.includes('password')) {
|
|
69
|
-
// @password proxy
|
|
70
|
-
result = (0, password_1.withPassword)(result, options);
|
|
71
|
-
}
|
|
72
|
-
if (hasEncrypted && kinds.includes('encryption')) {
|
|
73
|
-
if (!options.encryption) {
|
|
74
|
-
throw new Error('Encryption options are required for @encrypted enhancement');
|
|
75
|
-
}
|
|
76
|
-
// @encrypted proxy
|
|
77
|
-
result = (0, encryption_1.withEncrypted)(result, options);
|
|
78
|
-
}
|
|
79
|
-
// 'policy' and 'validation' enhancements are both enabled by `withPolicy`
|
|
80
|
-
if (kinds.includes('policy') || kinds.includes('validation')) {
|
|
81
|
-
result = (0, policy_1.withPolicy)(result, options, context);
|
|
82
|
-
// if any enhancement is to introduce an inclusion of a relation field, the
|
|
83
|
-
// inclusion payload must be processed by the policy enhancement for injecting
|
|
84
|
-
// access control rules
|
|
85
|
-
// TODO: this is currently a global callback shared among all enhancements, which
|
|
86
|
-
// is far from ideal
|
|
87
|
-
options.processIncludeRelationPayload = policy_1.policyProcessIncludeRelationPayload;
|
|
88
|
-
if (kinds.includes('policy') && hasDefaultAuth) {
|
|
89
|
-
// @default(auth()) proxy
|
|
90
|
-
result = (0, default_auth_1.withDefaultAuth)(result, options, context);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
if (hasOmit && kinds.includes('omit')) {
|
|
94
|
-
// @omit proxy
|
|
95
|
-
result = (0, omit_1.withOmit)(result, options);
|
|
96
|
-
}
|
|
97
|
-
if (hasTypeDefField) {
|
|
98
|
-
result = (0, json_processor_1.withJsonProcessor)(result, options);
|
|
99
|
-
}
|
|
100
|
-
return result;
|
|
101
|
-
}
|
|
102
|
-
//# sourceMappingURL=create-enhancement.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-enhancement.js","sourceRoot":"","sources":["../../../src/enhancements/node/create-enhancement.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
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;
|
|
@@ -1,180 +0,0 @@
|
|
|
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 constants_1 = require("../../constants");
|
|
16
|
-
const cross_1 = require("../../cross");
|
|
17
|
-
const proxy_1 = require("./proxy");
|
|
18
|
-
const utils_1 = require("./utils");
|
|
19
|
-
/**
|
|
20
|
-
* Gets an enhanced Prisma client that supports `@default(auth())` attribute.
|
|
21
|
-
*
|
|
22
|
-
* @private
|
|
23
|
-
*/
|
|
24
|
-
function withDefaultAuth(prisma, options, context = {}) {
|
|
25
|
-
return (0, proxy_1.makeProxy)(prisma, options.modelMeta, (_prisma, model) => new DefaultAuthHandler(_prisma, model, options, context), 'defaultAuth');
|
|
26
|
-
}
|
|
27
|
-
class DefaultAuthHandler extends proxy_1.DefaultPrismaProxyHandler {
|
|
28
|
-
constructor(prisma, model, options, context) {
|
|
29
|
-
super(prisma, model, options);
|
|
30
|
-
this.context = context;
|
|
31
|
-
this.userContext = this.context.user;
|
|
32
|
-
}
|
|
33
|
-
// base override
|
|
34
|
-
preprocessArgs(action, args) {
|
|
35
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
36
|
-
if (args && constants_1.ACTIONS_WITH_WRITE_PAYLOAD.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, context) => {
|
|
47
|
-
const fields = (0, cross_1.getFields)(this.options.modelMeta, model);
|
|
48
|
-
for (const fieldInfo of Object.values(fields)) {
|
|
49
|
-
if (fieldInfo.isTypeDef) {
|
|
50
|
-
this.setDefaultValueForTypeDefData(fieldInfo.type, data[fieldInfo.name]);
|
|
51
|
-
continue;
|
|
52
|
-
}
|
|
53
|
-
if (fieldInfo.name in data) {
|
|
54
|
-
// create payload already sets field value
|
|
55
|
-
continue;
|
|
56
|
-
}
|
|
57
|
-
if (!fieldInfo.defaultValueProvider) {
|
|
58
|
-
// field doesn't have a runtime default value provider
|
|
59
|
-
continue;
|
|
60
|
-
}
|
|
61
|
-
const defaultValue = this.getDefaultValue(fieldInfo);
|
|
62
|
-
if (defaultValue !== undefined) {
|
|
63
|
-
// set field value extracted from `auth()`
|
|
64
|
-
this.setDefaultValueForModelData(fieldInfo, model, data, defaultValue, context);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
// visit create payload and set default value to fields using `auth()` in `@default()`
|
|
69
|
-
const visitor = new cross_1.NestedWriteVisitor(this.options.modelMeta, {
|
|
70
|
-
create: (model, data, context) => {
|
|
71
|
-
processCreatePayload(model, data, context);
|
|
72
|
-
},
|
|
73
|
-
upsert: (model, data, context) => {
|
|
74
|
-
processCreatePayload(model, data.create, context);
|
|
75
|
-
},
|
|
76
|
-
createMany: (model, args, context) => {
|
|
77
|
-
for (const item of (0, cross_1.enumerate)(args.data)) {
|
|
78
|
-
processCreatePayload(model, item, context);
|
|
79
|
-
}
|
|
80
|
-
},
|
|
81
|
-
});
|
|
82
|
-
yield visitor.visit(model, action, newArgs);
|
|
83
|
-
return newArgs;
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
setDefaultValueForModelData(fieldInfo, model, data, authDefaultValue, context) {
|
|
87
|
-
var _a, _b;
|
|
88
|
-
if (fieldInfo.isForeignKey) {
|
|
89
|
-
// if the field being inspected is a fk field, there are several cases we should not
|
|
90
|
-
// set the default value or should not set directly
|
|
91
|
-
// if the field is a fk, and the relation field is already set, we should not override it
|
|
92
|
-
if (fieldInfo.relationField && fieldInfo.relationField in data) {
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
if ((_a = context.field) === null || _a === void 0 ? void 0 : _a.backLink) {
|
|
96
|
-
// if the fk field is in a creation context where its implied by the parent,
|
|
97
|
-
// we should not set the default value, e.g.:
|
|
98
|
-
//
|
|
99
|
-
// ```
|
|
100
|
-
// parent.create({ data: { child: { create: {} } } })
|
|
101
|
-
// ```
|
|
102
|
-
//
|
|
103
|
-
// even if child's fk to parent has a default value, we should not set default
|
|
104
|
-
// value here
|
|
105
|
-
// get the opposite side of the relation for the current create context
|
|
106
|
-
const oppositeRelationField = (0, cross_1.requireField)(this.options.modelMeta, model, context.field.backLink);
|
|
107
|
-
if (oppositeRelationField.foreignKeyMapping &&
|
|
108
|
-
Object.values(oppositeRelationField.foreignKeyMapping).includes(fieldInfo.name)) {
|
|
109
|
-
return;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
if (!(0, utils_1.isUnsafeMutate)(model, data, this.options.modelMeta)) {
|
|
113
|
-
// if the field is a fk, and the create payload is not unsafe, we need to translate
|
|
114
|
-
// the fk field setting to a `connect` of the corresponding relation field
|
|
115
|
-
const relFieldName = fieldInfo.relationField;
|
|
116
|
-
if (!relFieldName) {
|
|
117
|
-
throw new Error(`Field \`${fieldInfo.name}\` is a foreign key field but no corresponding relation field is found`);
|
|
118
|
-
}
|
|
119
|
-
const relationField = (0, cross_1.requireField)(this.options.modelMeta, model, relFieldName);
|
|
120
|
-
// construct a `{ connect: { ... } }` payload
|
|
121
|
-
let connect = (_b = data[relationField.name]) === null || _b === void 0 ? void 0 : _b.connect;
|
|
122
|
-
if (!connect) {
|
|
123
|
-
connect = {};
|
|
124
|
-
data[relationField.name] = { connect };
|
|
125
|
-
}
|
|
126
|
-
// sets the opposite fk field to value `authDefaultValue`
|
|
127
|
-
const oppositeFkFieldName = this.getOppositeFkFieldName(relationField, fieldInfo);
|
|
128
|
-
if (!oppositeFkFieldName) {
|
|
129
|
-
throw new Error(`Cannot find opposite foreign key field for \`${fieldInfo.name}\` in relation field \`${relFieldName}\``);
|
|
130
|
-
}
|
|
131
|
-
connect[oppositeFkFieldName] = authDefaultValue;
|
|
132
|
-
return;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
// set default value directly
|
|
136
|
-
data[fieldInfo.name] = authDefaultValue;
|
|
137
|
-
}
|
|
138
|
-
getOppositeFkFieldName(relationField, fieldInfo) {
|
|
139
|
-
if (!relationField.foreignKeyMapping) {
|
|
140
|
-
return undefined;
|
|
141
|
-
}
|
|
142
|
-
const entry = Object.entries(relationField.foreignKeyMapping).find(([, v]) => v === fieldInfo.name);
|
|
143
|
-
return entry === null || entry === void 0 ? void 0 : entry[0];
|
|
144
|
-
}
|
|
145
|
-
getDefaultValue(fieldInfo) {
|
|
146
|
-
var _a;
|
|
147
|
-
if (!this.userContext) {
|
|
148
|
-
throw (0, utils_1.prismaClientValidationError)(this.prisma, this.options.prismaModule, `Evaluating default value of field \`${fieldInfo.name}\` requires a user context`);
|
|
149
|
-
}
|
|
150
|
-
return (_a = fieldInfo.defaultValueProvider) === null || _a === void 0 ? void 0 : _a.call(fieldInfo, this.userContext);
|
|
151
|
-
}
|
|
152
|
-
setDefaultValueForTypeDefData(type, data) {
|
|
153
|
-
if (!data || (typeof data !== 'object' && !Array.isArray(data))) {
|
|
154
|
-
return;
|
|
155
|
-
}
|
|
156
|
-
const typeDef = (0, cross_1.getTypeDefInfo)(this.options.modelMeta, type);
|
|
157
|
-
if (!typeDef) {
|
|
158
|
-
return;
|
|
159
|
-
}
|
|
160
|
-
(0, cross_1.enumerate)(data).forEach((item) => {
|
|
161
|
-
if (!item || typeof item !== 'object') {
|
|
162
|
-
return;
|
|
163
|
-
}
|
|
164
|
-
for (const fieldInfo of Object.values(typeDef.fields)) {
|
|
165
|
-
if (fieldInfo.isTypeDef) {
|
|
166
|
-
// recurse
|
|
167
|
-
this.setDefaultValueForTypeDefData(fieldInfo.type, item[fieldInfo.name]);
|
|
168
|
-
}
|
|
169
|
-
else if (!(fieldInfo.name in item)) {
|
|
170
|
-
// set default value if the payload doesn't set the field
|
|
171
|
-
const defaultValue = this.getDefaultValue(fieldInfo);
|
|
172
|
-
if (defaultValue !== undefined) {
|
|
173
|
-
item[fieldInfo.name] = defaultValue;
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
});
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
//# sourceMappingURL=default-auth.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"default-auth.js","sourceRoot":"","sources":["../../../src/enhancements/node/default-auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import type { DbClientContract, EnhancementContext } from '../../types';
|
|
2
|
-
import type { InternalEnhancementOptions } from './create-enhancement';
|
|
3
|
-
import { DefaultPrismaProxyHandler } from './proxy';
|
|
4
|
-
export declare function withDelegate<DbClient extends object>(prisma: DbClient, options: InternalEnhancementOptions, context: EnhancementContext | undefined): DbClient;
|
|
5
|
-
export declare class DelegateProxyHandler extends DefaultPrismaProxyHandler {
|
|
6
|
-
private readonly context;
|
|
7
|
-
private readonly logger;
|
|
8
|
-
private readonly queryUtils;
|
|
9
|
-
constructor(prisma: DbClientContract, model: string, options: InternalEnhancementOptions, context: EnhancementContext | undefined);
|
|
10
|
-
findFirst(args: any): Promise<unknown>;
|
|
11
|
-
findFirstOrThrow(args: any): Promise<unknown>;
|
|
12
|
-
findUnique(args: any): Promise<unknown>;
|
|
13
|
-
findUniqueOrThrow(args: any): Promise<unknown>;
|
|
14
|
-
findMany(args: any): Promise<unknown[]>;
|
|
15
|
-
private doFind;
|
|
16
|
-
private ensureDiscriminatorSelection;
|
|
17
|
-
private injectWhereHierarchy;
|
|
18
|
-
private injectSelectIncludeHierarchy;
|
|
19
|
-
private buildSelectIncludeHierarchy;
|
|
20
|
-
private injectBaseFieldSelect;
|
|
21
|
-
private injectBaseIncludeRecursively;
|
|
22
|
-
private injectConcreteIncludeRecursively;
|
|
23
|
-
private createConcreteRelationIncludePayload;
|
|
24
|
-
create(args: any): Promise<any>;
|
|
25
|
-
private sanitizeMutationPayload;
|
|
26
|
-
createMany(args: {
|
|
27
|
-
data: any;
|
|
28
|
-
skipDuplicates?: boolean;
|
|
29
|
-
}): Promise<{
|
|
30
|
-
count: number;
|
|
31
|
-
}>;
|
|
32
|
-
createManyAndReturn(args: {
|
|
33
|
-
data: any;
|
|
34
|
-
select?: any;
|
|
35
|
-
skipDuplicates?: boolean;
|
|
36
|
-
}): Promise<unknown[]>;
|
|
37
|
-
private doCreate;
|
|
38
|
-
private injectCreateHierarchy;
|
|
39
|
-
private doProcessCreatePayload;
|
|
40
|
-
private ensureBaseCreateHierarchy;
|
|
41
|
-
private fkAssignmentToConnect;
|
|
42
|
-
private injectBaseFieldData;
|
|
43
|
-
update(args: any): Promise<unknown>;
|
|
44
|
-
updateMany(args: any): Promise<{
|
|
45
|
-
count: number;
|
|
46
|
-
}>;
|
|
47
|
-
upsert(args: any): Promise<unknown>;
|
|
48
|
-
private doUpdate;
|
|
49
|
-
private doUpdateMany;
|
|
50
|
-
private injectUpdateHierarchy;
|
|
51
|
-
private doProcessUpdatePayload;
|
|
52
|
-
delete(args: any): Promise<unknown>;
|
|
53
|
-
deleteMany(args: any): Promise<{
|
|
54
|
-
count: number;
|
|
55
|
-
}>;
|
|
56
|
-
private doDeleteMany;
|
|
57
|
-
private deleteBaseRecursively;
|
|
58
|
-
private doDelete;
|
|
59
|
-
private getRelationDelegateEntitiesForCascadeDelete;
|
|
60
|
-
private isFieldCascadeDelete;
|
|
61
|
-
aggregate(args: any): Promise<unknown>;
|
|
62
|
-
count(args: any): Promise<unknown>;
|
|
63
|
-
groupBy(args: any): Promise<unknown>;
|
|
64
|
-
private checkAggregationArgs;
|
|
65
|
-
private extractSelectInclude;
|
|
66
|
-
private makeAuxRelationName;
|
|
67
|
-
private getModelName;
|
|
68
|
-
private getIdFields;
|
|
69
|
-
private getModelInfo;
|
|
70
|
-
private getBaseModel;
|
|
71
|
-
private involvesDelegateModel;
|
|
72
|
-
private isDelegateOrDescendantOfDelegate;
|
|
73
|
-
private assembleHierarchy;
|
|
74
|
-
private assembleUp;
|
|
75
|
-
private assembleDown;
|
|
76
|
-
private getUpdatedAtFromDelegateBases;
|
|
77
|
-
}
|