@zenstackhq/testtools 1.0.0-alpha.102 → 1.0.0-alpha.111
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 +4 -4
- package/package.template.json +1 -1
- package/schema.js +53 -41
- package/schema.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zenstackhq/testtools",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.111",
|
|
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/
|
|
20
|
-
"@zenstackhq/
|
|
21
|
-
"zenstack": "1.0.0-alpha.
|
|
19
|
+
"@zenstackhq/language": "1.0.0-alpha.111",
|
|
20
|
+
"@zenstackhq/runtime": "1.0.0-alpha.111",
|
|
21
|
+
"zenstack": "1.0.0-alpha.111"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
24
|
"@types/node": "^18.14.2",
|
package/package.template.json
CHANGED
package/schema.js
CHANGED
|
@@ -88,16 +88,22 @@ generator js {
|
|
|
88
88
|
plugin meta {
|
|
89
89
|
provider = '@core/model-meta'
|
|
90
90
|
output = '.zenstack'
|
|
91
|
+
compile = true
|
|
92
|
+
preserveTsFiles = true
|
|
91
93
|
}
|
|
92
94
|
|
|
93
95
|
plugin policy {
|
|
94
96
|
provider = '@core/access-policy'
|
|
95
97
|
output = '.zenstack'
|
|
98
|
+
compile = true
|
|
99
|
+
preserveTsFiles = true
|
|
96
100
|
}
|
|
97
101
|
|
|
98
102
|
plugin zod {
|
|
99
103
|
provider = '@core/zod'
|
|
100
104
|
output = '.zenstack/zod'
|
|
105
|
+
compile = true
|
|
106
|
+
preserveTsFiles = true
|
|
101
107
|
}
|
|
102
108
|
`;
|
|
103
109
|
function loadSchemaFromFile(schemaFile, addPrelude = true, pushDb = true) {
|
|
@@ -109,49 +115,55 @@ function loadSchemaFromFile(schemaFile, addPrelude = true, pushDb = true) {
|
|
|
109
115
|
exports.loadSchemaFromFile = loadSchemaFromFile;
|
|
110
116
|
function loadSchema(schema, addPrelude = true, pushDb = true, extraDependencies = [], compile = false) {
|
|
111
117
|
return __awaiter(this, void 0, void 0, function* () {
|
|
112
|
-
const { name: projectRoot } = tmp_1.default.dirSync();
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
118
|
+
const { name: projectRoot } = tmp_1.default.dirSync({ unsafeCleanup: true });
|
|
119
|
+
try {
|
|
120
|
+
const root = getWorkspaceRoot(__dirname);
|
|
121
|
+
if (!root) {
|
|
122
|
+
throw new Error('Could not find workspace root');
|
|
123
|
+
}
|
|
124
|
+
console.log('Workspace root:', root);
|
|
125
|
+
const pkgContent = fs.readFileSync(path.join(__dirname, 'package.template.json'), { encoding: 'utf-8' });
|
|
126
|
+
fs.writeFileSync(path.join(projectRoot, 'package.json'), pkgContent.replaceAll('<root>', root));
|
|
127
|
+
const npmrcContent = fs.readFileSync(path.join(__dirname, '.npmrc.template'), { encoding: 'utf-8' });
|
|
128
|
+
fs.writeFileSync(path.join(projectRoot, '.npmrc'), npmrcContent.replaceAll('<root>', root));
|
|
129
|
+
console.log('Workdir:', projectRoot);
|
|
130
|
+
process.chdir(projectRoot);
|
|
131
|
+
schema = schema.replaceAll('$projectRoot', projectRoot);
|
|
132
|
+
const content = addPrelude ? `${MODEL_PRELUDE}\n${schema}` : schema;
|
|
133
|
+
fs.writeFileSync('schema.zmodel', content);
|
|
134
|
+
run('npm install');
|
|
135
|
+
run('npx zenstack generate --no-dependency-check', { NODE_PATH: './node_modules' });
|
|
136
|
+
if (pushDb) {
|
|
137
|
+
run('npx prisma db push');
|
|
138
|
+
}
|
|
139
|
+
const PrismaClient = require(path.join(projectRoot, 'node_modules/.prisma/client')).PrismaClient;
|
|
140
|
+
const prisma = new PrismaClient({ log: ['info', 'warn', 'error'] });
|
|
141
|
+
extraDependencies.forEach((dep) => {
|
|
142
|
+
console.log(`Installing dependency ${dep}`);
|
|
143
|
+
run(`npm install ${dep}`);
|
|
144
|
+
});
|
|
145
|
+
if (compile) {
|
|
146
|
+
console.log('Compiling...');
|
|
147
|
+
run('npx tsc --init');
|
|
148
|
+
run('npx tsc --project tsconfig.json');
|
|
149
|
+
}
|
|
150
|
+
const policy = require(path.join(projectRoot, '.zenstack/policy')).default;
|
|
151
|
+
const modelMeta = require(path.join(projectRoot, '.zenstack/model-meta')).default;
|
|
152
|
+
const zodSchemas = require(path.join(projectRoot, '.zenstack/zod'));
|
|
153
|
+
return {
|
|
154
|
+
projectDir: projectRoot,
|
|
155
|
+
prisma,
|
|
156
|
+
withPolicy: (user) => (0, runtime_1.withPolicy)(prisma, { user }, policy, modelMeta),
|
|
157
|
+
withOmit: () => (0, runtime_1.withOmit)(prisma, modelMeta),
|
|
158
|
+
withPassword: () => (0, runtime_1.withPassword)(prisma, modelMeta),
|
|
159
|
+
withPresets: (user) => (0, runtime_1.withPresets)(prisma, { user }, policy, modelMeta),
|
|
160
|
+
zodSchemas,
|
|
161
|
+
};
|
|
116
162
|
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
const npmrcContent = fs.readFileSync(path.join(__dirname, '.npmrc.template'), { encoding: 'utf-8' });
|
|
121
|
-
fs.writeFileSync(path.join(projectRoot, '.npmrc'), npmrcContent.replaceAll('<root>', root));
|
|
122
|
-
console.log('Workdir:', projectRoot);
|
|
123
|
-
process.chdir(projectRoot);
|
|
124
|
-
schema = schema.replaceAll('$projectRoot', projectRoot);
|
|
125
|
-
const content = addPrelude ? `${MODEL_PRELUDE}\n${schema}` : schema;
|
|
126
|
-
fs.writeFileSync('schema.zmodel', content);
|
|
127
|
-
run('npm install');
|
|
128
|
-
run('npx zenstack generate --no-dependency-check', { NODE_PATH: './node_modules' });
|
|
129
|
-
if (pushDb) {
|
|
130
|
-
run('npx prisma db push');
|
|
163
|
+
catch (err) {
|
|
164
|
+
fs.rmSync(projectRoot, { recursive: true, force: true });
|
|
165
|
+
throw err;
|
|
131
166
|
}
|
|
132
|
-
const PrismaClient = require(path.join(projectRoot, 'node_modules/.prisma/client')).PrismaClient;
|
|
133
|
-
const prisma = new PrismaClient({ log: ['info', 'warn', 'error'] });
|
|
134
|
-
extraDependencies.forEach((dep) => {
|
|
135
|
-
console.log(`Installing dependency ${dep}`);
|
|
136
|
-
run(`npm install ${dep}`);
|
|
137
|
-
});
|
|
138
|
-
if (compile) {
|
|
139
|
-
console.log('Compiling...');
|
|
140
|
-
run('npx tsc --init');
|
|
141
|
-
run('npx tsc --project tsconfig.json');
|
|
142
|
-
}
|
|
143
|
-
const policy = require(path.join(projectRoot, '.zenstack/policy')).default;
|
|
144
|
-
const modelMeta = require(path.join(projectRoot, '.zenstack/model-meta')).default;
|
|
145
|
-
const zodSchemas = require(path.join(projectRoot, '.zenstack/zod')).default;
|
|
146
|
-
return {
|
|
147
|
-
projectDir: projectRoot,
|
|
148
|
-
prisma,
|
|
149
|
-
withPolicy: (user) => (0, runtime_1.withPolicy)(prisma, { user }, policy, modelMeta),
|
|
150
|
-
withOmit: () => (0, runtime_1.withOmit)(prisma, modelMeta),
|
|
151
|
-
withPassword: () => (0, runtime_1.withPassword)(prisma, modelMeta),
|
|
152
|
-
withPresets: (user) => (0, runtime_1.withPresets)(prisma, { user }, policy, modelMeta),
|
|
153
|
-
zodSchemas,
|
|
154
|
-
};
|
|
155
167
|
});
|
|
156
168
|
}
|
|
157
169
|
exports.loadSchema = loadSchema;
|
package/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,iDAA4C;AAE5C,iDAAwH;AACxH,iDAAyC;AACzC,uCAAyB;AACzB,2CAA6B;AAC7B,8CAAsB;AACtB,oDAAqD;AACrD,qEAAmD;AAgBnD,SAAgB,GAAG,CAAC,GAAW,EAAE,GAA4B,EAAE,GAAY;IACvE,IAAA,wBAAQ,EAAC,GAAG,EAAE;QACV,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,OAAO;QACjB,GAAG,gDAAO,OAAO,CAAC,GAAG,KAAE,YAAY,EAAE,GAAG,KAAK,GAAG,CAAE;QAClD,GAAG;KACN,CAAC,CAAC;AACP,CAAC;AAPD,kBAOC;AAED,SAAS,aAAa,CAAC,CAAS;IAC5B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAgB,gBAAgB,CAAC,KAAa;IAC1C,IAAI,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAChC,OAAO,IAAI,IAAI,IAAI,KAAK,GAAG,EAAE;QACzB,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC,EAAE;YACvD,OAAO,IAAI,CAAC;SACf;aAAM;YACH,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;SAC5C;KACJ;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAVD,4CAUC;AAED,SAAgB,0BAA0B,CAAC,KAAa;IACpD,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACrC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;AAC/D,CAAC;AAHD,gEAGC;AAED,MAAM,aAAa,GAAG
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
|