@zenstackhq/testtools 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/db.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export declare function createPostgresDb(db: string): Promise<string>;
2
+ export declare function dropPostgresDb(db: string): Promise<void>;
package/db.js ADDED
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.dropPostgresDb = exports.createPostgresDb = void 0;
13
+ const pg_1 = require("pg");
14
+ const USERNAME = 'postgres';
15
+ const PASSWORD = 'abc123';
16
+ function createPostgresDb(db) {
17
+ return __awaiter(this, void 0, void 0, function* () {
18
+ const pool = new pg_1.Pool({ user: USERNAME, password: PASSWORD });
19
+ yield pool.query(`DROP DATABASE IF EXISTS "${db}";`);
20
+ yield pool.query(`CREATE DATABASE "${db}";`);
21
+ return `postgresql://${USERNAME}:${PASSWORD}@localhost:5432/${db}`;
22
+ });
23
+ }
24
+ exports.createPostgresDb = createPostgresDb;
25
+ function dropPostgresDb(db) {
26
+ return __awaiter(this, void 0, void 0, function* () {
27
+ const pool = new pg_1.Pool({ user: USERNAME, password: PASSWORD });
28
+ yield pool.query(`DROP DATABASE IF EXISTS "${db}";`);
29
+ });
30
+ }
31
+ exports.dropPostgresDb = dropPostgresDb;
32
+ //# sourceMappingURL=db.js.map
package/db.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2BAA0B;AAE1B,MAAM,QAAQ,GAAG,UAAU,CAAC;AAC5B,MAAM,QAAQ,GAAG,QAAQ,CAAC;AAE1B,SAAsB,gBAAgB,CAAC,EAAU;;QAC7C,MAAM,IAAI,GAAG,IAAI,SAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC9D,MAAM,IAAI,CAAC,KAAK,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAC;QACrD,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;QAC7C,OAAO,gBAAgB,QAAQ,IAAI,QAAQ,mBAAmB,EAAE,EAAE,CAAC;IACvE,CAAC;CAAA;AALD,4CAKC;AAED,SAAsB,cAAc,CAAC,EAAU;;QAC3C,MAAM,IAAI,GAAG,IAAI,SAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC9D,MAAM,IAAI,CAAC,KAAK,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;CAAA;AAHD,wCAGC"}
package/index.d.ts CHANGED
@@ -1 +1,2 @@
1
1
  export * from './schema';
2
+ export * from './db';
package/index.js CHANGED
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./schema"), exports);
18
+ __exportStar(require("./db"), exports);
18
19
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,uCAAqB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zenstackhq/testtools",
3
- "version": "1.0.0-beta.2",
3
+ "version": "1.0.0-beta.21",
4
4
  "description": "ZenStack Test Tools",
5
5
  "main": "index.js",
6
6
  "publishConfig": {
@@ -11,17 +11,18 @@
11
11
  "author": "",
12
12
  "license": "MIT",
13
13
  "dependencies": {
14
- "@prisma/client": "^4.7.0",
15
- "@prisma/generator-helper": "^4.7.1",
16
- "@prisma/internals": "^4.7.1",
17
- "prisma": "~4.7.0",
14
+ "@prisma/generator-helper": "^5.0.0",
15
+ "json5": "^2.2.3",
16
+ "pg": "^8.11.1",
18
17
  "tmp": "^0.2.1",
19
- "@zenstackhq/language": "1.0.0-beta.2",
20
- "@zenstackhq/runtime": "1.0.0-beta.2",
21
- "zenstack": "1.0.0-beta.2"
18
+ "@zenstackhq/language": "1.0.0-beta.21",
19
+ "@zenstackhq/runtime": "1.0.0-beta.21",
20
+ "@zenstackhq/sdk": "1.0.0-beta.21",
21
+ "zenstack": "1.0.0-beta.21"
22
22
  },
23
23
  "devDependencies": {
24
- "@types/node": "^18.14.2",
24
+ "@types/node": "^18.0.0",
25
+ "@types/pg": "^8.10.2",
25
26
  "@types/tmp": "^0.2.3",
26
27
  "copyfiles": "^2.4.1",
27
28
  "rimraf": "^3.0.2",
@@ -30,7 +31,7 @@
30
31
  "scripts": {
31
32
  "clean": "rimraf dist",
32
33
  "lint": "eslint src --ext ts",
33
- "build": "pnpm lint && pnpm clean && tsc && copyfiles ./package.json ./LICENSE ./README.md dist && copyfiles -u 1 src/package.template.json src/.npmrc.template dist",
34
+ "build": "pnpm lint && pnpm clean && tsc && copyfiles ./package.json ./LICENSE ./README.md dist && copyfiles -u 1 src/package.template.json src/.npmrc.template dist && pnpm pack dist --pack-destination '../../../.build'",
34
35
  "watch": "tsc --watch"
35
36
  }
36
37
  }
@@ -7,14 +7,15 @@
7
7
  "author": "",
8
8
  "license": "ISC",
9
9
  "dependencies": {
10
- "@prisma/client": "^4.0.0",
10
+ "@prisma/client": "^4.8.0",
11
11
  "@zenstackhq/runtime": "file:<root>/packages/runtime/dist",
12
- "@zenstackhq/react": "file:<root>/packages/plugins/react/dist",
12
+ "@zenstackhq/swr": "file:<root>/packages/plugins/swr/dist",
13
13
  "@zenstackhq/trpc": "file:<root>/packages/plugins/trpc/dist",
14
14
  "@zenstackhq/openapi": "file:<root>/packages/plugins/openapi/dist",
15
- "prisma": "^4.0.0",
15
+ "prisma": "^4.8.0",
16
16
  "typescript": "^4.9.3",
17
17
  "zenstack": "file:<root>/packages/schema/dist",
18
- "zod": "3.21.1"
18
+ "zod": "3.21.1",
19
+ "decimal.js": "^10.4.2"
19
20
  }
20
21
  }
package/schema.d.ts CHANGED
@@ -12,39 +12,48 @@ import { type AuthUser, type DbOperations } from '@zenstackhq/runtime';
12
12
  }`
13
13
  */
14
14
  export declare const FILE_SPLITTER = "#FILE_SPLITTER#";
15
- export type WeakDbOperations = {
16
- [key in keyof DbOperations]: (...args: any[]) => Promise<any>;
17
- };
18
- export type WeakDbClientContract = Record<string, WeakDbOperations> & {
15
+ export type FullDbClientContract = Record<string, DbOperations> & {
19
16
  $on(eventType: any, callback: (event: any) => void): void;
20
17
  $use(cb: any): void;
21
18
  $disconnect: () => Promise<void>;
22
- $transaction: (input: ((tx: WeakDbClientContract) => Promise<any>) | any[], options?: any) => Promise<any>;
19
+ $transaction: (input: ((tx: FullDbClientContract) => Promise<any>) | any[], options?: any) => Promise<any>;
23
20
  $queryRaw: (query: TemplateStringsArray, ...args: any[]) => Promise<any>;
24
21
  $executeRaw: (query: TemplateStringsArray, ...args: any[]) => Promise<number>;
25
- $extends: (args: any) => WeakDbClientContract;
22
+ $extends: (args: any) => FullDbClientContract;
26
23
  };
27
24
  export declare function run(cmd: string, env?: Record<string, string>, cwd?: string): void;
28
25
  export declare function getWorkspaceRoot(start: string): string | undefined;
29
26
  export declare function getWorkspaceNpmCacheFolder(start: string): string;
30
- export declare function loadSchemaFromFile(schemaFile: string, addPrelude?: boolean, pushDb?: boolean, logPrismaQuery?: boolean): Promise<{
27
+ export type SchemaLoadOptions = {
28
+ addPrelude?: boolean;
29
+ pushDb?: boolean;
30
+ fullZod?: boolean;
31
+ extraDependencies?: string[];
32
+ compile?: boolean;
33
+ customSchemaFilePath?: string;
34
+ logPrismaQuery?: boolean;
35
+ provider?: 'sqlite' | 'postgresql';
36
+ dbUrl?: string;
37
+ pulseApiKey?: string;
38
+ };
39
+ export declare function loadSchemaFromFile(schemaFile: string, options?: SchemaLoadOptions): Promise<{
31
40
  projectDir: string;
32
41
  prisma: any;
33
- withPolicy: (user?: AuthUser | undefined) => WeakDbClientContract;
34
- withOmit: () => WeakDbClientContract;
35
- withPassword: () => WeakDbClientContract;
36
- withPresets: (user?: AuthUser | undefined) => WeakDbClientContract;
42
+ withPolicy: (user?: AuthUser | undefined) => FullDbClientContract;
43
+ withOmit: () => FullDbClientContract;
44
+ withPassword: () => FullDbClientContract;
45
+ enhance: (user?: AuthUser | undefined) => FullDbClientContract;
37
46
  policy: any;
38
47
  modelMeta: any;
39
48
  zodSchemas: any;
40
49
  }>;
41
- export declare function loadSchema(schema: string, addPrelude?: boolean, pushDb?: boolean, extraDependencies?: string[], compile?: boolean, customSchemaFilePath?: string, logPrismaQuery?: boolean): Promise<{
50
+ export declare function loadSchema(schema: string, options?: SchemaLoadOptions): Promise<{
42
51
  projectDir: string;
43
52
  prisma: any;
44
- withPolicy: (user?: AuthUser) => WeakDbClientContract;
45
- withOmit: () => WeakDbClientContract;
46
- withPassword: () => WeakDbClientContract;
47
- withPresets: (user?: AuthUser) => WeakDbClientContract;
53
+ withPolicy: (user?: AuthUser) => FullDbClientContract;
54
+ withOmit: () => FullDbClientContract;
55
+ withPassword: () => FullDbClientContract;
56
+ enhance: (user?: AuthUser) => FullDbClientContract;
48
57
  policy: any;
49
58
  modelMeta: any;
50
59
  zodSchemas: any;
package/schema.js CHANGED
@@ -36,10 +36,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
36
36
  };
37
37
  Object.defineProperty(exports, "__esModule", { value: true });
38
38
  exports.loadZModelAndDmmf = exports.loadSchema = exports.loadSchemaFromFile = exports.getWorkspaceNpmCacheFolder = exports.getWorkspaceRoot = exports.run = exports.FILE_SPLITTER = void 0;
39
- const internals_1 = require("@prisma/internals");
40
39
  const runtime_1 = require("@zenstackhq/runtime");
40
+ const sdk_1 = require("@zenstackhq/sdk");
41
41
  const child_process_1 = require("child_process");
42
42
  const fs = __importStar(require("fs"));
43
+ const json5_1 = __importDefault(require("json5"));
43
44
  const path = __importStar(require("path"));
44
45
  const tmp_1 = __importDefault(require("tmp"));
45
46
  const cli_util_1 = require("zenstack/cli/cli-util");
@@ -56,12 +57,14 @@ const prisma_1 = __importDefault(require("zenstack/plugins/prisma"));
56
57
  */
57
58
  exports.FILE_SPLITTER = '#FILE_SPLITTER#';
58
59
  function run(cmd, env, cwd) {
60
+ const start = Date.now();
59
61
  (0, child_process_1.execSync)(cmd, {
60
62
  stdio: 'pipe',
61
63
  encoding: 'utf-8',
62
64
  env: Object.assign(Object.assign(Object.assign({}, process.env), { DO_NOT_TRACK: '1' }), env),
63
65
  cwd,
64
66
  });
67
+ console.log('Execution took', Date.now() - start, 'ms', '-', cmd);
65
68
  }
66
69
  exports.run = run;
67
70
  function normalizePath(p) {
@@ -85,10 +88,16 @@ function getWorkspaceNpmCacheFolder(start) {
85
88
  return root ? path.join(root, '.npmcache') : './.npmcache';
86
89
  }
87
90
  exports.getWorkspaceNpmCacheFolder = getWorkspaceNpmCacheFolder;
88
- const MODEL_PRELUDE = `
91
+ function makePrelude(options) {
92
+ var _a;
93
+ let dbUrl = (_a = options.dbUrl) !== null && _a !== void 0 ? _a : (options.provider === 'postgresql' ? 'env("DATABASE_URL")' : 'file:./dev.db');
94
+ if (!dbUrl.includes('env(') && !dbUrl.startsWith("'") && !dbUrl.startsWith('"')) {
95
+ dbUrl = `'${dbUrl}'`;
96
+ }
97
+ return `
89
98
  datasource db {
90
- provider = 'sqlite'
91
- url = 'file:./test.db'
99
+ provider = '${options.provider}'
100
+ url = ${dbUrl}
92
101
  }
93
102
 
94
103
  generator js {
@@ -96,30 +105,32 @@ generator js {
96
105
  previewFeatures = ['clientExtensions']
97
106
  }
98
107
 
99
- plugin meta {
100
- provider = '@core/model-meta'
101
- output = '.zenstack'
102
- }
103
-
104
- plugin policy {
105
- provider = '@core/access-policy'
106
- output = '.zenstack'
107
- }
108
-
109
108
  plugin zod {
110
109
  provider = '@core/zod'
111
- output = '.zenstack/zod'
110
+ modelOnly = ${!options.fullZod}
112
111
  }
113
112
  `;
114
- function loadSchemaFromFile(schemaFile, addPrelude = true, pushDb = true, logPrismaQuery = false) {
113
+ }
114
+ const defaultOptions = {
115
+ addPrelude: true,
116
+ pushDb: true,
117
+ fullZod: false,
118
+ extraDependencies: [],
119
+ compile: false,
120
+ logPrismaQuery: false,
121
+ provider: 'sqlite',
122
+ };
123
+ function loadSchemaFromFile(schemaFile, options) {
115
124
  return __awaiter(this, void 0, void 0, function* () {
116
125
  const content = fs.readFileSync(schemaFile, { encoding: 'utf-8' });
117
- return loadSchema(content, addPrelude, pushDb, [], false, undefined, logPrismaQuery);
126
+ return loadSchema(content, options);
118
127
  });
119
128
  }
120
129
  exports.loadSchemaFromFile = loadSchemaFromFile;
121
- function loadSchema(schema, addPrelude = true, pushDb = true, extraDependencies = [], compile = false, customSchemaFilePath, logPrismaQuery = false) {
130
+ function loadSchema(schema, options) {
131
+ var _a, _b;
122
132
  return __awaiter(this, void 0, void 0, function* () {
133
+ const opt = Object.assign(Object.assign({}, defaultOptions), options);
123
134
  const { name: projectRoot } = tmp_1.default.dirSync({ unsafeCleanup: true });
124
135
  const root = getWorkspaceRoot(__dirname);
125
136
  if (!root) {
@@ -143,9 +154,9 @@ function loadSchema(schema, addPrelude = true, pushDb = true, extraDependencies
143
154
  if (index === 0) {
144
155
  // The first file is the main schema file
145
156
  zmodelPath = path.join(projectRoot, fileName);
146
- if (addPrelude) {
157
+ if (opt.addPrelude) {
147
158
  // plugin need to be added after import statement
148
- fileContent = `${fileContent}\n${MODEL_PRELUDE}`;
159
+ fileContent = `${fileContent}\n${makePrelude(opt)}`;
149
160
  }
150
161
  }
151
162
  fileContent = fileContent.replaceAll('$projectRoot', projectRoot);
@@ -155,9 +166,9 @@ function loadSchema(schema, addPrelude = true, pushDb = true, extraDependencies
155
166
  }
156
167
  else {
157
168
  schema = schema.replaceAll('$projectRoot', projectRoot);
158
- const content = addPrelude ? `${MODEL_PRELUDE}\n${schema}` : schema;
159
- if (customSchemaFilePath) {
160
- zmodelPath = path.join(projectRoot, customSchemaFilePath);
169
+ const content = opt.addPrelude ? `${makePrelude(opt)}\n${schema}` : schema;
170
+ if (opt.customSchemaFilePath) {
171
+ zmodelPath = path.join(projectRoot, opt.customSchemaFilePath);
161
172
  fs.mkdirSync(path.dirname(zmodelPath), { recursive: true });
162
173
  fs.writeFileSync(zmodelPath, content);
163
174
  }
@@ -166,7 +177,7 @@ function loadSchema(schema, addPrelude = true, pushDb = true, extraDependencies
166
177
  }
167
178
  }
168
179
  run('npm install');
169
- if (customSchemaFilePath) {
180
+ if (opt.customSchemaFilePath) {
170
181
  run(`npx zenstack generate --schema ${zmodelPath} --no-dependency-check`, {
171
182
  NODE_PATH: './node_modules',
172
183
  });
@@ -174,30 +185,63 @@ function loadSchema(schema, addPrelude = true, pushDb = true, extraDependencies
174
185
  else {
175
186
  run('npx zenstack generate --no-dependency-check', { NODE_PATH: './node_modules' });
176
187
  }
177
- if (pushDb) {
188
+ if (opt.pushDb) {
178
189
  run('npx prisma db push');
179
190
  }
180
- const PrismaClient = require(path.join(projectRoot, 'node_modules/.prisma/client')).PrismaClient;
181
- const prisma = new PrismaClient({ log: ['info', 'warn', 'error'] });
182
- extraDependencies.forEach((dep) => {
191
+ if (opt.pulseApiKey) {
192
+ (_a = opt.extraDependencies) === null || _a === void 0 ? void 0 : _a.push('@prisma/extension-pulse');
193
+ }
194
+ (_b = opt.extraDependencies) === null || _b === void 0 ? void 0 : _b.forEach((dep) => {
183
195
  console.log(`Installing dependency ${dep}`);
184
196
  run(`npm install ${dep}`);
185
197
  });
186
- if (compile) {
198
+ const PrismaClient = require(path.join(projectRoot, 'node_modules/.prisma/client')).PrismaClient;
199
+ let prisma = new PrismaClient({ log: ['info', 'warn', 'error'] });
200
+ if (opt.pulseApiKey) {
201
+ const withPulse = require(path.join(projectRoot, 'node_modules/@prisma/extension-pulse/dist/cjs')).withPulse;
202
+ prisma = prisma.$extends(withPulse({ apiKey: opt.pulseApiKey }));
203
+ }
204
+ if (opt.compile) {
187
205
  console.log('Compiling...');
188
206
  run('npx tsc --init');
207
+ // add generated '.zenstack/zod' folder to typescript's search path,
208
+ // so that it can be resolved from symbolic-linked files
209
+ const tsconfig = json5_1.default.parse(fs.readFileSync(path.join(projectRoot, './tsconfig.json'), 'utf-8'));
210
+ tsconfig.compilerOptions.paths = {
211
+ '.zenstack/zod/input': ['./node_modules/.zenstack/zod/input/index.d.ts'],
212
+ };
213
+ fs.writeFileSync(path.join(projectRoot, './tsconfig.json'), JSON.stringify(tsconfig, null, 2));
189
214
  run('npx tsc --project tsconfig.json');
190
215
  }
191
- const policy = require(path.join(path.dirname(zmodelPath), '.zenstack/policy')).default;
192
- const modelMeta = require(path.join(path.dirname(zmodelPath), '.zenstack/model-meta')).default;
193
- const zodSchemas = require(path.join(path.dirname(zmodelPath), '.zenstack/zod'));
216
+ let policy;
217
+ let modelMeta;
218
+ let zodSchemas;
219
+ const outputPath = path.join(projectRoot, 'node_modules');
220
+ try {
221
+ policy = require(path.join(outputPath, '.zenstack/policy')).default;
222
+ }
223
+ catch (_c) {
224
+ /* noop */
225
+ }
226
+ try {
227
+ modelMeta = require(path.join(outputPath, '.zenstack/model-meta')).default;
228
+ }
229
+ catch (_d) {
230
+ /* noop */
231
+ }
232
+ try {
233
+ zodSchemas = require(path.join(outputPath, '.zenstack/zod'));
234
+ }
235
+ catch (_e) {
236
+ /* noop */
237
+ }
194
238
  return {
195
239
  projectDir: projectRoot,
196
240
  prisma,
197
- withPolicy: (user) => (0, runtime_1.withPolicy)(prisma, { user }, { policy, modelMeta, logPrismaQuery }),
241
+ withPolicy: (user) => (0, runtime_1.withPolicy)(prisma, { user }, { policy, modelMeta, zodSchemas, logPrismaQuery: opt.logPrismaQuery }),
198
242
  withOmit: () => (0, runtime_1.withOmit)(prisma, { modelMeta }),
199
243
  withPassword: () => (0, runtime_1.withPassword)(prisma, { modelMeta }),
200
- withPresets: (user) => (0, runtime_1.withPresets)(prisma, { user }, { policy, modelMeta, logPrismaQuery }),
244
+ enhance: (user) => (0, runtime_1.enhance)(prisma, { user }, { policy, modelMeta, zodSchemas, logPrismaQuery: opt.logPrismaQuery }),
201
245
  policy,
202
246
  modelMeta,
203
247
  zodSchemas,
@@ -224,7 +268,7 @@ function loadZModelAndDmmf(content) {
224
268
  const { name: prismaFile } = tmp_1.default.fileSync({ postfix: '.prisma' });
225
269
  yield (0, prisma_1.default)(model, { schemaPath: modelFile, name: 'Prisma', output: prismaFile, generateClient: false });
226
270
  const prismaContent = fs.readFileSync(prismaFile, { encoding: 'utf-8' });
227
- const dmmf = yield (0, internals_1.getDMMF)({ datamodel: prismaContent });
271
+ const dmmf = yield (0, sdk_1.getDMMF)({ datamodel: prismaContent });
228
272
  return { model, dmmf, modelFile };
229
273
  });
230
274
  }
package/schema.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}