@zenstackhq/server 2.0.0-beta.3 → 2.0.0-beta.4
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/README.md +2 -2
- package/nestjs/index.d.ts +1 -0
- package/nestjs/index.js +18 -0
- package/nestjs/index.js.map +1 -0
- package/nestjs/zenstack.module.d.ts +49 -0
- package/nestjs/zenstack.module.js +74 -0
- package/nestjs/zenstack.module.js.map +1 -0
- package/package.json +7 -3
package/README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
# ZenStack
|
|
1
|
+
# ZenStack Server Adapters
|
|
2
2
|
|
|
3
|
-
This package provides
|
|
3
|
+
This package provides adapters and utilities for integrating with popular Node.js servers, including Express, Fastify, and Nest.js.
|
|
4
4
|
|
|
5
5
|
Visit [Homepage](https://zenstack.dev) for more details.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './zenstack.module';
|
package/nestjs/index.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
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("./zenstack.module"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/nestjs/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { type DynamicModule, type FactoryProvider, type ModuleMetadata, type Provider } from '@nestjs/common';
|
|
2
|
+
/**
|
|
3
|
+
* The default token used to export the enhanced Prisma service.
|
|
4
|
+
*/
|
|
5
|
+
export declare const ENHANCED_PRISMA = "ENHANCED_PRISMA";
|
|
6
|
+
/**
|
|
7
|
+
* ZenStack module options.
|
|
8
|
+
*/
|
|
9
|
+
export interface ZenStackModuleOptions {
|
|
10
|
+
/**
|
|
11
|
+
* A callback for getting an enhanced `PrismaClient`.
|
|
12
|
+
*/
|
|
13
|
+
getEnhancedPrisma: () => unknown;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* ZenStack module async registration options.
|
|
17
|
+
*/
|
|
18
|
+
export interface ZenStackModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
|
|
19
|
+
/**
|
|
20
|
+
* Whether the module is global-scoped.
|
|
21
|
+
*/
|
|
22
|
+
global?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* The token to export the enhanced Prisma service. Default is {@link ENHANCED_PRISMA}.
|
|
25
|
+
*/
|
|
26
|
+
exportToken?: string;
|
|
27
|
+
/**
|
|
28
|
+
* The factory function to create the enhancement options.
|
|
29
|
+
*/
|
|
30
|
+
useFactory: (...args: unknown[]) => Promise<ZenStackModuleOptions> | ZenStackModuleOptions;
|
|
31
|
+
/**
|
|
32
|
+
* The dependencies to inject into the factory function.
|
|
33
|
+
*/
|
|
34
|
+
inject?: FactoryProvider['inject'];
|
|
35
|
+
/**
|
|
36
|
+
* Extra providers to facilitate dependency injection.
|
|
37
|
+
*/
|
|
38
|
+
extraProviders?: Provider[];
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* The ZenStack module for NestJS. The module exports an enhanced Prisma service,
|
|
42
|
+
* by default with token {@link ENHANCED_PRISMA}.
|
|
43
|
+
*/
|
|
44
|
+
export declare class ZenStackModule {
|
|
45
|
+
/**
|
|
46
|
+
* Registers the ZenStack module with the specified options.
|
|
47
|
+
*/
|
|
48
|
+
static registerAsync(options: ZenStackModuleAsyncOptions): DynamicModule;
|
|
49
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
9
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
10
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
11
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
12
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
13
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
14
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
15
|
+
});
|
|
16
|
+
};
|
|
17
|
+
var ZenStackModule_1;
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
exports.ZenStackModule = exports.ENHANCED_PRISMA = void 0;
|
|
20
|
+
const common_1 = require("@nestjs/common");
|
|
21
|
+
/**
|
|
22
|
+
* The default token used to export the enhanced Prisma service.
|
|
23
|
+
*/
|
|
24
|
+
exports.ENHANCED_PRISMA = 'ENHANCED_PRISMA';
|
|
25
|
+
/**
|
|
26
|
+
* The ZenStack module for NestJS. The module exports an enhanced Prisma service,
|
|
27
|
+
* by default with token {@link ENHANCED_PRISMA}.
|
|
28
|
+
*/
|
|
29
|
+
let ZenStackModule = ZenStackModule_1 = class ZenStackModule {
|
|
30
|
+
/**
|
|
31
|
+
* Registers the ZenStack module with the specified options.
|
|
32
|
+
*/
|
|
33
|
+
static registerAsync(options) {
|
|
34
|
+
var _a, _b, _c;
|
|
35
|
+
return {
|
|
36
|
+
module: ZenStackModule_1,
|
|
37
|
+
global: options === null || options === void 0 ? void 0 : options.global,
|
|
38
|
+
imports: options.imports,
|
|
39
|
+
providers: [
|
|
40
|
+
{
|
|
41
|
+
provide: (_a = options.exportToken) !== null && _a !== void 0 ? _a : exports.ENHANCED_PRISMA,
|
|
42
|
+
useFactory: (
|
|
43
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
44
|
+
...args) => __awaiter(this, void 0, void 0, function* () {
|
|
45
|
+
const { getEnhancedPrisma } = yield options.useFactory(...args);
|
|
46
|
+
if (!getEnhancedPrisma) {
|
|
47
|
+
throw new Error('`getEnhancedPrisma` must be provided in the options');
|
|
48
|
+
}
|
|
49
|
+
// create a proxy to intercept all calls to the Prisma service and forward
|
|
50
|
+
// to the enhanced version
|
|
51
|
+
return new Proxy({}, {
|
|
52
|
+
get(_target, prop) {
|
|
53
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
54
|
+
const enhancedPrisma = getEnhancedPrisma();
|
|
55
|
+
if (!enhancedPrisma) {
|
|
56
|
+
throw new Error('`getEnhancedPrisma` must return a valid Prisma client');
|
|
57
|
+
}
|
|
58
|
+
return enhancedPrisma[prop];
|
|
59
|
+
},
|
|
60
|
+
});
|
|
61
|
+
}),
|
|
62
|
+
inject: options.inject,
|
|
63
|
+
},
|
|
64
|
+
...((_b = options.extraProviders) !== null && _b !== void 0 ? _b : []),
|
|
65
|
+
],
|
|
66
|
+
exports: [(_c = options.exportToken) !== null && _c !== void 0 ? _c : exports.ENHANCED_PRISMA],
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
exports.ZenStackModule = ZenStackModule;
|
|
71
|
+
exports.ZenStackModule = ZenStackModule = ZenStackModule_1 = __decorate([
|
|
72
|
+
(0, common_1.Module)({})
|
|
73
|
+
], ZenStackModule);
|
|
74
|
+
//# sourceMappingURL=zenstack.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zenstack.module.js","sourceRoot":"","sources":["../../src/nestjs/zenstack.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,2CAAsH;AAEtH;;GAEG;AACU,QAAA,eAAe,GAAG,iBAAiB,CAAC;AA0CjD;;;GAGG;AAEI,IAAM,cAAc,sBAApB,MAAM,cAAc;IACvB;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,OAAmC;;QACpD,OAAO;YACH,MAAM,EAAE,gBAAc;YACtB,MAAM,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM;YACvB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,SAAS,EAAE;gBACP;oBACI,OAAO,EAAE,MAAA,OAAO,CAAC,WAAW,mCAAI,uBAAe;oBAC/C,UAAU,EAAE;oBACR,8DAA8D;oBAC9D,GAAG,IAAe,EACpB,EAAE;wBACA,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;wBAChE,IAAI,CAAC,iBAAiB,EAAE,CAAC;4BACrB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;wBAC3E,CAAC;wBAED,0EAA0E;wBAC1E,0BAA0B;wBAE1B,OAAO,IAAI,KAAK,CACZ,EAAE,EACF;4BACI,GAAG,CAAC,OAAO,EAAE,IAAI;gCACb,8DAA8D;gCAC9D,MAAM,cAAc,GAAQ,iBAAiB,EAAE,CAAC;gCAChD,IAAI,CAAC,cAAc,EAAE,CAAC;oCAClB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;gCAC7E,CAAC;gCACD,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;4BAChC,CAAC;yBACJ,CACJ,CAAC;oBACN,CAAC,CAAA;oBACD,MAAM,EAAE,OAAO,CAAC,MAAM;iBACzB;gBACD,GAAG,CAAC,MAAA,OAAO,CAAC,cAAc,mCAAI,EAAE,CAAC;aACpC;YACD,OAAO,EAAE,CAAC,MAAA,OAAO,CAAC,WAAW,mCAAI,uBAAe,CAAC;SACpD,CAAC;IACN,CAAC;CACJ,CAAA;AA7CY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,cAAc,CA6C1B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zenstackhq/server",
|
|
3
|
-
"version": "2.0.0-beta.
|
|
3
|
+
"version": "2.0.0-beta.4",
|
|
4
4
|
"displayName": "ZenStack Server-side Adapters",
|
|
5
5
|
"description": "ZenStack server-side adapters",
|
|
6
6
|
"homepage": "https://zenstack.dev",
|
|
@@ -27,9 +27,11 @@
|
|
|
27
27
|
"url-pattern": "^1.0.3",
|
|
28
28
|
"zod": "^3.22.4",
|
|
29
29
|
"zod-validation-error": "^1.5.0",
|
|
30
|
-
"@zenstackhq/runtime": "2.0.0-beta.
|
|
30
|
+
"@zenstackhq/runtime": "2.0.0-beta.4"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
|
+
"@nestjs/platform-express": "^10.3.5",
|
|
34
|
+
"@nestjs/testing": "^10.3.5",
|
|
33
35
|
"@sveltejs/kit": "1.21.0",
|
|
34
36
|
"@types/body-parser": "^1.19.2",
|
|
35
37
|
"@types/express": "^4.17.17",
|
|
@@ -44,7 +46,8 @@
|
|
|
44
46
|
"next": "^13.4.5",
|
|
45
47
|
"nuxt": "^3.7.4",
|
|
46
48
|
"supertest": "^6.3.3",
|
|
47
|
-
"@
|
|
49
|
+
"@nestjs/common": "^10.0.0",
|
|
50
|
+
"@zenstackhq/testtools": "2.0.0-beta.4"
|
|
48
51
|
},
|
|
49
52
|
"exports": {
|
|
50
53
|
"./package.json": "./package.json",
|
|
@@ -57,6 +60,7 @@
|
|
|
57
60
|
"./next/pages-route-handler": "./next/pages-route-handler.js",
|
|
58
61
|
"./sveltekit": "./sveltekit/index.js",
|
|
59
62
|
"./nuxt": "./nuxt/index.js",
|
|
63
|
+
"./nestjs": "./nestjs/index.js",
|
|
60
64
|
"./types": "./types.js"
|
|
61
65
|
},
|
|
62
66
|
"scripts": {
|