@zenstackhq/testtools 1.0.0-alpha.98 → 1.0.0-beta.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zenstackhq/testtools",
3
- "version": "1.0.0-alpha.98",
3
+ "version": "1.0.0-beta.1",
4
4
  "description": "ZenStack Test Tools",
5
5
  "main": "index.js",
6
6
  "publishConfig": {
@@ -16,9 +16,9 @@
16
16
  "@prisma/internals": "^4.7.1",
17
17
  "prisma": "~4.7.0",
18
18
  "tmp": "^0.2.1",
19
- "@zenstackhq/runtime": "1.0.0-alpha.98",
20
- "zenstack": "1.0.0-alpha.98",
21
- "@zenstackhq/language": "1.0.0-alpha.98"
19
+ "@zenstackhq/language": "1.0.0-beta.1",
20
+ "@zenstackhq/runtime": "1.0.0-beta.1",
21
+ "zenstack": "1.0.0-beta.1"
22
22
  },
23
23
  "devDependencies": {
24
24
  "@types/node": "^18.14.2",
@@ -15,6 +15,6 @@
15
15
  "prisma": "^4.0.0",
16
16
  "typescript": "^4.9.3",
17
17
  "zenstack": "file:<root>/packages/schema/dist",
18
- "zod": "^3.19.1"
18
+ "zod": "3.21.1"
19
19
  }
20
20
  }
package/schema.d.ts CHANGED
@@ -1,6 +1,17 @@
1
1
  import type { DMMF } from '@prisma/generator-helper';
2
2
  import type { Model } from '@zenstackhq/language/ast';
3
3
  import { type AuthUser, type DbOperations } from '@zenstackhq/runtime';
4
+ /**
5
+ * Use it to represent multiple files in a single string like this
6
+ `schema.zmodel
7
+ import "user"
8
+ ${FILE_SPLITTER}user.zmodel
9
+ import "schema"
10
+ model User {
11
+ ...
12
+ }`
13
+ */
14
+ export declare const FILE_SPLITTER = "#FILE_SPLITTER#";
4
15
  export type WeakDbOperations = {
5
16
  [key in keyof DbOperations]: (...args: any[]) => Promise<any>;
6
17
  };
@@ -16,22 +27,26 @@ export type WeakDbClientContract = Record<string, WeakDbOperations> & {
16
27
  export declare function run(cmd: string, env?: Record<string, string>, cwd?: string): void;
17
28
  export declare function getWorkspaceRoot(start: string): string | undefined;
18
29
  export declare function getWorkspaceNpmCacheFolder(start: string): string;
19
- export declare function loadSchemaFromFile(schemaFile: string, addPrelude?: boolean, pushDb?: boolean): Promise<{
30
+ export declare function loadSchemaFromFile(schemaFile: string, addPrelude?: boolean, pushDb?: boolean, logPrismaQuery?: boolean): Promise<{
20
31
  projectDir: string;
21
32
  prisma: any;
22
33
  withPolicy: (user?: AuthUser | undefined) => WeakDbClientContract;
23
34
  withOmit: () => WeakDbClientContract;
24
35
  withPassword: () => WeakDbClientContract;
25
36
  withPresets: (user?: AuthUser | undefined) => WeakDbClientContract;
37
+ policy: any;
38
+ modelMeta: any;
26
39
  zodSchemas: any;
27
40
  }>;
28
- export declare function loadSchema(schema: string, addPrelude?: boolean, pushDb?: boolean, extraDependencies?: string[], compile?: boolean): Promise<{
41
+ export declare function loadSchema(schema: string, addPrelude?: boolean, pushDb?: boolean, extraDependencies?: string[], compile?: boolean, customSchemaFilePath?: string, logPrismaQuery?: boolean): Promise<{
29
42
  projectDir: string;
30
43
  prisma: any;
31
44
  withPolicy: (user?: AuthUser) => WeakDbClientContract;
32
45
  withOmit: () => WeakDbClientContract;
33
46
  withPassword: () => WeakDbClientContract;
34
47
  withPresets: (user?: AuthUser) => WeakDbClientContract;
48
+ policy: any;
49
+ modelMeta: any;
35
50
  zodSchemas: any;
36
51
  }>;
37
52
  /**
package/schema.js CHANGED
@@ -35,7 +35,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
35
35
  return (mod && mod.__esModule) ? mod : { "default": mod };
36
36
  };
37
37
  Object.defineProperty(exports, "__esModule", { value: true });
38
- exports.loadZModelAndDmmf = exports.loadSchema = exports.loadSchemaFromFile = exports.getWorkspaceNpmCacheFolder = exports.getWorkspaceRoot = exports.run = void 0;
38
+ exports.loadZModelAndDmmf = exports.loadSchema = exports.loadSchemaFromFile = exports.getWorkspaceNpmCacheFolder = exports.getWorkspaceRoot = exports.run = exports.FILE_SPLITTER = void 0;
39
39
  const internals_1 = require("@prisma/internals");
40
40
  const runtime_1 = require("@zenstackhq/runtime");
41
41
  const child_process_1 = require("child_process");
@@ -44,6 +44,17 @@ const path = __importStar(require("path"));
44
44
  const tmp_1 = __importDefault(require("tmp"));
45
45
  const cli_util_1 = require("zenstack/cli/cli-util");
46
46
  const prisma_1 = __importDefault(require("zenstack/plugins/prisma"));
47
+ /**
48
+ * Use it to represent multiple files in a single string like this
49
+ `schema.zmodel
50
+ import "user"
51
+ ${FILE_SPLITTER}user.zmodel
52
+ import "schema"
53
+ model User {
54
+ ...
55
+ }`
56
+ */
57
+ exports.FILE_SPLITTER = '#FILE_SPLITTER#';
47
58
  function run(cmd, env, cwd) {
48
59
  (0, child_process_1.execSync)(cmd, {
49
60
  stdio: 'pipe',
@@ -53,14 +64,17 @@ function run(cmd, env, cwd) {
53
64
  });
54
65
  }
55
66
  exports.run = run;
67
+ function normalizePath(p) {
68
+ return p ? p.split(path.sep).join(path.posix.sep) : p;
69
+ }
56
70
  function getWorkspaceRoot(start) {
57
- let curr = start;
71
+ let curr = normalizePath(start);
58
72
  while (curr && curr !== '/') {
59
73
  if (fs.existsSync(path.join(curr, 'pnpm-workspace.yaml'))) {
60
74
  return curr;
61
75
  }
62
76
  else {
63
- curr = path.dirname(curr);
77
+ curr = normalizePath(path.dirname(curr));
64
78
  }
65
79
  }
66
80
  return undefined;
@@ -97,32 +111,69 @@ plugin zod {
97
111
  output = '.zenstack/zod'
98
112
  }
99
113
  `;
100
- function loadSchemaFromFile(schemaFile, addPrelude = true, pushDb = true) {
114
+ function loadSchemaFromFile(schemaFile, addPrelude = true, pushDb = true, logPrismaQuery = false) {
101
115
  return __awaiter(this, void 0, void 0, function* () {
102
116
  const content = fs.readFileSync(schemaFile, { encoding: 'utf-8' });
103
- return loadSchema(content, addPrelude, pushDb);
117
+ return loadSchema(content, addPrelude, pushDb, [], false, undefined, logPrismaQuery);
104
118
  });
105
119
  }
106
120
  exports.loadSchemaFromFile = loadSchemaFromFile;
107
- function loadSchema(schema, addPrelude = true, pushDb = true, extraDependencies = [], compile = false) {
121
+ function loadSchema(schema, addPrelude = true, pushDb = true, extraDependencies = [], compile = false, customSchemaFilePath, logPrismaQuery = false) {
108
122
  return __awaiter(this, void 0, void 0, function* () {
109
- const { name: projectRoot } = tmp_1.default.dirSync();
123
+ const { name: projectRoot } = tmp_1.default.dirSync({ unsafeCleanup: true });
110
124
  const root = getWorkspaceRoot(__dirname);
111
125
  if (!root) {
112
126
  throw new Error('Could not find workspace root');
113
127
  }
114
- console.log('Workspace root:', root);
115
128
  const pkgContent = fs.readFileSync(path.join(__dirname, 'package.template.json'), { encoding: 'utf-8' });
116
129
  fs.writeFileSync(path.join(projectRoot, 'package.json'), pkgContent.replaceAll('<root>', root));
117
130
  const npmrcContent = fs.readFileSync(path.join(__dirname, '.npmrc.template'), { encoding: 'utf-8' });
118
131
  fs.writeFileSync(path.join(projectRoot, '.npmrc'), npmrcContent.replaceAll('<root>', root));
119
132
  console.log('Workdir:', projectRoot);
120
133
  process.chdir(projectRoot);
121
- schema = schema.replaceAll('$projectRoot', projectRoot);
122
- const content = addPrelude ? `${MODEL_PRELUDE}\n${schema}` : schema;
123
- fs.writeFileSync('schema.zmodel', content);
134
+ let zmodelPath = path.join(projectRoot, 'schema.zmodel');
135
+ const files = schema.split(exports.FILE_SPLITTER);
136
+ if (files.length > 1) {
137
+ // multiple files
138
+ files.forEach((file, index) => {
139
+ //first line is the file name
140
+ const firstLine = file.indexOf('\n');
141
+ const fileName = file.substring(0, firstLine).trim();
142
+ let fileContent = file.substring(firstLine + 1);
143
+ if (index === 0) {
144
+ // The first file is the main schema file
145
+ zmodelPath = path.join(projectRoot, fileName);
146
+ if (addPrelude) {
147
+ // plugin need to be added after import statement
148
+ fileContent = `${fileContent}\n${MODEL_PRELUDE}`;
149
+ }
150
+ }
151
+ fileContent = fileContent.replaceAll('$projectRoot', projectRoot);
152
+ const filePath = path.join(projectRoot, fileName);
153
+ fs.writeFileSync(filePath, fileContent);
154
+ });
155
+ }
156
+ else {
157
+ schema = schema.replaceAll('$projectRoot', projectRoot);
158
+ const content = addPrelude ? `${MODEL_PRELUDE}\n${schema}` : schema;
159
+ if (customSchemaFilePath) {
160
+ zmodelPath = path.join(projectRoot, customSchemaFilePath);
161
+ fs.mkdirSync(path.dirname(zmodelPath), { recursive: true });
162
+ fs.writeFileSync(zmodelPath, content);
163
+ }
164
+ else {
165
+ fs.writeFileSync('schema.zmodel', content);
166
+ }
167
+ }
124
168
  run('npm install');
125
- run('npx zenstack generate --no-dependency-check', { NODE_PATH: './node_modules' });
169
+ if (customSchemaFilePath) {
170
+ run(`npx zenstack generate --schema ${zmodelPath} --no-dependency-check`, {
171
+ NODE_PATH: './node_modules',
172
+ });
173
+ }
174
+ else {
175
+ run('npx zenstack generate --no-dependency-check', { NODE_PATH: './node_modules' });
176
+ }
126
177
  if (pushDb) {
127
178
  run('npx prisma db push');
128
179
  }
@@ -137,16 +188,18 @@ function loadSchema(schema, addPrelude = true, pushDb = true, extraDependencies
137
188
  run('npx tsc --init');
138
189
  run('npx tsc --project tsconfig.json');
139
190
  }
140
- const policy = require(path.join(projectRoot, '.zenstack/policy')).default;
141
- const modelMeta = require(path.join(projectRoot, '.zenstack/model-meta')).default;
142
- const zodSchemas = require(path.join(projectRoot, '.zenstack/zod')).default;
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'));
143
194
  return {
144
195
  projectDir: projectRoot,
145
196
  prisma,
146
- withPolicy: (user) => (0, runtime_1.withPolicy)(prisma, { user }, policy, modelMeta),
147
- withOmit: () => (0, runtime_1.withOmit)(prisma, modelMeta),
148
- withPassword: () => (0, runtime_1.withPassword)(prisma, modelMeta),
149
- withPresets: (user) => (0, runtime_1.withPresets)(prisma, { user }, policy, modelMeta),
197
+ withPolicy: (user) => (0, runtime_1.withPolicy)(prisma, { user }, { policy, modelMeta, logPrismaQuery }),
198
+ withOmit: () => (0, runtime_1.withOmit)(prisma, { modelMeta }),
199
+ withPassword: () => (0, runtime_1.withPassword)(prisma, { modelMeta }),
200
+ withPresets: (user) => (0, runtime_1.withPresets)(prisma, { user }, { policy, modelMeta, logPrismaQuery }),
201
+ policy,
202
+ modelMeta,
150
203
  zodSchemas,
151
204
  };
152
205
  });
@@ -169,7 +222,7 @@ function loadZModelAndDmmf(content) {
169
222
  fs.writeFileSync(modelFile, `${prelude}\n${content}`);
170
223
  const model = yield (0, cli_util_1.loadDocument)(modelFile);
171
224
  const { name: prismaFile } = tmp_1.default.fileSync({ postfix: '.prisma' });
172
- yield (0, prisma_1.default)(model, { schemaPath: modelFile, output: prismaFile, generateClient: false });
225
+ yield (0, prisma_1.default)(model, { schemaPath: modelFile, name: 'Prisma', output: prismaFile, generateClient: false });
173
226
  const prismaContent = fs.readFileSync(prismaFile, { encoding: 'utf-8' });
174
227
  const dmmf = yield (0, internals_1.getDMMF)({ datamodel: prismaContent });
175
228
  return { model, dmmf, modelFile };
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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"}