@zenstackhq/runtime 0.6.0-pre.2 → 1.0.0-alpha.20

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 (120) hide show
  1. package/constants.d.ts +4 -0
  2. package/constants.js +8 -0
  3. package/constants.js.map +1 -0
  4. package/enhancements/index.d.ts +4 -0
  5. package/enhancements/index.js +21 -0
  6. package/enhancements/index.js.map +1 -0
  7. package/enhancements/model-meta.d.ts +9 -0
  8. package/enhancements/model-meta.js +25 -0
  9. package/enhancements/model-meta.js.map +1 -0
  10. package/enhancements/nested-write-vistor.d.ts +65 -0
  11. package/enhancements/nested-write-vistor.js +155 -0
  12. package/enhancements/nested-write-vistor.js.map +1 -0
  13. package/enhancements/omit.d.ts +5 -0
  14. package/enhancements/omit.js +60 -0
  15. package/enhancements/omit.js.map +1 -0
  16. package/enhancements/password.d.ts +5 -0
  17. package/enhancements/password.js +66 -0
  18. package/enhancements/password.js.map +1 -0
  19. package/enhancements/policy/handler.d.ts +36 -0
  20. package/enhancements/policy/handler.js +278 -0
  21. package/enhancements/policy/handler.js.map +1 -0
  22. package/enhancements/policy/index.d.ts +17 -0
  23. package/enhancements/policy/index.js +31 -0
  24. package/enhancements/policy/index.js.map +1 -0
  25. package/{lib/proxy → enhancements/policy}/logger.d.ts +3 -0
  26. package/{lib/proxy → enhancements/policy}/logger.js +4 -0
  27. package/enhancements/policy/logger.js.map +1 -0
  28. package/enhancements/policy/policy-utils.d.ts +78 -0
  29. package/enhancements/policy/policy-utils.js +575 -0
  30. package/enhancements/policy/policy-utils.js.map +1 -0
  31. package/enhancements/preset.d.ts +16 -0
  32. package/enhancements/preset.js +24 -0
  33. package/enhancements/preset.js.map +1 -0
  34. package/enhancements/proxy.d.ts +75 -0
  35. package/enhancements/proxy.js +196 -0
  36. package/enhancements/proxy.js.map +1 -0
  37. package/enhancements/types.d.ts +24 -0
  38. package/{lib/config.js → enhancements/types.js} +1 -1
  39. package/enhancements/types.js.map +1 -0
  40. package/enhancements/utils.d.ts +16 -0
  41. package/enhancements/utils.js +31 -0
  42. package/enhancements/utils.js.map +1 -0
  43. package/error.d.ts +10 -0
  44. package/error.js +17 -0
  45. package/error.js.map +1 -0
  46. package/index.d.ts +5 -0
  47. package/{lib/index.js → index.js} +3 -4
  48. package/index.js.map +1 -0
  49. package/package.json +7 -5
  50. package/{lib/serialization-utils.d.ts → serialization-utils.d.ts} +0 -0
  51. package/{lib/serialization-utils.js → serialization-utils.js} +0 -0
  52. package/serialization-utils.js.map +1 -0
  53. package/types.d.ts +73 -0
  54. package/types.js +14 -0
  55. package/types.js.map +1 -0
  56. package/{lib/validation.d.ts → validation.d.ts} +0 -0
  57. package/{lib/validation.js → validation.js} +0 -0
  58. package/validation.js.map +1 -0
  59. package/{lib/version.d.ts → version.d.ts} +0 -0
  60. package/{lib/version.js → version.js} +6 -1
  61. package/version.js.map +1 -0
  62. package/client/index.d.ts +0 -3
  63. package/client/index.js +0 -11
  64. package/lib/config.d.ts +0 -14
  65. package/lib/config.js.map +0 -1
  66. package/lib/constants.d.ts +0 -12
  67. package/lib/constants.js +0 -16
  68. package/lib/constants.js.map +0 -1
  69. package/lib/handler/data/crud.d.ts +0 -17
  70. package/lib/handler/data/crud.js +0 -255
  71. package/lib/handler/data/crud.js.map +0 -1
  72. package/lib/handler/data/handler.d.ts +0 -20
  73. package/lib/handler/data/handler.js +0 -150
  74. package/lib/handler/data/handler.js.map +0 -1
  75. package/lib/handler/data/nested-write-vistor.d.ts +0 -31
  76. package/lib/handler/data/nested-write-vistor.js +0 -67
  77. package/lib/handler/data/nested-write-vistor.js.map +0 -1
  78. package/lib/handler/data/policy-utils.d.ts +0 -73
  79. package/lib/handler/data/policy-utils.js +0 -447
  80. package/lib/handler/data/policy-utils.js.map +0 -1
  81. package/lib/handler/index.d.ts +0 -1
  82. package/lib/handler/index.js +0 -9
  83. package/lib/handler/index.js.map +0 -1
  84. package/lib/handler/types.d.ts +0 -28
  85. package/lib/handler/types.js +0 -36
  86. package/lib/handler/types.js.map +0 -1
  87. package/lib/index.d.ts +0 -6
  88. package/lib/index.js.map +0 -1
  89. package/lib/policy.d.ts +0 -11
  90. package/lib/policy.js +0 -10
  91. package/lib/policy.js.map +0 -1
  92. package/lib/proxy/handler.d.ts +0 -37
  93. package/lib/proxy/handler.js +0 -333
  94. package/lib/proxy/handler.js.map +0 -1
  95. package/lib/proxy/logger.js.map +0 -1
  96. package/lib/proxy/nested-write-vistor.d.ts +0 -30
  97. package/lib/proxy/nested-write-vistor.js +0 -69
  98. package/lib/proxy/nested-write-vistor.js.map +0 -1
  99. package/lib/proxy/policy-utils.d.ts +0 -78
  100. package/lib/proxy/policy-utils.js +0 -508
  101. package/lib/proxy/policy-utils.js.map +0 -1
  102. package/lib/request-handler.d.ts +0 -21
  103. package/lib/request-handler.js +0 -37
  104. package/lib/request-handler.js.map +0 -1
  105. package/lib/request.d.ts +0 -37
  106. package/lib/request.js +0 -164
  107. package/lib/request.js.map +0 -1
  108. package/lib/serialization-utils.js.map +0 -1
  109. package/lib/service.d.ts +0 -32
  110. package/lib/service.js +0 -184
  111. package/lib/service.js.map +0 -1
  112. package/lib/types.d.ts +0 -185
  113. package/lib/types.js +0 -71
  114. package/lib/types.js.map +0 -1
  115. package/lib/validation.js.map +0 -1
  116. package/lib/version.js.map +0 -1
  117. package/server/index.d.ts +0 -16
  118. package/server/index.js +0 -6
  119. package/types/index.d.ts +0 -1
  120. package/types/index.js +0 -3
package/lib/request.js DELETED
@@ -1,164 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
- var __importDefault = (this && this.__importDefault) || function (mod) {
35
- return (mod && mod.__esModule) ? mod : { "default": mod };
36
- };
37
- Object.defineProperty(exports, "__esModule", { value: true });
38
- exports.getMutate = exports.del = exports.put = exports.post = exports.get = void 0;
39
- const superjson_1 = __importDefault(require("superjson"));
40
- const swr_1 = __importStar(require("swr"));
41
- const serialization_utils_1 = require("./serialization-utils");
42
- // register superjson custom serializers
43
- (0, serialization_utils_1.registerSerializers)();
44
- const fetcher = (url, options) => __awaiter(void 0, void 0, void 0, function* () {
45
- const res = yield fetch(url, options);
46
- if (!res.ok) {
47
- const error = new Error('An error occurred while fetching the data.');
48
- error.info = yield res.json();
49
- error.status = res.status;
50
- throw error;
51
- }
52
- const textResult = yield res.text();
53
- try {
54
- return unmarshal(textResult);
55
- }
56
- catch (err) {
57
- console.error(`Unable to deserialize data:`, textResult);
58
- throw err;
59
- }
60
- });
61
- function marshal(value) {
62
- return superjson_1.default.stringify(value);
63
- }
64
- function unmarshal(value) {
65
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
66
- return superjson_1.default.parse(value);
67
- }
68
- function makeUrl(url, args) {
69
- return args ? url + `?q=${encodeURIComponent(marshal(args))}` : url;
70
- }
71
- /**
72
- * Makes a GET request with SWR.
73
- *
74
- * @param url The request URL.
75
- * @param args The request args object, which will be superjson-stringified and appended as "?q=" parameter
76
- * @returns SWR response
77
- */
78
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
79
- function get(url, args, options) {
80
- const reqUrl = (options === null || options === void 0 ? void 0 : options.disabled) ? null : url ? makeUrl(url, args) : null;
81
- return (0, swr_1.default)(reqUrl, fetcher, {
82
- fallbackData: options === null || options === void 0 ? void 0 : options.initialData,
83
- });
84
- }
85
- exports.get = get;
86
- /**
87
- * Makes a POST request.
88
- *
89
- * @param url The request URL.
90
- * @param data The request data.
91
- * @param mutate Mutator for invalidating cache.
92
- */
93
- function post(url, data, mutate) {
94
- return __awaiter(this, void 0, void 0, function* () {
95
- const r = yield fetcher(url, {
96
- method: 'POST',
97
- headers: {
98
- 'content-type': 'application/json',
99
- },
100
- body: marshal(data),
101
- });
102
- mutate(url, true);
103
- return r;
104
- });
105
- }
106
- exports.post = post;
107
- /**
108
- * Makes a PUT request.
109
- *
110
- * @param url The request URL.
111
- * @param data The request data.
112
- * @param mutate Mutator for invalidating cache.
113
- */
114
- function put(url, data, mutate) {
115
- return __awaiter(this, void 0, void 0, function* () {
116
- const r = yield fetcher(url, {
117
- method: 'PUT',
118
- headers: {
119
- 'content-type': 'application/json',
120
- },
121
- body: marshal(data),
122
- });
123
- mutate(url, true);
124
- return r;
125
- });
126
- }
127
- exports.put = put;
128
- /**
129
- * Makes a DELETE request.
130
- *
131
- * @param url The request URL.
132
- * @param args The request args object, which will be superjson-stringified and appended as "?q=" parameter
133
- * @param mutate Mutator for invalidating cache.
134
- */
135
- function del(url, args, mutate) {
136
- return __awaiter(this, void 0, void 0, function* () {
137
- const reqUrl = makeUrl(url, args);
138
- const r = yield fetcher(reqUrl, {
139
- method: 'DELETE',
140
- });
141
- const path = url.split('/');
142
- path.pop();
143
- mutate(path.join('/'), true);
144
- return r;
145
- });
146
- }
147
- exports.del = del;
148
- function getMutate() {
149
- // https://swr.vercel.app/docs/advanced/cache#mutate-multiple-keys-from-regex
150
- const { cache, mutate } = (0, swr_1.useSWRConfig)();
151
- return (key, prefix, data, opts) => {
152
- if (!prefix) {
153
- return mutate(key, data, opts);
154
- }
155
- if (!(cache instanceof Map)) {
156
- throw new Error('mutate requires the cache provider to be a Map instance');
157
- }
158
- const keys = Array.from(cache.keys()).filter((k) => typeof k === 'string' && k.startsWith(key));
159
- const mutations = keys.map((key) => mutate(key, data, opts));
160
- return Promise.all(mutations);
161
- };
162
- }
163
- exports.getMutate = getMutate;
164
- //# sourceMappingURL=request.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/request.ts"],"names":[],"mappings":"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"}
@@ -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/lib/service.d.ts DELETED
@@ -1,32 +0,0 @@
1
- /// <reference types="node" />
2
- import { EventEmitter } from 'stream';
3
- import { ServiceConfig } from './config';
4
- import { FieldInfo, LogEvent, LogLevel, PolicyOperationKind, QueryContext, Service } from './types';
5
- export declare abstract class DefaultService<DbClient extends {
6
- $on: (eventType: any, handler: (event: any) => void) => void;
7
- }> implements Service<DbClient> {
8
- protected config: ServiceConfig;
9
- private prisma;
10
- protected readonly logEmitter: EventEmitter;
11
- private readonly logSettings;
12
- private guardModule;
13
- private fieldConstraintModule;
14
- private readonly prismaLogLevels;
15
- constructor();
16
- private initialize;
17
- $on(level: LogLevel, callback: (event: LogEvent) => void): void;
18
- private handleLog;
19
- private loadConfig;
20
- get db(): DbClient;
21
- resolveField(model: string, field: string): Promise<FieldInfo | undefined>;
22
- buildQueryGuard(model: string, operation: PolicyOperationKind, context: QueryContext): Promise<unknown>;
23
- validateModelPayload(model: string, mode: 'create' | 'update', payload: unknown): Promise<void>;
24
- verbose(message: string): void;
25
- info(message: string): void;
26
- warn(message: string): void;
27
- error(message: string): void;
28
- reinitialize(): void;
29
- protected abstract initializePrisma(): DbClient;
30
- protected abstract loadGuardModule(): Promise<any>;
31
- protected abstract loadFieldConstraintModule(): Promise<any>;
32
- }
package/lib/service.js DELETED
@@ -1,184 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
- var __importDefault = (this && this.__importDefault) || function (mod) {
35
- return (mod && mod.__esModule) ? mod : { "default": mod };
36
- };
37
- Object.defineProperty(exports, "__esModule", { value: true });
38
- exports.DefaultService = void 0;
39
- const colors_1 = __importDefault(require("colors"));
40
- const fs = __importStar(require("fs"));
41
- const stream_1 = require("stream");
42
- const validation_1 = require("./validation");
43
- class DefaultService {
44
- constructor() {
45
- this.logEmitter = new stream_1.EventEmitter();
46
- this.logSettings = {
47
- query: { stdout: false, emit: false },
48
- verbose: { stdout: false, emit: false },
49
- info: { stdout: true, emit: false },
50
- warn: { stdout: true, emit: false },
51
- error: { stdout: true, emit: false },
52
- };
53
- this.prismaLogLevels = [
54
- 'query',
55
- 'info',
56
- 'warn',
57
- 'error',
58
- ];
59
- this.initialize();
60
- }
61
- initialize() {
62
- this.config = this.loadConfig();
63
- // initialize log sink mapping
64
- if (this.config.log) {
65
- // reset all levels
66
- for (const key of Object.keys(this.logSettings)) {
67
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
68
- this.logSettings[key] = { stdout: false, emit: false };
69
- }
70
- for (const entry of this.config.log) {
71
- const level = typeof entry === 'string' ? entry : entry.level;
72
- if (!Object.keys(this.logSettings).includes(level)) {
73
- console.error(`Unknown log level "${level}"`);
74
- continue;
75
- }
76
- if (typeof entry === 'string') {
77
- this.logSettings[level].stdout = true;
78
- }
79
- else if (entry.emit === 'stdout') {
80
- this.logSettings[level].stdout = true;
81
- }
82
- else {
83
- this.logSettings[level].emit = true;
84
- }
85
- }
86
- }
87
- this.prisma = this.initializePrisma();
88
- for (const level of this.prismaLogLevels) {
89
- if (this.logSettings[level].emit) {
90
- this.verbose(`Hooking prisma log level ${level}`);
91
- this.prisma.$on(level, (e) => {
92
- this.logEmitter.emit(level, e);
93
- });
94
- }
95
- }
96
- }
97
- $on(level, callback) {
98
- this.logEmitter.on(level, callback);
99
- }
100
- handleLog(level, message) {
101
- if (this.logSettings[level].stdout) {
102
- switch (level) {
103
- case 'verbose':
104
- console.log(colors_1.default.blue(`zenstack:${level}`), message);
105
- break;
106
- case 'info':
107
- console.log(colors_1.default.cyan(`zenstack:${level}`), message);
108
- break;
109
- case 'warn':
110
- console.warn(colors_1.default.yellow(`zenstack:${level}`), message);
111
- break;
112
- case 'error':
113
- console.error(colors_1.default.red(`zenstack:${level}`), message);
114
- break;
115
- }
116
- }
117
- if (this.logSettings[level].emit) {
118
- this.logEmitter.emit(level, { timestamp: new Date(), message });
119
- }
120
- }
121
- loadConfig() {
122
- const configFile = './zenstack.config.json';
123
- if (fs.existsSync(configFile)) {
124
- try {
125
- const config = JSON.parse(fs.readFileSync(configFile).toString('utf-8'));
126
- return config;
127
- }
128
- catch (err) {
129
- console.error('Failed to load zenstack.config.json', err);
130
- }
131
- }
132
- return {};
133
- }
134
- get db() {
135
- return this.prisma;
136
- }
137
- resolveField(model, field) {
138
- var _a, _b;
139
- return __awaiter(this, void 0, void 0, function* () {
140
- if (!this.guardModule) {
141
- this.guardModule = yield this.loadGuardModule();
142
- }
143
- return (_b = (_a = this.guardModule._fieldMapping) === null || _a === void 0 ? void 0 : _a[model]) === null || _b === void 0 ? void 0 : _b[field];
144
- });
145
- }
146
- buildQueryGuard(model, operation, context) {
147
- return __awaiter(this, void 0, void 0, function* () {
148
- if (!this.guardModule) {
149
- this.guardModule = yield this.loadGuardModule();
150
- }
151
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
152
- const provider = this.guardModule[model + '_' + operation];
153
- return provider(context);
154
- });
155
- }
156
- validateModelPayload(model, mode, payload) {
157
- return __awaiter(this, void 0, void 0, function* () {
158
- if (!this.fieldConstraintModule) {
159
- this.fieldConstraintModule = yield this.loadFieldConstraintModule();
160
- }
161
- const validator = this.fieldConstraintModule[`${model}_${mode}_validator`];
162
- if (validator) {
163
- (0, validation_1.validate)(validator, payload);
164
- }
165
- });
166
- }
167
- verbose(message) {
168
- this.handleLog('verbose', message);
169
- }
170
- info(message) {
171
- this.handleLog('info', message);
172
- }
173
- warn(message) {
174
- this.handleLog('warn', message);
175
- }
176
- error(message) {
177
- this.handleLog('error', message);
178
- }
179
- reinitialize() {
180
- this.initialize();
181
- }
182
- }
183
- exports.DefaultService = DefaultService;
184
- //# sourceMappingURL=service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/service.ts"],"names":[],"mappings":"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"}
package/lib/types.d.ts DELETED
@@ -1,185 +0,0 @@
1
- /**
2
- * Weakly-typed database access methods
3
- */
4
- export interface DbOperations {
5
- findMany(args: unknown): Promise<unknown[]>;
6
- findFirst(args: unknown): Promise<unknown>;
7
- findUnique(args: unknown): Promise<unknown>;
8
- create(args: unknown): Promise<unknown>;
9
- createMany(args: unknown, skipDuplicates?: boolean): Promise<unknown>;
10
- update(args: unknown): Promise<unknown>;
11
- updateMany(args: unknown): Promise<unknown>;
12
- upsert(args: unknown): Promise<unknown>;
13
- delete(args: unknown): Promise<unknown>;
14
- deleteMany(args: unknown): Promise<unknown>;
15
- aggregate(args: unknown): Promise<unknown>;
16
- groupBy(args: unknown): Promise<unknown>;
17
- count(args: unknown): Promise<number>;
18
- }
19
- /**
20
- * Kinds of access policy
21
- */
22
- export type PolicyKind = 'allow' | 'deny';
23
- /**
24
- * Kinds of operations controlled by access policies
25
- */
26
- export type PolicyOperationKind = 'create' | 'update' | 'read' | 'delete';
27
- /**
28
- * Current login user info
29
- *
30
- * @todo Support for non-string "id" field
31
- */
32
- export type AuthUser = {
33
- id: string;
34
- } & Record<string, unknown>;
35
- /**
36
- * Context for database query
37
- */
38
- export type QueryContext = {
39
- /**
40
- * Current login user (provided by @see RequestHandlerOptions)
41
- */
42
- user?: AuthUser;
43
- };
44
- export type RuntimeAttribute = {
45
- name: string;
46
- args: Array<{
47
- name?: string;
48
- value: unknown;
49
- }>;
50
- };
51
- /**
52
- * Runtime information of a data model field
53
- */
54
- export type FieldInfo = {
55
- name: string;
56
- type: string;
57
- isDataModel: boolean;
58
- isArray: boolean;
59
- isOptional: boolean;
60
- attributes: RuntimeAttribute[];
61
- };
62
- export type DbClientContract = Record<string, DbOperations> & {
63
- $transaction: <T>(action: (tx: Record<string, DbOperations>) => Promise<T>) => Promise<T>;
64
- };
65
- /**
66
- * Logging levels
67
- */
68
- export type LogLevel = 'verbose' | 'info' | 'query' | 'warn' | 'error';
69
- /**
70
- * The main service of ZenStack. Implementation of this interface is automatically generated.
71
- */
72
- export interface Service<DbClient = any> {
73
- /**
74
- * Returns the wrapped Prisma db client
75
- */
76
- get db(): DbClient;
77
- /**
78
- * Resolves information of a data model field.
79
- *
80
- * @param model Model name
81
- * @param field Field name
82
- */
83
- resolveField(model: string, field: string): Promise<FieldInfo | undefined>;
84
- /**
85
- * Builds policy check guard object for an operation over a model, which will be injected to
86
- * the query body sent to Prisma client.
87
- *
88
- * @param model Model name
89
- * @param operation Operation kind
90
- * @param context Query context
91
- */
92
- buildQueryGuard(model: string, operation: PolicyOperationKind, context: QueryContext): Promise<unknown>;
93
- /**
94
- * Validates the given write payload for the given model according to field constraints in model.
95
- *
96
- * @param model Model name
97
- * @param mode Write mode
98
- * @param payload Write payload
99
- *
100
- * @throws @see ValidationError
101
- */
102
- validateModelPayload(model: string, mode: 'create' | 'update', payload: unknown): Promise<void>;
103
- /**
104
- * Generates a log message with verbose level.
105
- */
106
- verbose(message: string): void;
107
- /**
108
- * Generates a log message with info level.
109
- */
110
- info(message: string): void;
111
- /**
112
- * Generates a log message with warn level.
113
- */
114
- warn(message: string): void;
115
- /**
116
- * Generates a log message with error level.
117
- */
118
- error(message: string): void;
119
- /**
120
- * Registers a listener to log events.
121
- */
122
- $on(level: LogLevel, callback: (event: LogEvent) => void): void;
123
- }
124
- /**
125
- * Error codes for errors on server side
126
- */
127
- export declare enum ServerErrorCode {
128
- /**
129
- * The specified entity cannot be found
130
- */
131
- ENTITY_NOT_FOUND = "ENTITY_NOT_FOUND",
132
- /**
133
- * The request parameter is invalid, either containing invalid fields or missing required fields
134
- */
135
- INVALID_REQUEST_PARAMS = "INVALID_REQUEST_PARAMS",
136
- /**
137
- * The request is rejected by policy checks
138
- */
139
- DENIED_BY_POLICY = "DENIED_BY_POLICY",
140
- /**
141
- * Violation of database unique constraints
142
- */
143
- UNIQUE_CONSTRAINT_VIOLATION = "UNIQUE_CONSTRAINT_VIOLATION",
144
- /**
145
- * Violation of database reference constraint (aka. foreign key constraints)
146
- */
147
- REFERENCE_CONSTRAINT_VIOLATION = "REFERENCE_CONSTRAINT_VIOLATION",
148
- /**
149
- * A write operation succeeded but the result cannot be read back due to policy control
150
- */
151
- READ_BACK_AFTER_WRITE_DENIED = "READ_BACK_AFTER_WRITE_DENIED",
152
- /**
153
- * Unknown error
154
- */
155
- UNKNOWN = "UNKNOWN"
156
- }
157
- export declare function getServerErrorMessage(code: ServerErrorCode): string;
158
- export type LogEventHandler = (LogEvent: any, handler: (event: LogEvent) => void) => void;
159
- export type LogEvent = {
160
- timestamp: Date;
161
- query?: string;
162
- params?: string;
163
- duration?: number;
164
- target?: string;
165
- message?: string;
166
- };
167
- /**
168
- * Client request options
169
- */
170
- export type RequestOptions<T> = {
171
- disabled?: boolean;
172
- initialData?: T;
173
- };
174
- /**
175
- * Hooks invocation error
176
- */
177
- export type HooksError = {
178
- status: number;
179
- info: {
180
- code: ServerErrorCode;
181
- message: string;
182
- };
183
- };
184
- export declare const PrismaWriteActions: readonly ["create", "createMany", "connectOrCreate", "update", "updateMany", "upsert", "delete", "deleteMany", "connect", "none"];
185
- export type PrismaWriteActionType = typeof PrismaWriteActions[number];
package/lib/types.js DELETED
@@ -1,71 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PrismaWriteActions = exports.getServerErrorMessage = exports.ServerErrorCode = void 0;
4
- /**
5
- * Error codes for errors on server side
6
- */
7
- var ServerErrorCode;
8
- (function (ServerErrorCode) {
9
- /**
10
- * The specified entity cannot be found
11
- */
12
- ServerErrorCode["ENTITY_NOT_FOUND"] = "ENTITY_NOT_FOUND";
13
- /**
14
- * The request parameter is invalid, either containing invalid fields or missing required fields
15
- */
16
- ServerErrorCode["INVALID_REQUEST_PARAMS"] = "INVALID_REQUEST_PARAMS";
17
- /**
18
- * The request is rejected by policy checks
19
- */
20
- ServerErrorCode["DENIED_BY_POLICY"] = "DENIED_BY_POLICY";
21
- /**
22
- * Violation of database unique constraints
23
- */
24
- ServerErrorCode["UNIQUE_CONSTRAINT_VIOLATION"] = "UNIQUE_CONSTRAINT_VIOLATION";
25
- /**
26
- * Violation of database reference constraint (aka. foreign key constraints)
27
- */
28
- ServerErrorCode["REFERENCE_CONSTRAINT_VIOLATION"] = "REFERENCE_CONSTRAINT_VIOLATION";
29
- /**
30
- * A write operation succeeded but the result cannot be read back due to policy control
31
- */
32
- ServerErrorCode["READ_BACK_AFTER_WRITE_DENIED"] = "READ_BACK_AFTER_WRITE_DENIED";
33
- /**
34
- * Unknown error
35
- */
36
- ServerErrorCode["UNKNOWN"] = "UNKNOWN";
37
- })(ServerErrorCode = exports.ServerErrorCode || (exports.ServerErrorCode = {}));
38
- function getServerErrorMessage(code) {
39
- switch (code) {
40
- case ServerErrorCode.ENTITY_NOT_FOUND:
41
- return 'the requested entity is not found';
42
- case ServerErrorCode.INVALID_REQUEST_PARAMS:
43
- return 'request parameters are invalid';
44
- case ServerErrorCode.DENIED_BY_POLICY:
45
- return 'the request was denied due to access policy violation';
46
- case ServerErrorCode.UNIQUE_CONSTRAINT_VIOLATION:
47
- return 'the request failed because of database unique constraint violation';
48
- case ServerErrorCode.REFERENCE_CONSTRAINT_VIOLATION:
49
- return 'the request failed because of database foreign key constraint violation';
50
- case ServerErrorCode.READ_BACK_AFTER_WRITE_DENIED:
51
- return 'the write operation succeeded, but the data cannot be read back due to access policy violation';
52
- case ServerErrorCode.UNKNOWN:
53
- return 'an unknown error occurred';
54
- default:
55
- return `generic error: ${code}`;
56
- }
57
- }
58
- exports.getServerErrorMessage = getServerErrorMessage;
59
- exports.PrismaWriteActions = [
60
- 'create',
61
- 'createMany',
62
- 'connectOrCreate',
63
- 'update',
64
- 'updateMany',
65
- 'upsert',
66
- 'delete',
67
- 'deleteMany',
68
- 'connect',
69
- 'none',
70
- ];
71
- //# sourceMappingURL=types.js.map
package/lib/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAmJA;;GAEG;AACH,IAAY,eAmCX;AAnCD,WAAY,eAAe;IACvB;;OAEG;IACH,wDAAqC,CAAA;IAErC;;OAEG;IACH,oEAAiD,CAAA;IAEjD;;OAEG;IACH,wDAAqC,CAAA;IAErC;;OAEG;IACH,8EAA2D,CAAA;IAE3D;;OAEG;IACH,oFAAiE,CAAA;IAEjE;;OAEG;IACH,gFAA6D,CAAA;IAE7D;;OAEG;IACH,sCAAmB,CAAA;AACvB,CAAC,EAnCW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAmC1B;AAED,SAAgB,qBAAqB,CAAC,IAAqB;IACvD,QAAQ,IAAI,EAAE;QACV,KAAK,eAAe,CAAC,gBAAgB;YACjC,OAAO,mCAAmC,CAAC;QAE/C,KAAK,eAAe,CAAC,sBAAsB;YACvC,OAAO,gCAAgC,CAAC;QAE5C,KAAK,eAAe,CAAC,gBAAgB;YACjC,OAAO,uDAAuD,CAAC;QAEnE,KAAK,eAAe,CAAC,2BAA2B;YAC5C,OAAO,oEAAoE,CAAC;QAEhF,KAAK,eAAe,CAAC,8BAA8B;YAC/C,OAAO,yEAAyE,CAAC;QAErF,KAAK,eAAe,CAAC,4BAA4B;YAC7C,OAAO,gGAAgG,CAAC;QAE5G,KAAK,eAAe,CAAC,OAAO;YACxB,OAAO,2BAA2B,CAAC;QAEvC;YACI,OAAO,kBAAkB,IAAI,EAAE,CAAC;KACvC;AACL,CAAC;AA1BD,sDA0BC;AAqCY,QAAA,kBAAkB,GAAG;IAC9B,QAAQ;IACR,YAAY;IACZ,iBAAiB;IACjB,QAAQ;IACR,YAAY;IACZ,QAAQ;IACR,QAAQ;IACR,YAAY;IACZ,SAAS;IACT,MAAM;CACA,CAAC"}
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";;;AAAA,uDAAuD;AACvD,SAAgB,UAAU;IACtB,OAAO,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC;AAC9C,CAAC;AAFD,gCAEC"}