@zenstackhq/runtime 1.0.0-beta.1 → 1.0.0-beta.11
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 +70 -0
- package/browser/index.js.map +1 -0
- package/browser/index.mjs +32 -0
- package/browser/index.mjs.map +1 -0
- package/constants.d.ts +12 -2
- package/constants.js +13 -2
- package/constants.js.map +1 -1
- package/enhancements/index.d.ts +4 -0
- package/enhancements/index.js +4 -0
- package/enhancements/index.js.map +1 -1
- package/enhancements/model-meta.d.ts +4 -0
- package/enhancements/model-meta.js +24 -3
- package/enhancements/model-meta.js.map +1 -1
- package/enhancements/nested-write-vistor.d.ts +12 -11
- package/enhancements/nested-write-vistor.js +10 -10
- package/enhancements/nested-write-vistor.js.map +1 -1
- package/enhancements/policy/handler.d.ts +4 -3
- package/enhancements/policy/handler.js +12 -13
- package/enhancements/policy/handler.js.map +1 -1
- package/enhancements/policy/index.d.ts +5 -1
- package/enhancements/policy/index.js +36 -4
- package/enhancements/policy/index.js.map +1 -1
- package/enhancements/policy/policy-utils.d.ts +6 -3
- package/enhancements/policy/policy-utils.js +112 -39
- package/enhancements/policy/policy-utils.js.map +1 -1
- package/enhancements/types.d.ts +10 -1
- package/enhancements/utils.js +26 -4
- 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 +31 -8
- 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
package/enhancements/types.d.ts
CHANGED
|
@@ -29,5 +29,14 @@ export type PolicyDef = {
|
|
|
29
29
|
} & Partial<Record<PolicyOperationKind, PolicyFunc>> & {
|
|
30
30
|
preValueSelect?: object;
|
|
31
31
|
}>;
|
|
32
|
-
|
|
32
|
+
validation: Record<string, {
|
|
33
|
+
hasValidation: boolean;
|
|
34
|
+
}>;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Zod schemas for validation
|
|
38
|
+
*/
|
|
39
|
+
export type ZodSchemas = {
|
|
40
|
+
models: Record<string, z.ZodSchema>;
|
|
41
|
+
input: Record<string, Record<string, z.ZodSchema>>;
|
|
33
42
|
};
|
package/enhancements/utils.js
CHANGED
|
@@ -81,20 +81,42 @@ function loadPrismaModule(prisma) {
|
|
|
81
81
|
var _a;
|
|
82
82
|
// https://github.com/prisma/prisma/discussions/17832
|
|
83
83
|
if ((_a = prisma._engineConfig) === null || _a === void 0 ? void 0 : _a.datamodelPath) {
|
|
84
|
+
// try engine path first
|
|
84
85
|
const loadPath = path_1.default.dirname(prisma._engineConfig.datamodelPath);
|
|
85
86
|
try {
|
|
86
87
|
const _prisma = require(loadPath).Prisma;
|
|
87
|
-
if (typeof _prisma !== 'undefined')
|
|
88
|
+
if (typeof _prisma !== 'undefined') {
|
|
88
89
|
return _prisma;
|
|
89
|
-
|
|
90
|
+
}
|
|
90
91
|
}
|
|
91
92
|
catch (_b) {
|
|
92
|
-
|
|
93
|
+
// noop
|
|
93
94
|
}
|
|
94
95
|
}
|
|
95
|
-
|
|
96
|
+
try {
|
|
97
|
+
// Prisma v4
|
|
96
98
|
return require('@prisma/client/runtime');
|
|
97
99
|
}
|
|
100
|
+
catch (_c) {
|
|
101
|
+
try {
|
|
102
|
+
// Prisma v5
|
|
103
|
+
return require('@prisma/client');
|
|
104
|
+
}
|
|
105
|
+
catch (err) {
|
|
106
|
+
if (process.env.ZENSTACK_TEST === '1') {
|
|
107
|
+
// running in test, try cwd
|
|
108
|
+
try {
|
|
109
|
+
return require(path_1.default.join(process.cwd(), 'node_modules/@prisma/client/runtime'));
|
|
110
|
+
}
|
|
111
|
+
catch (_d) {
|
|
112
|
+
return require(path_1.default.join(process.cwd(), 'node_modules/@prisma/client'));
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
throw err;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
98
120
|
}
|
|
99
121
|
function prismaClientValidationError(prisma, ...args) {
|
|
100
122
|
if (!_PrismaClientValidationError) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/enhancements/utils.ts"],"names":[],"mappings":";AAAA,uDAAuD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEvD,uDAAkD;AAClD,gDAAwB;AACxB,2CAA6B;AAC7B,4CAAgD;AAIhD;;GAEG;AACH,SAAgB,cAAc,CAAC,IAAY;IACvC,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,4BAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACtF,CAAC;AAFD,wCAEC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,SAAoB,EAAE,KAAa,EAAE,eAAe,GAAG,KAAK;IACpF,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,IAAA,iCAAc,EAAC,KAAK,CAAC,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM,EAAE;QACT,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,EAAE,CAAC,CAAC;KACzD;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,eAAe,EAAE;QACxC,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,4BAA4B,CAAC,CAAC;KAC/D;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAVD,kCAUC;AAOD;;GAEG;AACH,SAAgB,SAAS,CAAI,CAAgB;IACzC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QAClB,OAAO,CAAC,CAAC;KACZ;SAAM;QACH,OAAO,CAAC,CAAC,CAAC,CAAC;KACd;AACL,CAAC;AAND,8BAMC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,KAAc;IACvC,OAAO,IAAI,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;AACxD,CAAC;AAFD,oCAEC;AAED,IAAI,4BAA+D,CAAC;AACpE,IAAI,8BAAiE,CAAC;AACtE,IAAI,gCAAmE,CAAC;AAExE,uDAAuD;AACvD,SAAS,gBAAgB,CAAC,MAAW;;IACjC,qDAAqD;IACrD,IAAI,MAAA,MAAM,CAAC,aAAa,0CAAE,aAAa,EAAE;QACrC,MAAM,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QAClE,IAAI;YACA,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;YACzC,IAAI,OAAO,OAAO,KAAK,WAAW;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/enhancements/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { FieldInfo } from '../types';
|
|
2
|
+
import { ModelMeta } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Context for visiting
|
|
5
|
+
*/
|
|
6
|
+
export type WhereVisitorContext = {
|
|
7
|
+
/**
|
|
8
|
+
* Parent data, can be used to replace fields
|
|
9
|
+
*/
|
|
10
|
+
parent: any;
|
|
11
|
+
/**
|
|
12
|
+
* Current field, undefined if toplevel
|
|
13
|
+
*/
|
|
14
|
+
field?: FieldInfo;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* WhereVisitor's callback actions
|
|
18
|
+
*/
|
|
19
|
+
export type WhereVisitorCallback = {
|
|
20
|
+
field?: (field: FieldInfo, data: any) => Promise<unknown>;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Recursive visitor for where payload
|
|
24
|
+
*/
|
|
25
|
+
export declare class WhereVisitor {
|
|
26
|
+
private readonly modelMeta;
|
|
27
|
+
private readonly callback;
|
|
28
|
+
constructor(modelMeta: ModelMeta, callback: WhereVisitorCallback);
|
|
29
|
+
/**
|
|
30
|
+
* Start visiting
|
|
31
|
+
*/
|
|
32
|
+
visit(model: string, where: any): Promise<void>;
|
|
33
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
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 model_meta_1 = require("./model-meta");
|
|
16
|
+
const utils_1 = require("./utils");
|
|
17
|
+
const FILTER_OPERATORS = [
|
|
18
|
+
'equals',
|
|
19
|
+
'not',
|
|
20
|
+
'in',
|
|
21
|
+
'notIn',
|
|
22
|
+
'lt',
|
|
23
|
+
'lte',
|
|
24
|
+
'gt',
|
|
25
|
+
'gte',
|
|
26
|
+
'contains',
|
|
27
|
+
'search',
|
|
28
|
+
'startsWith',
|
|
29
|
+
'endsWith',
|
|
30
|
+
];
|
|
31
|
+
const RELATION_FILTER_OPERATORS = ['is', 'isNot', 'some', 'every', 'none'];
|
|
32
|
+
/**
|
|
33
|
+
* Recursive visitor for where payload
|
|
34
|
+
*/
|
|
35
|
+
class WhereVisitor {
|
|
36
|
+
constructor(modelMeta, callback) {
|
|
37
|
+
this.modelMeta = modelMeta;
|
|
38
|
+
this.callback = callback;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Start visiting
|
|
42
|
+
*/
|
|
43
|
+
visit(model, where) {
|
|
44
|
+
var _a, _b, _c, _d;
|
|
45
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
46
|
+
if (!where) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
for (const [k, v] of Object.entries(where)) {
|
|
50
|
+
if (['AND', 'OR', 'NOT'].includes(k)) {
|
|
51
|
+
for (const item of (0, utils_1.enumerate)(v)) {
|
|
52
|
+
yield this.visit(model, item);
|
|
53
|
+
}
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
if (RELATION_FILTER_OPERATORS.includes(k)) {
|
|
57
|
+
// visit into filter body
|
|
58
|
+
yield this.visit(model, v);
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
const field = (0, model_meta_1.resolveField)(this.modelMeta, model, k);
|
|
62
|
+
if (!field) {
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
if (typeof v === 'object') {
|
|
66
|
+
const filterOp = Object.keys(v).find((f) => FILTER_OPERATORS.includes(f));
|
|
67
|
+
if (filterOp) {
|
|
68
|
+
// reach into filter value
|
|
69
|
+
const newValue = yield ((_b = (_a = this.callback).field) === null || _b === void 0 ? void 0 : _b.call(_a, field, v[filterOp]));
|
|
70
|
+
v[filterOp] = newValue;
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
if (Object.keys(v).some((f) => RELATION_FILTER_OPERATORS.includes(f))) {
|
|
74
|
+
// filter payload
|
|
75
|
+
yield this.visit(field.type, v);
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
// scalar field
|
|
80
|
+
const newValue = yield ((_d = (_c = this.callback).field) === null || _d === void 0 ? void 0 : _d.call(_c, field, v));
|
|
81
|
+
where[k] = newValue;
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
exports.WhereVisitor = WhereVisitor;
|
|
87
|
+
//# sourceMappingURL=where-visitor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"where-visitor.js","sourceRoot":"","sources":["../../src/enhancements/where-visitor.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,uDAAuD;;;;;;;;;;;;AAGvD,6CAA4C;AAE5C,mCAAoC;AAwBpC,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;gBACR,OAAO;aACV;YAED,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAM,KAAK,CAAC,EAAE;gBAC7C,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;oBAClC,KAAK,MAAM,IAAI,IAAI,IAAA,iBAAS,EAAC,CAAC,CAAC,EAAE;wBAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;qBACjC;oBACD,SAAS;iBACZ;gBAED,IAAI,yBAAyB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;oBACvC,yBAAyB;oBACzB,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oBAC3B,SAAS;iBACZ;gBAED,MAAM,KAAK,GAAG,IAAA,yBAAY,EAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;gBACrD,IAAI,CAAC,KAAK,EAAE;oBACR,SAAS;iBACZ;gBAED,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;oBACvB,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;wBACV,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;qBACZ;oBAED,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;wBACnE,iBAAiB;wBACjB,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;wBAChC,SAAS;qBACZ;iBACJ;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;aACvB;;KACJ;CACJ;AAnDD,oCAmDC"}
|
package/index.d.ts
CHANGED
package/index.js
CHANGED
|
@@ -14,9 +14,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./constants"), exports);
|
|
17
18
|
__exportStar(require("./enhancements"), exports);
|
|
18
|
-
__exportStar(require("./
|
|
19
|
+
__exportStar(require("./error"), exports);
|
|
19
20
|
__exportStar(require("./types"), exports);
|
|
20
21
|
__exportStar(require("./validation"), exports);
|
|
21
|
-
__exportStar(require("./error"), exports);
|
|
22
22
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,iDAA+B;AAC/B,0CAAwB;AACxB,0CAAwB;AACxB,+CAA6B"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,37 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zenstackhq/runtime",
|
|
3
3
|
"displayName": "ZenStack Runtime Library",
|
|
4
|
-
"version": "1.0.0-beta.
|
|
4
|
+
"version": "1.0.0-beta.11",
|
|
5
5
|
"description": "Runtime of ZenStack for both client-side and server-side environments.",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
8
|
"url": "https://github.com/zenstackhq/zenstack"
|
|
9
9
|
},
|
|
10
|
+
"main": "index.js",
|
|
11
|
+
"types": "index.d.ts",
|
|
12
|
+
"exports": {
|
|
13
|
+
".": {
|
|
14
|
+
"default": "./index.js"
|
|
15
|
+
},
|
|
16
|
+
"./package.json": {
|
|
17
|
+
"default": "./package.json"
|
|
18
|
+
},
|
|
19
|
+
"./zod": {
|
|
20
|
+
"default": "./zod/index.js"
|
|
21
|
+
},
|
|
22
|
+
"./zod/input": {
|
|
23
|
+
"default": "./zod/input.js"
|
|
24
|
+
},
|
|
25
|
+
"./zod/models": {
|
|
26
|
+
"default": "./zod/models.js"
|
|
27
|
+
},
|
|
28
|
+
"./browser": {
|
|
29
|
+
"import": "./browser/index.mjs",
|
|
30
|
+
"require": "./browser/index.js",
|
|
31
|
+
"default": "./browser/index.js",
|
|
32
|
+
"types": "./browser/index.d.ts"
|
|
33
|
+
}
|
|
34
|
+
},
|
|
10
35
|
"publishConfig": {
|
|
11
36
|
"directory": "dist",
|
|
12
37
|
"linkDirectory": true
|
|
@@ -15,6 +40,7 @@
|
|
|
15
40
|
"@paralleldrive/cuid2": "^2.2.0",
|
|
16
41
|
"@types/bcryptjs": "^2.4.2",
|
|
17
42
|
"bcryptjs": "^2.4.3",
|
|
43
|
+
"buffer": "^6.0.3",
|
|
18
44
|
"change-case": "^4.1.2",
|
|
19
45
|
"colors": "1.4.0",
|
|
20
46
|
"decimal.js": "^10.4.2",
|
|
@@ -23,12 +49,10 @@
|
|
|
23
49
|
"pluralize": "^8.0.0",
|
|
24
50
|
"superjson": "^1.11.0",
|
|
25
51
|
"tslib": "^2.4.1",
|
|
52
|
+
"upper-case-first": "^2.0.2",
|
|
26
53
|
"zod": "3.21.1",
|
|
27
54
|
"zod-validation-error": "^0.2.1"
|
|
28
55
|
},
|
|
29
|
-
"peerDependencies": {
|
|
30
|
-
"@prisma/client": "^4.0.0"
|
|
31
|
-
},
|
|
32
56
|
"author": {
|
|
33
57
|
"name": "ZenStack Team"
|
|
34
58
|
},
|
|
@@ -37,8 +61,7 @@
|
|
|
37
61
|
"devDependencies": {
|
|
38
62
|
"@types/bcryptjs": "^2.4.2",
|
|
39
63
|
"@types/jest": "^29.5.0",
|
|
40
|
-
"@types/
|
|
41
|
-
"@types/node": "^14.18.29",
|
|
64
|
+
"@types/node": "^18.0.0",
|
|
42
65
|
"@types/pluralize": "^0.0.29",
|
|
43
66
|
"copyfiles": "^2.4.1",
|
|
44
67
|
"rimraf": "^3.0.2",
|
|
@@ -46,8 +69,8 @@
|
|
|
46
69
|
},
|
|
47
70
|
"scripts": {
|
|
48
71
|
"clean": "rimraf dist",
|
|
49
|
-
"build": "pnpm lint && pnpm clean && tsc && copyfiles ./package.json ./README.md ../../LICENSE dist",
|
|
50
|
-
"watch": "tsc --watch",
|
|
72
|
+
"build": "pnpm lint && pnpm clean && tsc && tsup-node && copyfiles ./package.json ./README.md ../../LICENSE dist && copyfiles -u1 'res/**/*' dist && pnpm pack dist --pack-destination '../../../.build'",
|
|
73
|
+
"watch": "concurrently \"tsc --watch\" \"tsup-node --watch\"",
|
|
51
74
|
"lint": "eslint src --ext ts",
|
|
52
75
|
"publish-dev": "pnpm publish --tag dev"
|
|
53
76
|
}
|
package/zod/index.d.ts
ADDED
package/zod/index.js
ADDED
package/zod/input.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '.zenstack/zod/input';
|
package/zod/input.js
ADDED
package/zod/models.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '.zenstack/zod/models';
|
package/zod/models.js
ADDED
package/serialization-utils.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function registerSerializers(): void;
|
package/serialization-utils.js
DELETED
|
@@ -1,22 +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.registerSerializers = void 0;
|
|
7
|
-
const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
8
|
-
const superjson_1 = __importDefault(require("superjson"));
|
|
9
|
-
function registerSerializers() {
|
|
10
|
-
superjson_1.default.registerCustom({
|
|
11
|
-
isApplicable: (v) => Buffer.isBuffer(v),
|
|
12
|
-
serialize: (v) => JSON.stringify(v.toJSON().data),
|
|
13
|
-
deserialize: (v) => Buffer.from(JSON.parse(v)),
|
|
14
|
-
}, 'Buffer');
|
|
15
|
-
superjson_1.default.registerCustom({
|
|
16
|
-
isApplicable: (v) => decimal_js_1.default.isDecimal(v),
|
|
17
|
-
serialize: (v) => v.toJSON(),
|
|
18
|
-
deserialize: (v) => new decimal_js_1.default(v),
|
|
19
|
-
}, 'decimal.js');
|
|
20
|
-
}
|
|
21
|
-
exports.registerSerializers = registerSerializers;
|
|
22
|
-
//# sourceMappingURL=serialization-utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"serialization-utils.js","sourceRoot":"","sources":["../src/serialization-utils.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAiC;AACjC,0DAAkC;AAElC,SAAgB,mBAAmB;IAC/B,mBAAS,CAAC,cAAc,CACpB;QACI,YAAY,EAAE,CAAC,CAAC,EAAe,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpD,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC;QACjD,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KACjD,EACD,QAAQ,CACX,CAAC;IACF,mBAAS,CAAC,cAAc,CACpB;QACI,YAAY,EAAE,CAAC,CAAC,EAAgB,EAAE,CAAC,oBAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QACvD,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE;QAC5B,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,oBAAO,CAAC,CAAC,CAAC;KACrC,EACD,YAAY,CACf,CAAC;AACN,CAAC;AAjBD,kDAiBC"}
|
package/zod.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import z from 'zod';
|
|
2
|
-
import { DbOperations } from './types';
|
|
3
|
-
/**
|
|
4
|
-
* Mapping from model type name to zod schema for Prisma operations
|
|
5
|
-
*/
|
|
6
|
-
export type ModelZodSchema = Record<string, Record<keyof DbOperations, z.ZodType>>;
|
|
7
|
-
/**
|
|
8
|
-
* Load zod schema from standard location.
|
|
9
|
-
*/
|
|
10
|
-
export declare function getModelZodSchemas(): ModelZodSchema;
|
package/zod.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getModelZodSchemas = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Load zod schema from standard location.
|
|
6
|
-
*/
|
|
7
|
-
function getModelZodSchemas() {
|
|
8
|
-
try {
|
|
9
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
10
|
-
return require('.zenstack/zod').default;
|
|
11
|
-
}
|
|
12
|
-
catch (_a) {
|
|
13
|
-
throw new Error('Zod schemas cannot be loaded. Please make sure "@core/zod" plugin is enabled in schema.zmodel.');
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
exports.getModelZodSchemas = getModelZodSchemas;
|
|
17
|
-
//# sourceMappingURL=zod.js.map
|
package/zod.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"zod.js","sourceRoot":"","sources":["../src/zod.ts"],"names":[],"mappings":";;;AAQA;;GAEG;AACH,SAAgB,kBAAkB;IAC9B,IAAI;QACA,8DAA8D;QAC9D,OAAO,OAAO,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC;KAC3C;IAAC,WAAM;QACJ,MAAM,IAAI,KAAK,CACX,gGAAgG,CACnG,CAAC;KACL;AACL,CAAC;AATD,gDASC"}
|