@zenstackhq/server 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.
- package/api/base.d.ts +8 -0
- package/api/base.js +19 -0
- package/api/base.js.map +1 -0
- package/api/rest/index.d.ts +1 -1
- package/api/rest/index.js +110 -69
- package/api/rest/index.js.map +1 -1
- package/api/rpc/index.d.ts +1 -1
- package/api/rpc/index.js +139 -52
- package/api/rpc/index.js.map +1 -1
- package/api/utils.d.ts +2 -12
- package/api/utils.js +19 -49
- package/api/utils.js.map +1 -1
- package/express/middleware.d.ts +10 -0
- package/express/middleware.js +35 -32
- package/express/middleware.js.map +1 -1
- package/fastify/plugin.d.ts +2 -1
- package/fastify/plugin.js +15 -22
- package/fastify/plugin.js.map +1 -1
- package/next/app-route-handler.js +14 -19
- package/next/app-route-handler.js.map +1 -1
- package/next/pages-route-handler.js +13 -18
- package/next/pages-route-handler.js.map +1 -1
- package/package.json +24 -10
- package/sveltekit/handler.js +17 -30
- package/sveltekit/handler.js.map +1 -1
- package/types.d.ts +3 -4
- package/utils.d.ts +0 -17
- package/utils.js +0 -93
- package/utils.js.map +0 -1
package/fastify/plugin.js
CHANGED
|
@@ -12,11 +12,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
const zod_1 = require("@zenstackhq/runtime/zod");
|
|
16
15
|
const fastify_plugin_1 = __importDefault(require("fastify-plugin"));
|
|
17
16
|
const rpc_1 = __importDefault(require("../api/rpc"));
|
|
18
17
|
const utils_1 = require("../api/utils");
|
|
19
|
-
const utils_2 = require("../utils");
|
|
20
18
|
/**
|
|
21
19
|
* Fastify plugin for handling CRUD requests.
|
|
22
20
|
*/
|
|
@@ -24,46 +22,41 @@ const pluginHandler = (fastify, options, done) => {
|
|
|
24
22
|
var _a, _b;
|
|
25
23
|
const prefix = (_a = options.prefix) !== null && _a !== void 0 ? _a : '';
|
|
26
24
|
(0, utils_1.logInfo)(options.logger, `ZenStackPlugin installing routes at prefix: ${prefix}`);
|
|
27
|
-
let
|
|
25
|
+
let zodSchemas;
|
|
28
26
|
if (typeof options.zodSchemas === 'object') {
|
|
29
|
-
|
|
27
|
+
zodSchemas = options.zodSchemas;
|
|
30
28
|
}
|
|
31
29
|
else if (options.zodSchemas === true) {
|
|
32
|
-
|
|
30
|
+
zodSchemas = require('@zenstackhq/runtime/zod');
|
|
31
|
+
if (!zodSchemas) {
|
|
32
|
+
throw new Error('Unable to load zod schemas from default location');
|
|
33
|
+
}
|
|
33
34
|
}
|
|
34
35
|
const requestHanler = (_b = options.handler) !== null && _b !== void 0 ? _b : (0, rpc_1.default)();
|
|
35
|
-
|
|
36
|
+
if (options.useSuperJson !== undefined) {
|
|
37
|
+
console.warn('The option "useSuperJson" is deprecated. The server APIs automatically use superjson for serialization.');
|
|
38
|
+
}
|
|
36
39
|
fastify.all(`${prefix}/*`, (request, reply) => __awaiter(void 0, void 0, void 0, function* () {
|
|
37
40
|
const prisma = (yield options.getPrisma(request, reply));
|
|
38
41
|
if (!prisma) {
|
|
39
|
-
reply
|
|
40
|
-
.status(500)
|
|
41
|
-
.send((0, utils_2.marshalToObject)({ message: 'unable to get prisma from request context' }, useSuperJson));
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
let query = {};
|
|
45
|
-
try {
|
|
46
|
-
query = (0, utils_2.buildUrlQuery)(request.query, useSuperJson);
|
|
47
|
-
}
|
|
48
|
-
catch (_c) {
|
|
49
|
-
reply.status(400).send((0, utils_2.marshalToObject)({ message: 'invalid query parameters' }, useSuperJson));
|
|
42
|
+
reply.status(500).send({ message: 'unable to get prisma from request context' });
|
|
50
43
|
return;
|
|
51
44
|
}
|
|
52
45
|
try {
|
|
53
46
|
const response = yield requestHanler({
|
|
54
47
|
method: request.method,
|
|
55
48
|
path: request.params['*'],
|
|
56
|
-
query,
|
|
57
|
-
requestBody:
|
|
49
|
+
query: request.query,
|
|
50
|
+
requestBody: request.body,
|
|
58
51
|
prisma,
|
|
59
52
|
modelMeta: options.modelMeta,
|
|
60
|
-
zodSchemas
|
|
53
|
+
zodSchemas,
|
|
61
54
|
logger: options.logger,
|
|
62
55
|
});
|
|
63
|
-
reply.status(response.status).send(
|
|
56
|
+
reply.status(response.status).send(response.body);
|
|
64
57
|
}
|
|
65
58
|
catch (err) {
|
|
66
|
-
reply.status(500).send(
|
|
59
|
+
reply.status(500).send({ message: `An unhandled error occurred: ${err}` });
|
|
67
60
|
}
|
|
68
61
|
}));
|
|
69
62
|
done();
|
package/fastify/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/fastify/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/fastify/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAIA,oEAAgC;AAChC,qDAAuC;AACvC,wCAAuC;AAkBvC;;GAEG;AACH,MAAM,aAAa,GAAyC,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;;IACnF,MAAM,MAAM,GAAG,MAAA,OAAO,CAAC,MAAM,mCAAI,EAAE,CAAC;IACpC,IAAA,eAAO,EAAC,OAAO,CAAC,MAAM,EAAE,+CAA+C,MAAM,EAAE,CAAC,CAAC;IAEjF,IAAI,UAAkC,CAAC;IACvC,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,EAAE;QACxC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;KACnC;SAAM,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI,EAAE;QACpC,UAAU,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;SACvE;KACJ;IAED,MAAM,aAAa,GAAG,MAAA,OAAO,CAAC,OAAO,mCAAI,IAAA,aAAa,GAAE,CAAC;IACzD,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE;QACpC,OAAO,CAAC,IAAI,CACR,yGAAyG,CAC5G,CAAC;KACL;IAED,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,EAAE,CAAO,OAAO,EAAE,KAAK,EAAE,EAAE;QAChD,MAAM,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAqB,CAAC;QAC7E,IAAI,CAAC,MAAM,EAAE;YACT,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,2CAA2C,EAAE,CAAC,CAAC;YACjF,OAAO;SACV;QAED,IAAI;YACA,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC;gBACjC,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,IAAI,EAAG,OAAO,CAAC,MAAc,CAAC,GAAG,CAAC;gBAClC,KAAK,EAAE,OAAO,CAAC,KAA0C;gBACzD,WAAW,EAAE,OAAO,CAAC,IAAI;gBACzB,MAAM;gBACN,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,UAAU;gBACV,MAAM,EAAE,OAAO,CAAC,MAAM;aACzB,CAAC,CAAC;YACH,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACrD;QAAC,OAAO,GAAG,EAAE;YACV,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,gCAAgC,GAAG,EAAE,EAAE,CAAC,CAAC;SAC9E;IACL,CAAC,CAAA,CAAC,CAAC;IAEH,IAAI,EAAE,CAAC;AACX,CAAC,CAAC;AAEF,kBAAe,IAAA,wBAAE,EAAC,aAAa,CAAC,CAAC"}
|
|
@@ -13,10 +13,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
13
13
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
14
14
|
};
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
const zod_1 = require("@zenstackhq/runtime/zod");
|
|
17
16
|
const server_1 = require("next/server");
|
|
18
17
|
const rpc_1 = __importDefault(require("../api/rpc"));
|
|
19
|
-
const utils_1 = require("../utils");
|
|
20
18
|
/**
|
|
21
19
|
* Creates a Next.js 13 "app dir" API route request handler which encapsulates Prisma CRUD operations.
|
|
22
20
|
*
|
|
@@ -29,27 +27,24 @@ function factory(options) {
|
|
|
29
27
|
zodSchemas = options.zodSchemas;
|
|
30
28
|
}
|
|
31
29
|
else if (options.zodSchemas === true) {
|
|
32
|
-
zodSchemas = (
|
|
30
|
+
zodSchemas = require('@zenstackhq/runtime/zod');
|
|
31
|
+
if (!zodSchemas) {
|
|
32
|
+
throw new Error('Unable to load zod schemas from default location');
|
|
33
|
+
}
|
|
33
34
|
}
|
|
34
35
|
const requestHandler = options.handler || (0, rpc_1.default)();
|
|
35
|
-
|
|
36
|
+
if (options.useSuperJson !== undefined) {
|
|
37
|
+
console.warn('The option "useSuperJson" is deprecated. The server APIs automatically use superjson for serialization.');
|
|
38
|
+
}
|
|
36
39
|
return (req, context) => __awaiter(this, void 0, void 0, function* () {
|
|
37
40
|
const prisma = (yield options.getPrisma(req));
|
|
38
41
|
if (!prisma) {
|
|
39
|
-
return server_1.NextResponse.json(
|
|
42
|
+
return server_1.NextResponse.json({ message: 'unable to get prisma from request context' }, { status: 500 });
|
|
40
43
|
}
|
|
41
44
|
const url = new URL(req.url);
|
|
42
|
-
|
|
43
|
-
try {
|
|
44
|
-
query = (0, utils_1.buildUrlQuery)(query, useSuperJson);
|
|
45
|
-
}
|
|
46
|
-
catch (_a) {
|
|
47
|
-
return server_1.NextResponse.json((0, utils_1.marshalToObject)({ message: 'invalid query parameters' }, useSuperJson), {
|
|
48
|
-
status: 400,
|
|
49
|
-
});
|
|
50
|
-
}
|
|
45
|
+
const query = Object.fromEntries(url.searchParams);
|
|
51
46
|
if (!context.params.path) {
|
|
52
|
-
return server_1.NextResponse.json(
|
|
47
|
+
return server_1.NextResponse.json({ message: 'missing path parameter' }, {
|
|
53
48
|
status: 400,
|
|
54
49
|
});
|
|
55
50
|
}
|
|
@@ -59,7 +54,7 @@ function factory(options) {
|
|
|
59
54
|
try {
|
|
60
55
|
requestBody = yield req.json();
|
|
61
56
|
}
|
|
62
|
-
catch (
|
|
57
|
+
catch (_a) {
|
|
63
58
|
// noop
|
|
64
59
|
}
|
|
65
60
|
}
|
|
@@ -68,16 +63,16 @@ function factory(options) {
|
|
|
68
63
|
method: req.method,
|
|
69
64
|
path,
|
|
70
65
|
query,
|
|
71
|
-
requestBody
|
|
66
|
+
requestBody,
|
|
72
67
|
prisma,
|
|
73
68
|
modelMeta: options.modelMeta,
|
|
74
69
|
zodSchemas,
|
|
75
70
|
logger: options.logger,
|
|
76
71
|
});
|
|
77
|
-
return server_1.NextResponse.json(
|
|
72
|
+
return server_1.NextResponse.json(r.body, { status: r.status });
|
|
78
73
|
}
|
|
79
74
|
catch (err) {
|
|
80
|
-
return server_1.NextResponse.json(
|
|
75
|
+
return server_1.NextResponse.json({ message: `An unhandled error occurred: ${err}` }, { status: 500 });
|
|
81
76
|
}
|
|
82
77
|
});
|
|
83
78
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-route-handler.js","sourceRoot":"","sources":["../../src/next/app-route-handler.ts"],"names":[],"mappings":";AAAA,6DAA6D;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"app-route-handler.js","sourceRoot":"","sources":["../../src/next/app-route-handler.ts"],"names":[],"mappings":";AAAA,6DAA6D;;;;;;;;;;;;;;AAI7D,wCAAwD;AAExD,qDAAuC;AAIvC;;;;;GAKG;AACH,SAAwB,OAAO,CAC3B,OAAsC;IAEtC,IAAI,UAAkC,CAAC;IACvC,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,EAAE;QACxC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;KACnC;SAAM,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI,EAAE;QACpC,UAAU,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;SACvE;KACJ;IAED,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,IAAI,IAAA,aAAa,GAAE,CAAC;IAC1D,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE;QACpC,OAAO,CAAC,IAAI,CACR,yGAAyG,CAC5G,CAAC;KACL;IAED,OAAO,CAAO,GAAgB,EAAE,OAAgB,EAAE,EAAE;QAChD,MAAM,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAqB,CAAC;QAClE,IAAI,CAAC,MAAM,EAAE;YACT,OAAO,qBAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,2CAA2C,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;SACvG;QAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAEnD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;YACtB,OAAO,qBAAY,CAAC,IAAI,CACpB,EAAE,OAAO,EAAE,wBAAwB,EAAE,EACrC;gBACI,MAAM,EAAE,GAAG;aACd,CACJ,CAAC;SACL;QACD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE3C,IAAI,WAAoB,CAAC;QACzB,IAAI,GAAG,CAAC,IAAI,EAAE;YACV,IAAI;gBACA,WAAW,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;aAClC;YAAC,WAAM;gBACJ,OAAO;aACV;SACJ;QAED,IAAI;YACA,MAAM,CAAC,GAAG,MAAM,cAAc,CAAC;gBAC3B,MAAM,EAAE,GAAG,CAAC,MAAO;gBACnB,IAAI;gBACJ,KAAK;gBACL,WAAW;gBACX,MAAM;gBACN,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,UAAU;gBACV,MAAM,EAAE,OAAO,CAAC,MAAM;aACzB,CAAC,CAAC;YACH,OAAO,qBAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;SAC1D;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,qBAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,gCAAgC,GAAG,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;SACjG;IACL,CAAC,CAAA,CAAC;AACN,CAAC;AAhED,0BAgEC"}
|
|
@@ -13,9 +13,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
13
13
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
14
14
|
};
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
const zod_1 = require("@zenstackhq/runtime/zod");
|
|
17
16
|
const rpc_1 = __importDefault(require("../api/rpc"));
|
|
18
|
-
const utils_1 = require("../utils");
|
|
19
17
|
/**
|
|
20
18
|
* Creates a Next.js API endpoint (traditional "pages" route) request handler which encapsulates Prisma CRUD operations.
|
|
21
19
|
*
|
|
@@ -28,26 +26,23 @@ function factory(options) {
|
|
|
28
26
|
zodSchemas = options.zodSchemas;
|
|
29
27
|
}
|
|
30
28
|
else if (options.zodSchemas === true) {
|
|
31
|
-
zodSchemas = (
|
|
29
|
+
zodSchemas = require('@zenstackhq/runtime/zod');
|
|
30
|
+
if (!zodSchemas) {
|
|
31
|
+
throw new Error('Unable to load zod schemas from default location');
|
|
32
|
+
}
|
|
32
33
|
}
|
|
33
34
|
const requestHandler = options.handler || (0, rpc_1.default)();
|
|
34
|
-
|
|
35
|
+
if (options.useSuperJson !== undefined) {
|
|
36
|
+
console.warn('The option "useSuperJson" is deprecated. The server APIs automatically use superjson for serialization.');
|
|
37
|
+
}
|
|
35
38
|
return (req, res) => __awaiter(this, void 0, void 0, function* () {
|
|
36
39
|
const prisma = (yield options.getPrisma(req, res));
|
|
37
40
|
if (!prisma) {
|
|
38
|
-
res.status(500).json(
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
let query = {};
|
|
42
|
-
try {
|
|
43
|
-
query = (0, utils_1.buildUrlQuery)(req.query, useSuperJson);
|
|
44
|
-
}
|
|
45
|
-
catch (_a) {
|
|
46
|
-
res.status(400).json((0, utils_1.marshalToObject)({ message: 'invalid query parameters' }, useSuperJson));
|
|
41
|
+
res.status(500).json({ message: 'unable to get prisma from request context' });
|
|
47
42
|
return;
|
|
48
43
|
}
|
|
49
44
|
if (!req.query.path) {
|
|
50
|
-
res.status(400).json(
|
|
45
|
+
res.status(400).json({ message: 'missing path parameter' });
|
|
51
46
|
return;
|
|
52
47
|
}
|
|
53
48
|
const path = req.query.path.join('/');
|
|
@@ -55,17 +50,17 @@ function factory(options) {
|
|
|
55
50
|
const r = yield requestHandler({
|
|
56
51
|
method: req.method,
|
|
57
52
|
path,
|
|
58
|
-
query,
|
|
59
|
-
requestBody:
|
|
53
|
+
query: req.query,
|
|
54
|
+
requestBody: req.body,
|
|
60
55
|
prisma,
|
|
61
56
|
modelMeta: options.modelMeta,
|
|
62
57
|
zodSchemas,
|
|
63
58
|
logger: options.logger,
|
|
64
59
|
});
|
|
65
|
-
res.status(r.status).send(
|
|
60
|
+
res.status(r.status).send(r.body);
|
|
66
61
|
}
|
|
67
62
|
catch (err) {
|
|
68
|
-
res.status(500).send(
|
|
63
|
+
res.status(500).send({ message: `An unhandled error occurred: ${err}` });
|
|
69
64
|
}
|
|
70
65
|
});
|
|
71
66
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages-route-handler.js","sourceRoot":"","sources":["../../src/next/pages-route-handler.ts"],"names":[],"mappings":";AAAA,6DAA6D;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"pages-route-handler.js","sourceRoot":"","sources":["../../src/next/pages-route-handler.ts"],"names":[],"mappings":";AAAA,6DAA6D;;;;;;;;;;;;;;AAM7D,qDAAuC;AAEvC;;;;;GAKG;AACH,SAAwB,OAAO,CAC3B,OAAwC;IAExC,IAAI,UAAkC,CAAC;IACvC,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,EAAE;QACxC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;KACnC;SAAM,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI,EAAE;QACpC,UAAU,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;SACvE;KACJ;IAED,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,IAAI,IAAA,aAAa,GAAE,CAAC;IAC1D,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE;QACpC,OAAO,CAAC,IAAI,CACR,yGAAyG,CAC5G,CAAC;KACL;IAED,OAAO,CAAO,GAAmB,EAAE,GAAoB,EAAE,EAAE;QACvD,MAAM,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAqB,CAAC;QACvE,IAAI,CAAC,MAAM,EAAE;YACT,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,2CAA2C,EAAE,CAAC,CAAC;YAC/E,OAAO;SACV;QAED,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE;YACjB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC,CAAC;YAC5D,OAAO;SACV;QACD,MAAM,IAAI,GAAI,GAAG,CAAC,KAAK,CAAC,IAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEpD,IAAI;YACA,MAAM,CAAC,GAAG,MAAM,cAAc,CAAC;gBAC3B,MAAM,EAAE,GAAG,CAAC,MAAO;gBACnB,IAAI;gBACJ,KAAK,EAAE,GAAG,CAAC,KAA0C;gBACrD,WAAW,EAAE,GAAG,CAAC,IAAI;gBACrB,MAAM;gBACN,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,UAAU;gBACV,MAAM,EAAE,OAAO,CAAC,MAAM;aACzB,CAAC,CAAC;YACH,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SACrC;QAAC,OAAO,GAAG,EAAE;YACV,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,gCAAgC,GAAG,EAAE,EAAE,CAAC,CAAC;SAC5E;IACL,CAAC,CAAA,CAAC;AACN,CAAC;AAjDD,0BAiDC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zenstackhq/server",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.21",
|
|
4
4
|
"displayName": "ZenStack Server-side Adapters",
|
|
5
5
|
"description": "ZenStack server-side adapters",
|
|
6
6
|
"homepage": "https://zenstack.dev",
|
|
@@ -9,7 +9,11 @@
|
|
|
9
9
|
"linkDirectory": true
|
|
10
10
|
},
|
|
11
11
|
"keywords": [
|
|
12
|
-
"fastify"
|
|
12
|
+
"fastify",
|
|
13
|
+
"express",
|
|
14
|
+
"nextjs",
|
|
15
|
+
"sveltekit",
|
|
16
|
+
"nuxtjs"
|
|
13
17
|
],
|
|
14
18
|
"author": "",
|
|
15
19
|
"license": "MIT",
|
|
@@ -23,19 +27,18 @@
|
|
|
23
27
|
"url-pattern": "^1.0.3",
|
|
24
28
|
"zod": "3.21.1",
|
|
25
29
|
"zod-validation-error": "^0.2.1",
|
|
26
|
-
"@zenstackhq/
|
|
27
|
-
"@zenstackhq/
|
|
30
|
+
"@zenstackhq/openapi": "1.0.0-beta.21",
|
|
31
|
+
"@zenstackhq/runtime": "1.0.0-beta.21"
|
|
28
32
|
},
|
|
29
33
|
"devDependencies": {
|
|
30
|
-
"@sveltejs/kit": "
|
|
34
|
+
"@sveltejs/kit": "1.21.0",
|
|
31
35
|
"@types/body-parser": "^1.19.2",
|
|
32
36
|
"@types/express": "^4.17.17",
|
|
33
37
|
"@types/jest": "^29.5.0",
|
|
34
|
-
"@types/lower-case-first": "^1.0.1",
|
|
35
38
|
"@types/supertest": "^2.0.12",
|
|
36
|
-
"@types/upper-case-first": "^1.1.2",
|
|
37
39
|
"body-parser": "^1.20.2",
|
|
38
40
|
"copyfiles": "^2.4.1",
|
|
41
|
+
"decimal.js": "^10.4.2",
|
|
39
42
|
"express": "^4.18.2",
|
|
40
43
|
"fastify": "^4.14.1",
|
|
41
44
|
"fastify-plugin": "^4.5.0",
|
|
@@ -46,14 +49,25 @@
|
|
|
46
49
|
"supertest": "^6.3.3",
|
|
47
50
|
"ts-jest": "^29.0.5",
|
|
48
51
|
"typescript": "^4.9.4",
|
|
49
|
-
"@zenstackhq/testtools": "1.0.0-beta.
|
|
52
|
+
"@zenstackhq/testtools": "1.0.0-beta.21"
|
|
53
|
+
},
|
|
54
|
+
"exports": {
|
|
55
|
+
"./api/rest": "./api/rest/index.js",
|
|
56
|
+
"./api/rpc": "./api/rpc/index.js",
|
|
57
|
+
"./express": "./express/index.js",
|
|
58
|
+
"./fastify": "./fastify/index.js",
|
|
59
|
+
"./next/app-route-handler": "./next/app-route-handler.js",
|
|
60
|
+
"./next": "./next/index.js",
|
|
61
|
+
"./next/pages-route-handler": "./next/pages-route-handler.js",
|
|
62
|
+
"./sveltekit": "./sveltekit/index.js",
|
|
63
|
+
"./types": "./types.js"
|
|
50
64
|
},
|
|
51
65
|
"scripts": {
|
|
52
66
|
"clean": "rimraf dist",
|
|
53
|
-
"build": "pnpm lint && pnpm clean && tsc && copyfiles ./package.json ./README.md ./LICENSE dist",
|
|
67
|
+
"build": "pnpm lint && pnpm clean && tsc && copyfiles ./package.json ./README.md ./LICENSE dist && pnpm pack dist --pack-destination '../../../.build'",
|
|
54
68
|
"watch": "tsc --watch",
|
|
55
69
|
"lint": "eslint src --ext ts",
|
|
56
|
-
"test": "jest",
|
|
70
|
+
"test": "ZENSTACK_TEST=1 jest",
|
|
57
71
|
"publish-dev": "pnpm publish --tag dev"
|
|
58
72
|
}
|
|
59
73
|
}
|
package/sveltekit/handler.js
CHANGED
|
@@ -12,72 +12,59 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
const zod_1 = require("@zenstackhq/runtime/zod");
|
|
16
15
|
const rpc_1 = __importDefault(require("../api/rpc"));
|
|
17
16
|
const utils_1 = require("../api/utils");
|
|
18
|
-
const utils_2 = require("../utils");
|
|
19
17
|
/**
|
|
20
18
|
* SvelteKit server hooks handler for handling CRUD requests.
|
|
21
19
|
*/
|
|
22
20
|
function createHandler(options) {
|
|
23
21
|
var _a;
|
|
24
22
|
(0, utils_1.logInfo)(options.logger, `ZenStackHandler installing routes at prefix: ${options.prefix}`);
|
|
25
|
-
let
|
|
23
|
+
let zodSchemas;
|
|
26
24
|
if (typeof options.zodSchemas === 'object') {
|
|
27
|
-
|
|
25
|
+
zodSchemas = options.zodSchemas;
|
|
28
26
|
}
|
|
29
27
|
else if (options.zodSchemas === true) {
|
|
30
|
-
|
|
28
|
+
zodSchemas = require('@zenstackhq/runtime/zod');
|
|
29
|
+
if (!zodSchemas) {
|
|
30
|
+
throw new Error('Unable to load zod schemas from default location');
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
const requestHandler = (_a = options.handler) !== null && _a !== void 0 ? _a : (0, rpc_1.default)();
|
|
34
|
+
if (options.useSuperJson !== undefined) {
|
|
35
|
+
console.warn('The option "useSuperJson" is deprecated. The server APIs automatically use superjson for serialization.');
|
|
31
36
|
}
|
|
32
|
-
const requestHanler = (_a = options.handler) !== null && _a !== void 0 ? _a : (0, rpc_1.default)();
|
|
33
|
-
const useSuperJson = options.useSuperJson === true;
|
|
34
37
|
return ({ event, resolve }) => __awaiter(this, void 0, void 0, function* () {
|
|
35
38
|
if (event.url.pathname.startsWith(options.prefix)) {
|
|
36
39
|
const prisma = (yield options.getPrisma(event));
|
|
37
40
|
if (!prisma) {
|
|
38
|
-
return new Response(
|
|
39
|
-
status: 400,
|
|
40
|
-
headers: {
|
|
41
|
-
'content-type': 'application/json',
|
|
42
|
-
},
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
const queryObj = {};
|
|
46
|
-
for (const key of event.url.searchParams.keys()) {
|
|
47
|
-
const values = event.url.searchParams.getAll(key);
|
|
48
|
-
queryObj[key] = values;
|
|
49
|
-
}
|
|
50
|
-
let query = {};
|
|
51
|
-
try {
|
|
52
|
-
query = (0, utils_2.buildUrlQuery)(queryObj, useSuperJson);
|
|
53
|
-
}
|
|
54
|
-
catch (_b) {
|
|
55
|
-
return new Response((0, utils_2.marshalToString)({ message: 'invalid query parameters' }, useSuperJson), {
|
|
41
|
+
return new Response(JSON.stringify({ message: 'unable to get prisma from request context' }), {
|
|
56
42
|
status: 400,
|
|
57
43
|
headers: {
|
|
58
44
|
'content-type': 'application/json',
|
|
59
45
|
},
|
|
60
46
|
});
|
|
61
47
|
}
|
|
48
|
+
const query = Object.fromEntries(event.url.searchParams);
|
|
62
49
|
let requestBody;
|
|
63
50
|
if (event.request.body) {
|
|
64
51
|
const text = yield event.request.text();
|
|
65
52
|
if (text) {
|
|
66
|
-
requestBody =
|
|
53
|
+
requestBody = JSON.parse(text);
|
|
67
54
|
}
|
|
68
55
|
}
|
|
69
56
|
const path = event.url.pathname.substring(options.prefix.length);
|
|
70
57
|
try {
|
|
71
|
-
const r = yield
|
|
58
|
+
const r = yield requestHandler({
|
|
72
59
|
method: event.request.method,
|
|
73
60
|
path,
|
|
74
61
|
query,
|
|
75
62
|
requestBody,
|
|
76
63
|
prisma,
|
|
77
|
-
zodSchemas
|
|
64
|
+
zodSchemas,
|
|
78
65
|
modelMeta: options.modelMeta,
|
|
79
66
|
});
|
|
80
|
-
return new Response(
|
|
67
|
+
return new Response(JSON.stringify(r.body), {
|
|
81
68
|
status: r.status,
|
|
82
69
|
headers: {
|
|
83
70
|
'content-type': 'application/json',
|
|
@@ -85,7 +72,7 @@ function createHandler(options) {
|
|
|
85
72
|
});
|
|
86
73
|
}
|
|
87
74
|
catch (err) {
|
|
88
|
-
return new Response(
|
|
75
|
+
return new Response(JSON.stringify({ message: `An unhandled error occurred: ${err}` }), {
|
|
89
76
|
status: 500,
|
|
90
77
|
headers: {
|
|
91
78
|
'content-type': 'application/json',
|
package/sveltekit/handler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/sveltekit/handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/sveltekit/handler.ts"],"names":[],"mappings":"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"}
|
package/types.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
+
import type { ModelMeta, ZodSchemas } from '@zenstackhq/runtime';
|
|
1
2
|
import { DbClientContract } from '@zenstackhq/runtime';
|
|
2
|
-
import { ModelMeta } from '@zenstackhq/runtime/enhancements/types';
|
|
3
|
-
import { ModelZodSchema } from '@zenstackhq/runtime/zod';
|
|
4
3
|
type LoggerMethod = (message: string, code?: string) => void;
|
|
5
4
|
/**
|
|
6
5
|
* Logger config.
|
|
@@ -47,7 +46,7 @@ export type RequestContext = {
|
|
|
47
46
|
* plugin. You can pass it in explicitly if you configured the plugin
|
|
48
47
|
* to output to a different location.
|
|
49
48
|
*/
|
|
50
|
-
zodSchemas?:
|
|
49
|
+
zodSchemas?: ZodSchemas;
|
|
51
50
|
/**
|
|
52
51
|
* Logging configuration. Set to `null` to disable logging.
|
|
53
52
|
* If unset or set to `undefined`, log will be output to console.
|
|
@@ -83,7 +82,7 @@ export interface AdapterBaseOptions {
|
|
|
83
82
|
* Zod schemas for validating request input. Pass `true` to load from standard location
|
|
84
83
|
* (need to enable `@core/zod` plugin in schema.zmodel) or omit to disable input validation.
|
|
85
84
|
*/
|
|
86
|
-
zodSchemas?:
|
|
85
|
+
zodSchemas?: ZodSchemas | boolean;
|
|
87
86
|
/**
|
|
88
87
|
* Api request handler function. Can be created using `@zenstackhq/server/api/rest` or `@zenstackhq/server/api/rpc` factory functions.
|
|
89
88
|
* Defaults to RPC-style API handler created with `/api/rpc`.
|
package/utils.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Marshal an object to string
|
|
3
|
-
*/
|
|
4
|
-
export declare function marshalToString(value: unknown, useSuperJson?: boolean): string;
|
|
5
|
-
/**
|
|
6
|
-
* Marshals an object
|
|
7
|
-
*/
|
|
8
|
-
export declare function marshalToObject(value: unknown, useSuperJson?: boolean): any;
|
|
9
|
-
/**
|
|
10
|
-
* Unmarshal a string to object
|
|
11
|
-
*/
|
|
12
|
-
export declare function unmarshalFromString(value: string, useSuperJson?: boolean): any;
|
|
13
|
-
/**
|
|
14
|
-
* Unmarshal an object
|
|
15
|
-
*/
|
|
16
|
-
export declare function unmarshalFromObject(value: unknown, useSuperJson?: boolean): unknown;
|
|
17
|
-
export declare function buildUrlQuery(query: unknown, useSuperJson: boolean): Record<string, string | string[]>;
|
package/utils.js
DELETED
|
@@ -1,93 +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.buildUrlQuery = exports.unmarshalFromObject = exports.unmarshalFromString = exports.marshalToObject = exports.marshalToString = void 0;
|
|
7
|
-
const superjson_1 = __importDefault(require("superjson"));
|
|
8
|
-
/**
|
|
9
|
-
* Marshal an object to string
|
|
10
|
-
*/
|
|
11
|
-
function marshalToString(value, useSuperJson = false) {
|
|
12
|
-
return useSuperJson ? superjson_1.default.stringify(value) : JSON.stringify(value);
|
|
13
|
-
}
|
|
14
|
-
exports.marshalToString = marshalToString;
|
|
15
|
-
/**
|
|
16
|
-
* Marshals an object
|
|
17
|
-
*/
|
|
18
|
-
function marshalToObject(value, useSuperJson = false) {
|
|
19
|
-
return useSuperJson ? JSON.parse(superjson_1.default.stringify(value)) : value;
|
|
20
|
-
}
|
|
21
|
-
exports.marshalToObject = marshalToObject;
|
|
22
|
-
/**
|
|
23
|
-
* Unmarshal a string to object
|
|
24
|
-
*/
|
|
25
|
-
function unmarshalFromString(value, useSuperJson = false) {
|
|
26
|
-
if (value === undefined || value === null) {
|
|
27
|
-
return value;
|
|
28
|
-
}
|
|
29
|
-
const j = JSON.parse(value);
|
|
30
|
-
if (useSuperJson) {
|
|
31
|
-
if (j === null || j === void 0 ? void 0 : j.json) {
|
|
32
|
-
// parse with superjson
|
|
33
|
-
return superjson_1.default.parse(value);
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
// parse as regular json
|
|
37
|
-
return j;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
return j;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
exports.unmarshalFromString = unmarshalFromString;
|
|
45
|
-
/**
|
|
46
|
-
* Unmarshal an object
|
|
47
|
-
*/
|
|
48
|
-
function unmarshalFromObject(value, useSuperJson = false) {
|
|
49
|
-
if (value === undefined || value === null) {
|
|
50
|
-
return value;
|
|
51
|
-
}
|
|
52
|
-
if (useSuperJson) {
|
|
53
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
54
|
-
if (value.json) {
|
|
55
|
-
// parse with superjson
|
|
56
|
-
return superjson_1.default.parse(JSON.stringify(value));
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
// parse as regular json
|
|
60
|
-
return value;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
return value;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
exports.unmarshalFromObject = unmarshalFromObject;
|
|
68
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
69
|
-
function buildUrlQuery(query, useSuperJson) {
|
|
70
|
-
const result = {};
|
|
71
|
-
if (typeof query !== 'object' || query === null) {
|
|
72
|
-
return result;
|
|
73
|
-
}
|
|
74
|
-
for (const [key, v] of Object.entries(query)) {
|
|
75
|
-
if (typeof v !== 'string' && !Array.isArray(v)) {
|
|
76
|
-
continue;
|
|
77
|
-
}
|
|
78
|
-
let value = v;
|
|
79
|
-
if (key === 'q') {
|
|
80
|
-
// handle parameter marshalling (potentially using superjson)
|
|
81
|
-
if (Array.isArray(value)) {
|
|
82
|
-
value = value.map((v) => JSON.stringify(unmarshalFromString(v, useSuperJson)));
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
value = JSON.stringify(unmarshalFromString(value, useSuperJson));
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
result[key] = value;
|
|
89
|
-
}
|
|
90
|
-
return result;
|
|
91
|
-
}
|
|
92
|
-
exports.buildUrlQuery = buildUrlQuery;
|
|
93
|
-
//# sourceMappingURL=utils.js.map
|
package/utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|