@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/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 schemas;
25
+ let zodSchemas;
28
26
  if (typeof options.zodSchemas === 'object') {
29
- schemas = options.zodSchemas;
27
+ zodSchemas = options.zodSchemas;
30
28
  }
31
29
  else if (options.zodSchemas === true) {
32
- schemas = (0, zod_1.getModelZodSchemas)();
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
- const useSuperJson = options.useSuperJson === true;
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: (0, utils_2.unmarshalFromObject)(request.body, useSuperJson),
49
+ query: request.query,
50
+ requestBody: request.body,
58
51
  prisma,
59
52
  modelMeta: options.modelMeta,
60
- zodSchemas: schemas,
53
+ zodSchemas,
61
54
  logger: options.logger,
62
55
  });
63
- reply.status(response.status).send((0, utils_2.marshalToObject)(response.body, useSuperJson));
56
+ reply.status(response.status).send(response.body);
64
57
  }
65
58
  catch (err) {
66
- reply.status(500).send((0, utils_2.marshalToObject)({ message: `An unhandled error occurred: ${err}` }, useSuperJson));
59
+ reply.status(500).send({ message: `An unhandled error occurred: ${err}` });
67
60
  }
68
61
  }));
69
62
  done();
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/fastify/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAEA,iDAA6E;AAE7E,oEAAgC;AAChC,qDAAuC;AACvC,wCAAuC;AAEvC,oCAA+E;AAiB/E;;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,OAAmC,CAAC;IACxC,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,EAAE;QACxC,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;KAChC;SAAM,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI,EAAE;QACpC,OAAO,GAAG,IAAA,wBAAkB,GAAE,CAAC;KAClC;IAED,MAAM,aAAa,GAAG,MAAA,OAAO,CAAC,OAAO,mCAAI,IAAA,aAAa,GAAE,CAAC;IACzD,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC;IAEnD,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;iBACA,MAAM,CAAC,GAAG,CAAC;iBACX,IAAI,CAAC,IAAA,uBAAe,EAAC,EAAE,OAAO,EAAE,2CAA2C,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;YACnG,OAAO;SACV;QAED,IAAI,KAAK,GAAsC,EAAE,CAAC;QAClD,IAAI;YACA,KAAK,GAAG,IAAA,qBAAa,EAAC,OAAO,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;SACtD;QAAC,WAAM;YACJ,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAA,uBAAe,EAAC,EAAE,OAAO,EAAE,0BAA0B,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;YAC/F,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;gBACL,WAAW,EAAE,IAAA,2BAAmB,EAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC;gBAC5D,MAAM;gBACN,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,UAAU,EAAE,OAAO;gBACnB,MAAM,EAAE,OAAO,CAAC,MAAM;aACzB,CAAC,CAAC;YACH,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAA,uBAAe,EAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;SACpF;QAAC,OAAO,GAAG,EAAE;YACV,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAA,uBAAe,EAAC,EAAE,OAAO,EAAE,gCAAgC,GAAG,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;SAC7G;IACL,CAAC,CAAA,CAAC,CAAC;IAEH,IAAI,EAAE,CAAC;AACX,CAAC,CAAC;AAEF,kBAAe,IAAA,wBAAE,EAAC,aAAa,CAAC,CAAC"}
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 = (0, zod_1.getModelZodSchemas)();
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
- const useSuperJson = options.useSuperJson === true;
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((0, utils_1.marshalToObject)({ message: 'unable to get prisma from request context' }, useSuperJson), { status: 500 });
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
- let query = Object.fromEntries(url.searchParams);
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((0, utils_1.marshalToObject)({ message: 'missing path parameter' }, useSuperJson), {
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 (_b) {
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: (0, utils_1.unmarshalFromObject)(requestBody, useSuperJson),
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((0, utils_1.marshalToObject)(r.body, useSuperJson), { status: r.status });
72
+ return server_1.NextResponse.json(r.body, { status: r.status });
78
73
  }
79
74
  catch (err) {
80
- return server_1.NextResponse.json((0, utils_1.marshalToObject)({ message: `An unhandled error occurred: ${err}` }, useSuperJson), { status: 500 });
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":"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"}
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 = (0, zod_1.getModelZodSchemas)();
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
- const useSuperJson = options.useSuperJson === true;
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((0, utils_1.marshalToObject)({ message: 'unable to get prisma from request context' }, useSuperJson));
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((0, utils_1.marshalToObject)({ message: 'missing path parameter' }, useSuperJson));
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: (0, utils_1.unmarshalFromObject)(req.body, useSuperJson),
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((0, utils_1.marshalToObject)(r.body, useSuperJson));
60
+ res.status(r.status).send(r.body);
66
61
  }
67
62
  catch (err) {
68
- res.status(500).send((0, utils_1.marshalToObject)({ message: `An unhandled error occurred: ${err}` }, useSuperJson));
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;;;;;;;;;;;;;;AAG7D,iDAA6E;AAG7E,qDAAuC;AACvC,oCAA+E;AAE/E;;;;;GAKG;AACH,SAAwB,OAAO,CAC3B,OAAwC;IAExC,IAAI,UAAsC,CAAC;IAC3C,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,IAAA,wBAAkB,GAAE,CAAC;KACrC;IAED,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,IAAI,IAAA,aAAa,GAAE,CAAC;IAC1D,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC;IAEnD,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,CAChB,IAAA,uBAAe,EAAC,EAAE,OAAO,EAAE,2CAA2C,EAAE,EAAE,YAAY,CAAC,CAC1F,CAAC;YACF,OAAO;SACV;QAED,IAAI,KAAK,GAAsC,EAAE,CAAC;QAClD,IAAI;YACA,KAAK,GAAG,IAAA,qBAAa,EAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;SAClD;QAAC,WAAM;YACJ,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAA,uBAAe,EAAC,EAAE,OAAO,EAAE,0BAA0B,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;YAC7F,OAAO;SACV;QAED,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE;YACjB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAA,uBAAe,EAAC,EAAE,OAAO,EAAE,wBAAwB,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;YAC3F,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;gBACL,WAAW,EAAE,IAAA,2BAAmB,EAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC;gBACxD,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,IAAA,uBAAe,EAAC,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;SACpE;QAAC,OAAO,GAAG,EAAE;YACV,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAA,uBAAe,EAAC,EAAE,OAAO,EAAE,gCAAgC,GAAG,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;SAC3G;IACL,CAAC,CAAA,CAAC;AACN,CAAC;AApDD,0BAoDC"}
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.2",
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/runtime": "1.0.0-beta.2",
27
- "@zenstackhq/openapi": "1.0.0-beta.2"
30
+ "@zenstackhq/openapi": "1.0.0-beta.21",
31
+ "@zenstackhq/runtime": "1.0.0-beta.21"
28
32
  },
29
33
  "devDependencies": {
30
- "@sveltejs/kit": "^1.16.3",
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.2"
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
  }
@@ -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 schemas;
23
+ let zodSchemas;
26
24
  if (typeof options.zodSchemas === 'object') {
27
- schemas = options.zodSchemas;
25
+ zodSchemas = options.zodSchemas;
28
26
  }
29
27
  else if (options.zodSchemas === true) {
30
- schemas = (0, zod_1.getModelZodSchemas)();
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((0, utils_2.marshalToString)({ message: 'unable to get prisma from request context' }, useSuperJson), {
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 = (0, utils_2.unmarshalFromString)(text, useSuperJson);
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 requestHanler({
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: schemas,
64
+ zodSchemas,
78
65
  modelMeta: options.modelMeta,
79
66
  });
80
- return new Response((0, utils_2.marshalToString)(r.body, useSuperJson), {
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((0, utils_2.marshalToString)({ message: `An unhandled error occurred: ${err}` }, useSuperJson), {
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',
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/sveltekit/handler.ts"],"names":[],"mappings":"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"}
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?: ModelZodSchema;
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?: ModelZodSchema | boolean;
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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"}