@zenstackhq/server 2.20.1 → 3.0.0-beta.12

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 (110) hide show
  1. package/LICENSE +1 -1
  2. package/dist/api.cjs +299 -0
  3. package/dist/api.cjs.map +1 -0
  4. package/dist/api.d.cts +28 -0
  5. package/dist/api.d.ts +28 -0
  6. package/dist/api.js +264 -0
  7. package/dist/api.js.map +1 -0
  8. package/dist/express.cjs +75 -0
  9. package/dist/express.cjs.map +1 -0
  10. package/dist/express.d.cts +31 -0
  11. package/dist/express.d.ts +31 -0
  12. package/dist/express.js +50 -0
  13. package/dist/express.js.map +1 -0
  14. package/dist/types-BH-88xJo.d.cts +68 -0
  15. package/dist/types-BH-88xJo.d.ts +68 -0
  16. package/package.json +57 -58
  17. package/README.md +0 -5
  18. package/api/base.d.ts +0 -49
  19. package/api/base.js +0 -19
  20. package/api/base.js.map +0 -1
  21. package/api/index.d.ts +0 -2
  22. package/api/index.js +0 -8
  23. package/api/index.js.map +0 -1
  24. package/api/rest/index.d.ts +0 -34
  25. package/api/rest/index.js +0 -1598
  26. package/api/rest/index.js.map +0 -1
  27. package/api/rpc/index.d.ts +0 -4
  28. package/api/rpc/index.js +0 -248
  29. package/api/rpc/index.js.map +0 -1
  30. package/api/utils.d.ts +0 -8
  31. package/api/utils.js +0 -54
  32. package/api/utils.js.map +0 -1
  33. package/elysia/handler.d.ts +0 -44
  34. package/elysia/handler.js +0 -62
  35. package/elysia/handler.js.map +0 -1
  36. package/elysia/index.d.ts +0 -1
  37. package/elysia/index.js +0 -18
  38. package/elysia/index.js.map +0 -1
  39. package/express/index.d.ts +0 -2
  40. package/express/index.js +0 -21
  41. package/express/index.js.map +0 -1
  42. package/express/middleware.d.ts +0 -27
  43. package/express/middleware.js +0 -58
  44. package/express/middleware.js.map +0 -1
  45. package/fastify/index.d.ts +0 -2
  46. package/fastify/index.js +0 -21
  47. package/fastify/index.js.map +0 -1
  48. package/fastify/plugin.d.ts +0 -18
  49. package/fastify/plugin.js +0 -48
  50. package/fastify/plugin.js.map +0 -1
  51. package/hono/handler.d.ts +0 -12
  52. package/hono/handler.js +0 -47
  53. package/hono/handler.js.map +0 -1
  54. package/hono/index.d.ts +0 -1
  55. package/hono/index.js +0 -18
  56. package/hono/index.js.map +0 -1
  57. package/nestjs/api-handler.service.d.ts +0 -15
  58. package/nestjs/api-handler.service.js +0 -72
  59. package/nestjs/api-handler.service.js.map +0 -1
  60. package/nestjs/index.d.ts +0 -3
  61. package/nestjs/index.js +0 -20
  62. package/nestjs/index.js.map +0 -1
  63. package/nestjs/interfaces/api-handler-options.interface.d.ts +0 -17
  64. package/nestjs/interfaces/api-handler-options.interface.js +0 -3
  65. package/nestjs/interfaces/api-handler-options.interface.js.map +0 -1
  66. package/nestjs/interfaces/index.d.ts +0 -2
  67. package/nestjs/interfaces/index.js +0 -19
  68. package/nestjs/interfaces/index.js.map +0 -1
  69. package/nestjs/interfaces/zenstack-module-options.interface.d.ts +0 -35
  70. package/nestjs/interfaces/zenstack-module-options.interface.js +0 -3
  71. package/nestjs/interfaces/zenstack-module-options.interface.js.map +0 -1
  72. package/nestjs/zenstack.constants.d.ts +0 -4
  73. package/nestjs/zenstack.constants.js +0 -8
  74. package/nestjs/zenstack.constants.js.map +0 -1
  75. package/nestjs/zenstack.module.d.ts +0 -12
  76. package/nestjs/zenstack.module.js +0 -61
  77. package/nestjs/zenstack.module.js.map +0 -1
  78. package/next/app-route-handler.d.ts +0 -16
  79. package/next/app-route-handler.js +0 -65
  80. package/next/app-route-handler.js.map +0 -1
  81. package/next/index.d.ts +0 -38
  82. package/next/index.js +0 -17
  83. package/next/index.js.map +0 -1
  84. package/next/pages-route-handler.d.ts +0 -9
  85. package/next/pages-route-handler.js +0 -45
  86. package/next/pages-route-handler.js.map +0 -1
  87. package/nuxt/handler.d.ts +0 -12
  88. package/nuxt/handler.js +0 -45
  89. package/nuxt/handler.js.map +0 -1
  90. package/nuxt/index.d.ts +0 -1
  91. package/nuxt/index.js +0 -18
  92. package/nuxt/index.js.map +0 -1
  93. package/shared.d.ts +0 -20
  94. package/shared.js +0 -50
  95. package/shared.js.map +0 -1
  96. package/sveltekit/handler.d.ts +0 -20
  97. package/sveltekit/handler.js +0 -68
  98. package/sveltekit/handler.js.map +0 -1
  99. package/sveltekit/index.d.ts +0 -2
  100. package/sveltekit/index.js +0 -21
  101. package/sveltekit/index.js.map +0 -1
  102. package/tanstack-start/handler.d.ts +0 -11
  103. package/tanstack-start/handler.js +0 -75
  104. package/tanstack-start/handler.js.map +0 -1
  105. package/tanstack-start/index.d.ts +0 -17
  106. package/tanstack-start/index.js +0 -16
  107. package/tanstack-start/index.js.map +0 -1
  108. package/types.d.ts +0 -49
  109. package/types.js +0 -3
  110. package/types.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/rest/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import { Response } from '../../types';
2
- import { RequestContext } from '../base';
3
- export default function makeHandler(): ({ prisma, method, path, query, requestBody, modelMeta, zodSchemas, logger, }: RequestContext) => Promise<Response>;
4
- export { makeHandler as RPCApiHandler };
package/api/rpc/index.js DELETED
@@ -1,248 +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.default = makeHandler;
7
- exports.RPCApiHandler = makeHandler;
8
- const runtime_1 = require("@zenstackhq/runtime");
9
- const local_helpers_1 = require("@zenstackhq/runtime/local-helpers");
10
- const superjson_1 = __importDefault(require("superjson"));
11
- const base_1 = require("../base");
12
- const utils_1 = require("../utils");
13
- (0, utils_1.registerCustomSerializers)();
14
- const ERROR_STATUS_MAPPING = {
15
- [runtime_1.PrismaErrorCode.CONSTRAINT_FAILED]: 403,
16
- [runtime_1.PrismaErrorCode.REQUIRED_CONNECTED_RECORD_NOT_FOUND]: 404,
17
- [runtime_1.PrismaErrorCode.DEPEND_ON_RECORD_NOT_FOUND]: 404,
18
- };
19
- /**
20
- * Prisma RPC style API request handler that mirrors the Prisma Client API
21
- */
22
- class RequestHandler extends base_1.APIHandlerBase {
23
- async handleRequest({ prisma, method, path, query, requestBody, modelMeta, zodSchemas, logger, }) {
24
- modelMeta = modelMeta ?? this.defaultModelMeta;
25
- if (!modelMeta) {
26
- throw new Error('Model metadata is not provided or loaded from default location');
27
- }
28
- const parts = path.split('/').filter((p) => !!p);
29
- const op = parts.pop();
30
- const model = parts.pop();
31
- if (parts.length !== 0 || !op || !model) {
32
- return { status: 400, body: this.makeError('invalid request path') };
33
- }
34
- method = method.toUpperCase();
35
- const dbOp = op;
36
- let args;
37
- let resCode = 200;
38
- switch (dbOp) {
39
- case 'create':
40
- case 'createMany':
41
- case 'upsert':
42
- if (method !== 'POST') {
43
- return {
44
- status: 400,
45
- body: this.makeError('invalid request method, only POST is supported'),
46
- };
47
- }
48
- if (!requestBody) {
49
- return { status: 400, body: this.makeError('missing request body') };
50
- }
51
- args = requestBody;
52
- // TODO: upsert's status code should be conditional
53
- resCode = 201;
54
- break;
55
- case 'findFirst':
56
- case 'findUnique':
57
- case 'findMany':
58
- case 'aggregate':
59
- case 'groupBy':
60
- case 'count':
61
- case 'check':
62
- if (method !== 'GET') {
63
- return {
64
- status: 400,
65
- body: this.makeError('invalid request method, only GET is supported'),
66
- };
67
- }
68
- try {
69
- args = query?.q ? this.unmarshalQ(query.q, query.meta) : {};
70
- }
71
- catch {
72
- return { status: 400, body: this.makeError('invalid "q" query parameter') };
73
- }
74
- break;
75
- case 'update':
76
- case 'updateMany':
77
- if (method !== 'PUT' && method !== 'PATCH') {
78
- return {
79
- status: 400,
80
- body: this.makeError('invalid request method, only PUT AND PATCH are supported'),
81
- };
82
- }
83
- if (!requestBody) {
84
- return { status: 400, body: this.makeError('missing request body') };
85
- }
86
- args = requestBody;
87
- break;
88
- case 'delete':
89
- case 'deleteMany':
90
- if (method !== 'DELETE') {
91
- return {
92
- status: 400,
93
- body: this.makeError('invalid request method, only DELETE is supported'),
94
- };
95
- }
96
- try {
97
- args = query?.q ? this.unmarshalQ(query.q, query.meta) : {};
98
- }
99
- catch {
100
- return { status: 400, body: this.makeError('invalid "q" query parameter') };
101
- }
102
- break;
103
- default:
104
- return { status: 400, body: this.makeError('invalid operation: ' + op) };
105
- }
106
- const { error, zodErrors, data: parsedArgs } = await this.processRequestPayload(args, model, dbOp, zodSchemas);
107
- if (error) {
108
- return { status: 422, body: this.makeError(error, runtime_1.CrudFailureReason.DATA_VALIDATION_VIOLATION, zodErrors) };
109
- }
110
- try {
111
- if (!prisma[model]) {
112
- return { status: 400, body: this.makeError(`unknown model name: ${model}`) };
113
- }
114
- const result = await prisma[model][dbOp](parsedArgs);
115
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
116
- let response = { data: result };
117
- // superjson serialize response
118
- if (result) {
119
- const { json, meta } = superjson_1.default.serialize(result);
120
- response = { data: json };
121
- if (meta) {
122
- response.meta = { serialization: meta };
123
- }
124
- }
125
- return { status: resCode, body: response };
126
- }
127
- catch (err) {
128
- if ((0, runtime_1.isPrismaClientKnownRequestError)(err)) {
129
- let status;
130
- if (err.meta?.reason === runtime_1.CrudFailureReason.DATA_VALIDATION_VIOLATION) {
131
- // data validation error
132
- status = 422;
133
- }
134
- else {
135
- status = ERROR_STATUS_MAPPING[err.code] ?? 400;
136
- }
137
- const { error } = this.makeError(err.message, err.meta?.reason, err.meta?.zodErrors);
138
- return {
139
- status,
140
- body: {
141
- error: {
142
- ...error,
143
- prisma: true,
144
- code: err.code,
145
- },
146
- },
147
- };
148
- }
149
- else if ((0, runtime_1.isPrismaClientUnknownRequestError)(err) || (0, runtime_1.isPrismaClientValidationError)(err)) {
150
- (0, utils_1.logError)(logger, err.message);
151
- return {
152
- status: 400,
153
- body: {
154
- error: {
155
- prisma: true,
156
- message: err.message,
157
- },
158
- },
159
- };
160
- }
161
- else {
162
- const _err = err;
163
- (0, utils_1.logError)(logger, _err.message + (_err.stack ? '\n' + _err.stack : ''));
164
- return {
165
- status: 400,
166
- body: this.makeError(err.message),
167
- };
168
- }
169
- }
170
- }
171
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
172
- makeError(message, reason, zodErrors) {
173
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
174
- const error = { message, reason };
175
- if (reason === runtime_1.CrudFailureReason.ACCESS_POLICY_VIOLATION || reason === runtime_1.CrudFailureReason.RESULT_NOT_READABLE) {
176
- error.rejectedByPolicy = true;
177
- }
178
- if (reason === runtime_1.CrudFailureReason.DATA_VALIDATION_VIOLATION) {
179
- error.rejectedByValidation = true;
180
- }
181
- if (zodErrors) {
182
- error.zodErrors = zodErrors;
183
- }
184
- return { error };
185
- }
186
- async processRequestPayload(
187
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
188
- args, model, dbOp, zodSchemas) {
189
- const { meta, ...rest } = args;
190
- if (meta?.serialization) {
191
- // superjson deserialization
192
- args = superjson_1.default.deserialize({ json: rest, meta: meta.serialization });
193
- }
194
- return this.zodValidate(zodSchemas, model, dbOp, args);
195
- }
196
- getZodSchema(zodSchemas, model, operation) {
197
- // e.g.: UserInputSchema { findUnique: [schema] }
198
- return zodSchemas.input?.[`${(0, local_helpers_1.upperCaseFirst)(model)}InputSchema`]?.[operation];
199
- }
200
- zodValidate(zodSchemas, model, operation, args) {
201
- const zodSchema = zodSchemas && this.getZodSchema(zodSchemas, model, operation);
202
- if (zodSchema) {
203
- const parseResult = zodSchema.safeParse(args);
204
- if (parseResult.success) {
205
- return { data: args, error: undefined, zodErrors: undefined };
206
- }
207
- else {
208
- return {
209
- data: undefined,
210
- error: (0, local_helpers_1.getZodErrorMessage)(parseResult.error),
211
- zodErrors: parseResult.error,
212
- };
213
- }
214
- }
215
- else {
216
- return { data: args, error: undefined, zodErrors: undefined };
217
- }
218
- }
219
- unmarshalQ(value, meta) {
220
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
221
- let parsedValue;
222
- try {
223
- parsedValue = JSON.parse(value);
224
- }
225
- catch {
226
- throw new Error('invalid "q" query parameter');
227
- }
228
- if (meta) {
229
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
230
- let parsedMeta;
231
- try {
232
- parsedMeta = JSON.parse(meta);
233
- }
234
- catch {
235
- throw new Error('invalid "meta" query parameter');
236
- }
237
- if (parsedMeta.serialization) {
238
- return superjson_1.default.deserialize({ json: parsedValue, meta: parsedMeta.serialization });
239
- }
240
- }
241
- return parsedValue;
242
- }
243
- }
244
- function makeHandler() {
245
- const handler = new RequestHandler();
246
- return handler.handleRequest.bind(handler);
247
- }
248
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/rpc/index.ts"],"names":[],"mappings":"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"}
package/api/utils.d.ts DELETED
@@ -1,8 +0,0 @@
1
- import { LoggerConfig } from '../types';
2
- export declare function logError(logger: LoggerConfig | undefined | null, message: string, code?: string): void;
3
- export declare function logWarning(logger: LoggerConfig | undefined | null, message: string): void;
4
- export declare function logInfo(logger: LoggerConfig | undefined | null, message: string): void;
5
- /**
6
- * Registers custom superjson serializers.
7
- */
8
- export declare function registerCustomSerializers(): void;
package/api/utils.js DELETED
@@ -1,54 +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.logError = logError;
7
- exports.logWarning = logWarning;
8
- exports.logInfo = logInfo;
9
- exports.registerCustomSerializers = registerCustomSerializers;
10
- const decimal_js_1 = require("decimal.js");
11
- const superjson_1 = __importDefault(require("superjson"));
12
- function logError(logger, message, code) {
13
- if (logger === undefined) {
14
- console.error(`@zenstackhq/server: error ${code ? '[' + code + ']' : ''}, ${message}`);
15
- }
16
- else if (logger?.error) {
17
- logger.error(message, code);
18
- }
19
- }
20
- function logWarning(logger, message) {
21
- if (logger === undefined) {
22
- console.warn(`@zenstackhq/server: ${message}`);
23
- }
24
- else if (logger?.warn) {
25
- logger.warn(message);
26
- }
27
- }
28
- function logInfo(logger, message) {
29
- if (logger === undefined) {
30
- console.log(`@zenstackhq/server: ${message}`);
31
- }
32
- else if (logger?.info) {
33
- logger.info(message);
34
- }
35
- }
36
- /**
37
- * Registers custom superjson serializers.
38
- */
39
- function registerCustomSerializers() {
40
- superjson_1.default.registerCustom({
41
- isApplicable: (v) => decimal_js_1.Decimal.isDecimal(v),
42
- serialize: (v) => v.toJSON(),
43
- deserialize: (v) => new decimal_js_1.Decimal(v),
44
- }, 'Decimal');
45
- // `Buffer` is not available in edge runtime
46
- if (globalThis.Buffer) {
47
- superjson_1.default.registerCustom({
48
- isApplicable: (v) => Buffer.isBuffer(v),
49
- serialize: (v) => v.toString('base64'),
50
- deserialize: (v) => Buffer.from(v, 'base64'),
51
- }, 'Bytes');
52
- }
53
- }
54
- //# sourceMappingURL=utils.js.map
package/api/utils.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/api/utils.ts"],"names":[],"mappings":";;;;;AAIA,4BAMC;AAED,gCAMC;AAED,0BAMC;AAKD,8DAqBC;AApDD,2CAAqC;AACrC,0DAAkC;AAGlC,SAAgB,QAAQ,CAAC,MAAuC,EAAE,OAAe,EAAE,IAAa;IAC5F,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,6BAA6B,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,EAAE,CAAC,CAAC;IAC3F,CAAC;SAAM,IAAI,MAAM,EAAE,KAAK,EAAE,CAAC;QACvB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC;AACL,CAAC;AAED,SAAgB,UAAU,CAAC,MAAuC,EAAE,OAAe;IAC/E,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,uBAAuB,OAAO,EAAE,CAAC,CAAC;IACnD,CAAC;SAAM,IAAI,MAAM,EAAE,IAAI,EAAE,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;AACL,CAAC;AAED,SAAgB,OAAO,CAAC,MAAuC,EAAE,OAAe;IAC5E,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,uBAAuB,OAAO,EAAE,CAAC,CAAC;IAClD,CAAC;SAAM,IAAI,MAAM,EAAE,IAAI,EAAE,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAgB,yBAAyB;IACrC,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,SAAS,CACZ,CAAC;IAEF,4CAA4C;IAC5C,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACpB,mBAAS,CAAC,cAAc,CACpB;YACI,YAAY,EAAE,CAAC,CAAC,EAAe,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YACpD,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACtC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC;SAC/C,EACD,OAAO,CACV,CAAC;IACN,CAAC;AACL,CAAC"}
@@ -1,44 +0,0 @@
1
- import { Elysia, Context as ElysiaContext } from 'elysia';
2
- import { AdapterBaseOptions } from '../types';
3
- /**
4
- * Options for initializing an Elysia middleware.
5
- */
6
- export interface ElysiaOptions extends AdapterBaseOptions {
7
- /**
8
- * Callback method for getting a Prisma instance for the given request context.
9
- */
10
- getPrisma: (context: ElysiaContext) => Promise<unknown> | unknown;
11
- /**
12
- * Optional base path to strip from the request path before passing to the API handler.
13
- */
14
- basePath?: string;
15
- }
16
- /**
17
- * Creates an Elysia middleware handler for ZenStack.
18
- * This handler provides automatic CRUD APIs through Elysia's routing system.
19
- */
20
- export declare function createElysiaHandler(options: ElysiaOptions): (app: Elysia) => Promise<Elysia<"", {
21
- decorator: {};
22
- store: {};
23
- derive: {};
24
- resolve: {};
25
- }, {
26
- typebox: {};
27
- error: {};
28
- }, {
29
- schema: {};
30
- standaloneSchema: {};
31
- macro: {};
32
- macroFn: {};
33
- parser: {};
34
- }, {}, {
35
- derive: {};
36
- resolve: {};
37
- schema: {};
38
- standaloneSchema: {};
39
- }, {
40
- derive: {};
41
- resolve: {};
42
- schema: {};
43
- standaloneSchema: {};
44
- }>>;
package/elysia/handler.js DELETED
@@ -1,62 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createElysiaHandler = createElysiaHandler;
4
- const api_1 = require("../api");
5
- const shared_1 = require("../shared");
6
- /**
7
- * Creates an Elysia middleware handler for ZenStack.
8
- * This handler provides automatic CRUD APIs through Elysia's routing system.
9
- */
10
- function createElysiaHandler(options) {
11
- const { modelMeta, zodSchemas } = (0, shared_1.loadAssets)(options);
12
- const requestHandler = options.handler ?? (0, api_1.RPCApiHandler)();
13
- return async (app) => {
14
- app.all('/*', async (ctx) => {
15
- const { request, body, set } = ctx;
16
- const prisma = (await options.getPrisma(ctx));
17
- if (!prisma) {
18
- set.status = 500;
19
- return {
20
- message: 'unable to get prisma from request context',
21
- };
22
- }
23
- const url = new URL(request.url);
24
- const query = Object.fromEntries(url.searchParams);
25
- let path = url.pathname;
26
- if (options.basePath && path.startsWith(options.basePath)) {
27
- path = path.slice(options.basePath.length);
28
- if (!path.startsWith('/')) {
29
- path = '/' + path;
30
- }
31
- }
32
- if (!path || path === '/') {
33
- set.status = 400;
34
- return {
35
- message: 'missing path parameter',
36
- };
37
- }
38
- try {
39
- const r = await requestHandler({
40
- method: request.method,
41
- path,
42
- query,
43
- requestBody: body,
44
- prisma,
45
- modelMeta,
46
- zodSchemas,
47
- logger: options.logger,
48
- });
49
- set.status = r.status;
50
- return r.body;
51
- }
52
- catch (err) {
53
- set.status = 500;
54
- return {
55
- message: 'An internal server error occurred',
56
- };
57
- }
58
- });
59
- return app;
60
- };
61
- }
62
- //# sourceMappingURL=handler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/elysia/handler.ts"],"names":[],"mappings":";;AAwBA,kDAyDC;AA/ED,gCAAuC;AACvC,sCAAuC;AAiBvC;;;GAGG;AACH,SAAgB,mBAAmB,CAAC,OAAsB;IACtD,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAA,mBAAU,EAAC,OAAO,CAAC,CAAC;IACtD,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,IAAI,IAAA,mBAAa,GAAE,CAAC;IAE1D,OAAO,KAAK,EAAE,GAAW,EAAE,EAAE;QACzB,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAkB,EAAE,EAAE;YACvC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;YACnC,MAAM,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAqB,CAAC;YAClE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACV,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;gBACjB,OAAO;oBACH,OAAO,EAAE,2CAA2C;iBACvD,CAAC;YACN,CAAC;YAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACjC,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACnD,IAAI,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC;YAExB,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxD,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC3C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACxB,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC;gBACtB,CAAC;YACL,CAAC;YAED,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACxB,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;gBACjB,OAAO;oBACH,OAAO,EAAE,wBAAwB;iBACpC,CAAC;YACN,CAAC;YAED,IAAI,CAAC;gBACD,MAAM,CAAC,GAAG,MAAM,cAAc,CAAC;oBAC3B,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,IAAI;oBACJ,KAAK;oBACL,WAAW,EAAE,IAAI;oBACjB,MAAM;oBACN,SAAS;oBACT,UAAU;oBACV,MAAM,EAAE,OAAO,CAAC,MAAM;iBACzB,CAAC,CAAC;gBAEH,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;gBACtB,OAAO,CAAC,CAAC,IAAI,CAAC;YAClB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;gBACjB,OAAO;oBACH,OAAO,EAAE,mCAAmC;iBAC/C,CAAC;YACN,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACf,CAAC,CAAC;AACN,CAAC"}
package/elysia/index.d.ts DELETED
@@ -1 +0,0 @@
1
- export * from './handler';
package/elysia/index.js DELETED
@@ -1,18 +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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./handler"), exports);
18
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/elysia/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B"}
@@ -1,2 +0,0 @@
1
- export { ZenStackMiddleware } from './middleware';
2
- export * from './middleware';
package/express/index.js DELETED
@@ -1,21 +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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.ZenStackMiddleware = void 0;
18
- var middleware_1 = require("./middleware");
19
- Object.defineProperty(exports, "ZenStackMiddleware", { enumerable: true, get: function () { return middleware_1.ZenStackMiddleware; } });
20
- __exportStar(require("./middleware"), exports);
21
- //# sourceMappingURL=index.js.map