@zenstackhq/runtime 1.0.0-beta.2 → 1.0.0-beta.21

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.
Files changed (83) hide show
  1. package/browser/index.d.mts +13 -0
  2. package/browser/index.d.ts +13 -0
  3. package/browser/index.js +70 -0
  4. package/browser/index.js.map +1 -0
  5. package/browser/index.mjs +32 -0
  6. package/browser/index.mjs.map +1 -0
  7. package/constants.d.ts +58 -13
  8. package/constants.js +60 -14
  9. package/constants.js.map +1 -1
  10. package/enhancements/enhance.d.ts +18 -0
  11. package/enhancements/enhance.js +42 -0
  12. package/enhancements/enhance.js.map +1 -0
  13. package/enhancements/index.d.ts +5 -0
  14. package/enhancements/index.js +5 -0
  15. package/enhancements/index.js.map +1 -1
  16. package/enhancements/model-data-visitor.d.ts +16 -0
  17. package/enhancements/model-data-visitor.js +41 -0
  18. package/enhancements/model-data-visitor.js.map +1 -0
  19. package/enhancements/model-meta.d.ts +6 -1
  20. package/enhancements/model-meta.js +23 -2
  21. package/enhancements/model-meta.js.map +1 -1
  22. package/enhancements/nested-write-vistor.d.ts +21 -16
  23. package/enhancements/nested-write-vistor.js +73 -34
  24. package/enhancements/nested-write-vistor.js.map +1 -1
  25. package/enhancements/omit.d.ts +1 -1
  26. package/enhancements/policy/handler.d.ts +36 -20
  27. package/enhancements/policy/handler.js +824 -159
  28. package/enhancements/policy/handler.js.map +1 -1
  29. package/enhancements/policy/index.d.ts +6 -2
  30. package/enhancements/policy/index.js +53 -3
  31. package/enhancements/policy/index.js.map +1 -1
  32. package/enhancements/policy/logger.js +1 -1
  33. package/enhancements/policy/logger.js.map +1 -1
  34. package/enhancements/policy/policy-utils.d.ts +106 -46
  35. package/enhancements/policy/policy-utils.js +744 -624
  36. package/enhancements/policy/policy-utils.js.map +1 -1
  37. package/enhancements/policy/promise.d.ts +5 -0
  38. package/enhancements/policy/promise.js +42 -0
  39. package/enhancements/policy/promise.js.map +1 -0
  40. package/enhancements/preset.d.ts +3 -8
  41. package/enhancements/preset.js +2 -4
  42. package/enhancements/preset.js.map +1 -1
  43. package/enhancements/proxy.d.ts +3 -1
  44. package/enhancements/proxy.js +45 -28
  45. package/enhancements/proxy.js.map +1 -1
  46. package/enhancements/types.d.ts +25 -8
  47. package/enhancements/types.js +1 -0
  48. package/enhancements/types.js.map +1 -1
  49. package/enhancements/utils.d.ts +4 -0
  50. package/enhancements/utils.js +60 -10
  51. package/enhancements/utils.js.map +1 -1
  52. package/enhancements/where-visitor.d.ts +33 -0
  53. package/enhancements/where-visitor.js +87 -0
  54. package/enhancements/where-visitor.js.map +1 -0
  55. package/error.js +9 -3
  56. package/error.js.map +1 -1
  57. package/index.d.ts +3 -2
  58. package/index.js +3 -2
  59. package/index.js.map +1 -1
  60. package/package.json +33 -9
  61. package/types.d.ts +24 -14
  62. package/types.js +2 -0
  63. package/types.js.map +1 -1
  64. package/validation.d.ts +5 -0
  65. package/validation.js +13 -1
  66. package/validation.js.map +1 -1
  67. package/version.d.ts +5 -0
  68. package/version.js +34 -1
  69. package/version.js.map +1 -1
  70. package/zod/index.d.ts +3 -0
  71. package/zod/index.js +5 -0
  72. package/zod/input.d.ts +1 -0
  73. package/zod/input.js +8 -0
  74. package/zod/models.d.ts +1 -0
  75. package/zod/models.js +8 -0
  76. package/zod/objects.d.ts +1 -0
  77. package/zod/objects.js +8 -0
  78. package/serialization-utils.d.ts +0 -1
  79. package/serialization-utils.js +0 -22
  80. package/serialization-utils.js.map +0 -1
  81. package/zod.d.ts +0 -10
  82. package/zod.js +0 -17
  83. package/zod.js.map +0 -1
@@ -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;gBAAE,OAAO,OAAO,CAAC;YACnD,OAAO,OAAO,CAAC,wBAAwB,CAAC,CAAC;SAC5C;QAAC,WAAM;YACJ,OAAO,OAAO,CAAC,wBAAwB,CAAC,CAAC;SAC5C;KACJ;SAAM;QACH,OAAO,OAAO,CAAC,wBAAwB,CAAC,CAAC;KAC5C;AACL,CAAC;AAED,SAAgB,2BAA2B,CAAC,MAAwB,EAAE,GAAG,IAAe;IACpF,IAAI,CAAC,4BAA4B,EAAE;QAC/B,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACzC,4BAA4B,GAAG,OAAO,CAAC,2BAA2B,CAAC;KACtE;IACD,MAAM,IAAI,4BAA4B,CAAC,GAAG,IAAI,CAAC,CAAC;AACpD,CAAC;AAND,kEAMC;AAED,SAAgB,6BAA6B,CAAC,MAAwB,EAAE,GAAG,IAAe;IACtF,IAAI,CAAC,8BAA8B,EAAE;QACjC,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACzC,8BAA8B,GAAG,OAAO,CAAC,6BAA6B,CAAC;KAC1E;IACD,OAAO,IAAI,8BAA8B,CAAC,GAAG,IAAI,CAAC,CAAC;AACvD,CAAC;AAND,sEAMC;AAED,SAAgB,+BAA+B,CAAC,MAAwB,EAAE,GAAG,IAAe;IACxF,IAAI,CAAC,gCAAgC,EAAE;QACnC,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACzC,gCAAgC,GAAG,OAAO,CAAC,+BAA+B,CAAC;KAC9E;IACD,MAAM,IAAI,gCAAgC,CAAC,GAAG,IAAI,CAAC,CAAC;AACxD,CAAC;AAND,0EAMC"}
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/error.js CHANGED
@@ -3,15 +3,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isPrismaClientValidationError = exports.isPrismaClientUnknownRequestError = exports.isPrismaClientKnownRequestError = void 0;
4
4
  /* eslint-disable @typescript-eslint/no-explicit-any */
5
5
  function isPrismaClientKnownRequestError(err) {
6
- return err.__proto__.constructor.name === 'PrismaClientKnownRequestError';
6
+ return findConstructorName(err.__proto__, 'PrismaClientKnownRequestError');
7
7
  }
8
8
  exports.isPrismaClientKnownRequestError = isPrismaClientKnownRequestError;
9
9
  function isPrismaClientUnknownRequestError(err) {
10
- return err.__proto__.constructor.name === 'PrismaClientUnknownRequestError';
10
+ return findConstructorName(err.__proto__, 'PrismaClientUnknownRequestError');
11
11
  }
12
12
  exports.isPrismaClientUnknownRequestError = isPrismaClientUnknownRequestError;
13
13
  function isPrismaClientValidationError(err) {
14
- return err.__proto__.constructor.name === 'PrismaClientValidationError';
14
+ return findConstructorName(err.__proto__, 'PrismaClientValidationError');
15
15
  }
16
16
  exports.isPrismaClientValidationError = isPrismaClientValidationError;
17
+ function findConstructorName(proto, name) {
18
+ if (!proto) {
19
+ return false;
20
+ }
21
+ return proto.constructor.name === name || findConstructorName(proto.__proto__, name);
22
+ }
17
23
  //# sourceMappingURL=error.js.map
package/error.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":";;;AAAA,uDAAuD;AACvD,SAAgB,+BAA+B,CAC3C,GAAQ;IAER,OAAO,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,KAAK,+BAA+B,CAAC;AAC9E,CAAC;AAJD,0EAIC;AAED,SAAgB,iCAAiC,CAAC,GAAQ;IACtD,OAAO,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,KAAK,iCAAiC,CAAC;AAChF,CAAC;AAFD,8EAEC;AAED,SAAgB,6BAA6B,CAAC,GAAQ;IAClD,OAAO,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,KAAK,6BAA6B,CAAC;AAC5E,CAAC;AAFD,sEAEC"}
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":";;;AAAA,uDAAuD;AACvD,SAAgB,+BAA+B,CAC3C,GAAQ;IAER,OAAO,mBAAmB,CAAC,GAAG,CAAC,SAAS,EAAE,+BAA+B,CAAC,CAAC;AAC/E,CAAC;AAJD,0EAIC;AAED,SAAgB,iCAAiC,CAAC,GAAQ;IACtD,OAAO,mBAAmB,CAAC,GAAG,CAAC,SAAS,EAAE,iCAAiC,CAAC,CAAC;AACjF,CAAC;AAFD,8EAEC;AAED,SAAgB,6BAA6B,CAAC,GAAQ;IAClD,OAAO,mBAAmB,CAAC,GAAG,CAAC,SAAS,EAAE,6BAA6B,CAAC,CAAC;AAC7E,CAAC;AAFD,sEAEC;AAED,SAAS,mBAAmB,CAAC,KAAU,EAAE,IAAY;IACjD,IAAI,CAAC,KAAK,EAAE;QACR,OAAO,KAAK,CAAC;KAChB;IACD,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,IAAI,IAAI,mBAAmB,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACzF,CAAC"}
package/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
+ export * from './constants';
1
2
  export * from './enhancements';
2
- export * from './enhancements/policy';
3
+ export * from './error';
3
4
  export * from './types';
4
5
  export * from './validation';
5
- export * from './error';
6
+ export * from './version';
package/index.js CHANGED
@@ -14,9 +14,10 @@ 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("./enhancements/policy"), exports);
19
+ __exportStar(require("./error"), exports);
19
20
  __exportStar(require("./types"), exports);
20
21
  __exportStar(require("./validation"), exports);
21
- __exportStar(require("./error"), exports);
22
+ __exportStar(require("./version"), exports);
22
23
  //# 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,wDAAsC;AACtC,0CAAwB;AACxB,+CAA6B;AAC7B,0CAAwB"}
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;AAC7B,4CAA0B"}
package/package.json CHANGED
@@ -1,34 +1,58 @@
1
1
  {
2
2
  "name": "@zenstackhq/runtime",
3
3
  "displayName": "ZenStack Runtime Library",
4
- "version": "1.0.0-beta.2",
4
+ "version": "1.0.0-beta.21",
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
13
38
  },
14
39
  "dependencies": {
15
- "@paralleldrive/cuid2": "^2.2.0",
16
40
  "@types/bcryptjs": "^2.4.2",
17
41
  "bcryptjs": "^2.4.3",
42
+ "buffer": "^6.0.3",
18
43
  "change-case": "^4.1.2",
19
44
  "colors": "1.4.0",
20
45
  "decimal.js": "^10.4.2",
21
46
  "deepcopy": "^2.1.0",
22
47
  "lower-case-first": "^2.0.2",
23
48
  "pluralize": "^8.0.0",
49
+ "semver": "^7.3.8",
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,17 +61,17 @@
37
61
  "devDependencies": {
38
62
  "@types/bcryptjs": "^2.4.2",
39
63
  "@types/jest": "^29.5.0",
40
- "@types/lower-case-first": "^1.0.1",
41
- "@types/node": "^14.18.29",
64
+ "@types/node": "^18.0.0",
42
65
  "@types/pluralize": "^0.0.29",
66
+ "@types/semver": "^7.3.13",
43
67
  "copyfiles": "^2.4.1",
44
68
  "rimraf": "^3.0.2",
45
69
  "typescript": "^4.9.3"
46
70
  },
47
71
  "scripts": {
48
72
  "clean": "rimraf dist",
49
- "build": "pnpm lint && pnpm clean && tsc && copyfiles ./package.json ./README.md ../../LICENSE dist",
50
- "watch": "tsc --watch",
73
+ "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'",
74
+ "watch": "concurrently \"tsc --watch\" \"tsup-node --watch\"",
51
75
  "lint": "eslint src --ext ts",
52
76
  "publish-dev": "pnpm publish --tag dev"
53
77
  }
package/types.d.ts CHANGED
@@ -1,28 +1,31 @@
1
+ export type PrismaPromise<T> = Promise<T> & Record<string, (args?: any) => PrismaPromise<any>>;
1
2
  /**
2
3
  * Weakly-typed database access methods
3
4
  */
4
5
  export interface DbOperations {
5
- findMany(args?: unknown): Promise<unknown[]>;
6
- findFirst(args: unknown): Promise<unknown>;
7
- findFirstOrThrow(args: unknown): Promise<unknown>;
8
- findUnique(args: unknown): Promise<unknown>;
9
- findUniqueOrThrow(args: unknown): Promise<unknown>;
10
- create(args: unknown): Promise<unknown>;
6
+ findMany(args?: unknown): Promise<any[]>;
7
+ findFirst(args?: unknown): PrismaPromise<any>;
8
+ findFirstOrThrow(args?: unknown): PrismaPromise<any>;
9
+ findUnique(args: unknown): PrismaPromise<any>;
10
+ findUniqueOrThrow(args: unknown): PrismaPromise<any>;
11
+ create(args: unknown): Promise<any>;
11
12
  createMany(args: unknown, skipDuplicates?: boolean): Promise<{
12
13
  count: number;
13
14
  }>;
14
- update(args: unknown): Promise<unknown>;
15
+ update(args: unknown): Promise<any>;
15
16
  updateMany(args: unknown): Promise<{
16
17
  count: number;
17
18
  }>;
18
- upsert(args: unknown): Promise<unknown>;
19
- delete(args: unknown): Promise<unknown>;
19
+ upsert(args: unknown): Promise<any>;
20
+ delete(args: unknown): Promise<any>;
20
21
  deleteMany(args?: unknown): Promise<{
21
22
  count: number;
22
23
  }>;
23
- aggregate(args: unknown): Promise<unknown>;
24
- groupBy(args: unknown): Promise<unknown>;
25
- count(args?: unknown): Promise<unknown>;
24
+ aggregate(args: unknown): Promise<any>;
25
+ groupBy(args: unknown): Promise<any>;
26
+ count(args?: unknown): Promise<any>;
27
+ subscribe(args?: unknown): Promise<any>;
28
+ fields: Record<string, any>;
26
29
  }
27
30
  /**
28
31
  * Kinds of access policy
@@ -44,6 +47,9 @@ export type QueryContext = {
44
47
  * Current login user (provided by @see RequestHandlerOptions)
45
48
  */
46
49
  user?: AuthUser;
50
+ /**
51
+ * Pre-update value of the entity
52
+ */
47
53
  preValue?: any;
48
54
  };
49
55
  export type RuntimeAttribute = {
@@ -93,9 +99,13 @@ export type FieldInfo = {
93
99
  * If the field is the owner side of a relation
94
100
  */
95
101
  isRelationOwner: boolean;
102
+ /**
103
+ * Mapping from foreign key field names to relation field names
104
+ */
105
+ foreignKeyMapping?: Record<string, string>;
96
106
  };
97
107
  export type DbClientContract = Record<string, DbOperations> & {
98
- $transaction: <T>(action: (tx: Record<string, DbOperations>) => Promise<T>) => Promise<T>;
108
+ $transaction: <T>(action: (tx: Record<string, DbOperations>) => Promise<T>, options?: unknown) => Promise<T>;
99
109
  };
100
- export declare const PrismaWriteActions: readonly ["create", "createMany", "connectOrCreate", "update", "updateMany", "upsert", "connect", "disconnect", "delete", "deleteMany"];
110
+ export declare const PrismaWriteActions: readonly ["create", "createMany", "connectOrCreate", "update", "updateMany", "upsert", "connect", "disconnect", "set", "delete", "deleteMany"];
101
111
  export type PrismaWriteActionType = (typeof PrismaWriteActions)[number];
package/types.js CHANGED
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.PrismaWriteActions = void 0;
4
5
  exports.PrismaWriteActions = [
@@ -10,6 +11,7 @@ exports.PrismaWriteActions = [
10
11
  'upsert',
11
12
  'connect',
12
13
  'disconnect',
14
+ 'set',
13
15
  'delete',
14
16
  'deleteMany',
15
17
  ];
package/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AA4Ga,QAAA,kBAAkB,GAAG;IAC9B,QAAQ;IACR,YAAY;IACZ,iBAAiB;IACjB,QAAQ;IACR,YAAY;IACZ,QAAQ;IACR,SAAS;IACT,YAAY;IACZ,QAAQ;IACR,YAAY;CACN,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA,uDAAuD;;;AA0H1C,QAAA,kBAAkB,GAAG;IAC9B,QAAQ;IACR,YAAY;IACZ,iBAAiB;IACjB,QAAQ;IACR,YAAY;IACZ,QAAQ;IACR,SAAS;IACT,YAAY;IACZ,KAAK;IACL,QAAQ;IACR,YAAY;CACN,CAAC"}
package/validation.d.ts CHANGED
@@ -17,3 +17,8 @@ export declare function validate(validator: z.ZodType, data: unknown): void;
17
17
  * @returns
18
18
  */
19
19
  export declare function hasAllFields(obj: any, fields: string[]): boolean;
20
+ /**
21
+ * Check if the given objects have equal values for the given fields. Returns
22
+ * false if either object is nullish or is not an object.
23
+ */
24
+ export declare function allFieldsEqual(obj1: any, obj2: any, fields: string[]): boolean;
package/validation.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.hasAllFields = exports.validate = exports.ValidationError = void 0;
3
+ exports.allFieldsEqual = exports.hasAllFields = exports.validate = exports.ValidationError = void 0;
4
4
  const zod_validation_error_1 = require("zod-validation-error");
5
5
  /**
6
6
  * Error indicating violations of field-level constraints
@@ -37,4 +37,16 @@ function hasAllFields(obj, fields) {
37
37
  return fields.every((f) => obj[f] !== undefined && obj[f] !== null);
38
38
  }
39
39
  exports.hasAllFields = hasAllFields;
40
+ /**
41
+ * Check if the given objects have equal values for the given fields. Returns
42
+ * false if either object is nullish or is not an object.
43
+ */
44
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
45
+ function allFieldsEqual(obj1, obj2, fields) {
46
+ if (!obj1 || !obj2 || typeof obj1 !== 'object' || typeof obj2 !== 'object') {
47
+ return false;
48
+ }
49
+ return fields.every((f) => obj1[f] === obj2[f]);
50
+ }
51
+ exports.allFieldsEqual = allFieldsEqual;
40
52
  //# sourceMappingURL=validation.js.map
package/validation.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":";;;AACA,+DAAoD;AAEpD;;GAEG;AACH,MAAa,eAAe;IACxB,YAA4B,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;IAAG,CAAC;CAClD;AAFD,0CAEC;AAED;;GAEG;AACH,SAAgB,QAAQ,CAAC,SAAoB,EAAE,IAAa;IACxD,IAAI;QACA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KACzB;IAAC,OAAO,GAAG,EAAE;QACV,MAAM,IAAI,eAAe,CAAC,IAAA,mCAAY,EAAC,GAAiB,CAAC,CAAC,OAAO,CAAC,CAAC;KACtE;AACL,CAAC;AAND,4BAMC;AAED;;;;;GAKG;AACH,8DAA8D;AAC9D,SAAgB,YAAY,CAAC,GAAQ,EAAE,MAAgB;IACnD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,GAAG,EAAE;QACjC,OAAO,KAAK,CAAC;KAChB;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;AACxE,CAAC;AALD,oCAKC"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":";;;AACA,+DAAoD;AAEpD;;GAEG;AACH,MAAa,eAAe;IACxB,YAA4B,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;IAAG,CAAC;CAClD;AAFD,0CAEC;AAED;;GAEG;AACH,SAAgB,QAAQ,CAAC,SAAoB,EAAE,IAAa;IACxD,IAAI;QACA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KACzB;IAAC,OAAO,GAAG,EAAE;QACV,MAAM,IAAI,eAAe,CAAC,IAAA,mCAAY,EAAC,GAAiB,CAAC,CAAC,OAAO,CAAC,CAAC;KACtE;AACL,CAAC;AAND,4BAMC;AAED;;;;;GAKG;AACH,8DAA8D;AAC9D,SAAgB,YAAY,CAAC,GAAQ,EAAE,MAAgB;IACnD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,GAAG,EAAE;QACjC,OAAO,KAAK,CAAC;KAChB;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;AACxE,CAAC;AALD,oCAKC;AAED;;;GAGG;AACH,8DAA8D;AAC9D,SAAgB,cAAc,CAAC,IAAS,EAAE,IAAS,EAAE,MAAgB;IACjE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QACxE,OAAO,KAAK,CAAC;KAChB;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AALD,wCAKC"}
package/version.d.ts CHANGED
@@ -1 +1,6 @@
1
1
  export declare function getVersion(): any;
2
+ /**
3
+ * Gets installed Prisma version by first checking "@prisma/client" and if not available,
4
+ * "prisma".
5
+ */
6
+ export declare function getPrismaVersion(): string | undefined;
package/version.js CHANGED
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getVersion = void 0;
6
+ exports.getPrismaVersion = exports.getVersion = void 0;
7
+ const path_1 = __importDefault(require("path"));
4
8
  /* eslint-disable @typescript-eslint/no-var-requires */
5
9
  function getVersion() {
6
10
  try {
@@ -17,4 +21,33 @@ function getVersion() {
17
21
  }
18
22
  }
19
23
  exports.getVersion = getVersion;
24
+ /**
25
+ * Gets installed Prisma version by first checking "@prisma/client" and if not available,
26
+ * "prisma".
27
+ */
28
+ function getPrismaVersion() {
29
+ try {
30
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
31
+ return require('@prisma/client/package.json').version;
32
+ }
33
+ catch (_a) {
34
+ try {
35
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
36
+ return require('prisma/package.json').version;
37
+ }
38
+ catch (_b) {
39
+ if (process.env.ZENSTACK_TEST === '1') {
40
+ // test environment
41
+ try {
42
+ return require(path_1.default.resolve('./node_modules/@prisma/client/package.json')).version;
43
+ }
44
+ catch (_c) {
45
+ return undefined;
46
+ }
47
+ }
48
+ return undefined;
49
+ }
50
+ }
51
+ }
52
+ exports.getPrismaVersion = getPrismaVersion;
20
53
  //# sourceMappingURL=version.js.map
package/version.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":";;;AAAA,uDAAuD;AACvD,SAAgB,UAAU;IACtB,IAAI;QACA,OAAO,OAAO,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC;KAC5C;IAAC,WAAM;QACJ,IAAI;YACA,kBAAkB;YAClB,OAAO,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC;SAC7C;QAAC,WAAM;YACJ,OAAO,SAAS,CAAC;SACpB;KACJ;AACL,CAAC;AAXD,gCAWC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAExB,uDAAuD;AACvD,SAAgB,UAAU;IACtB,IAAI;QACA,OAAO,OAAO,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC;KAC5C;IAAC,WAAM;QACJ,IAAI;YACA,kBAAkB;YAClB,OAAO,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC;SAC7C;QAAC,WAAM;YACJ,OAAO,SAAS,CAAC;SACpB;KACJ;AACL,CAAC;AAXD,gCAWC;AAED;;;GAGG;AACH,SAAgB,gBAAgB;IAC5B,IAAI;QACA,8DAA8D;QAC9D,OAAO,OAAO,CAAC,6BAA6B,CAAC,CAAC,OAAO,CAAC;KACzD;IAAC,WAAM;QACJ,IAAI;YACA,8DAA8D;YAC9D,OAAO,OAAO,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC;SACjD;QAAC,WAAM;YACJ,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,GAAG,EAAE;gBACnC,mBAAmB;gBACnB,IAAI;oBACA,OAAO,OAAO,CAAC,cAAI,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC,CAAC,OAAO,CAAC;iBACtF;gBAAC,WAAM;oBACJ,OAAO,SAAS,CAAC;iBACpB;aACJ;YAED,OAAO,SAAS,CAAC;SACpB;KACJ;AACL,CAAC;AArBD,4CAqBC"}
package/zod/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export * as models from './models';
2
+ export * as input from './input';
3
+ export * as objects from './objects';
package/zod/index.js ADDED
@@ -0,0 +1,5 @@
1
+ module.exports = {
2
+ models: require('./models'),
3
+ input: require('./input'),
4
+ objects: require('./objects')
5
+ };
package/zod/input.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from '.zenstack/zod/input';
package/zod/input.js ADDED
@@ -0,0 +1,8 @@
1
+ let schemas;
2
+ try {
3
+ schemas = require('.zenstack/zod/input/index');
4
+ } catch {}
5
+
6
+ module.exports = schemas && {
7
+ ...schemas,
8
+ };
@@ -0,0 +1 @@
1
+ export * from '.zenstack/zod/models';
package/zod/models.js ADDED
@@ -0,0 +1,8 @@
1
+ let schemas;
2
+ try {
3
+ schemas = require('.zenstack/zod/models/index');
4
+ } catch {}
5
+
6
+ module.exports = schemas && {
7
+ ...schemas,
8
+ };
@@ -0,0 +1 @@
1
+ export * from '.zenstack/zod/objects';
package/zod/objects.js ADDED
@@ -0,0 +1,8 @@
1
+ let schemas;
2
+ try {
3
+ schemas = require('.zenstack/zod/objects/index');
4
+ } catch {}
5
+
6
+ module.exports = schemas && {
7
+ ...schemas,
8
+ };
@@ -1 +0,0 @@
1
- export declare function registerSerializers(): void;
@@ -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"}