@cerebruminc/yates 1.0.4 → 1.1.0
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/.env +1 -0
- package/.prettierrc +8 -0
- package/CHANGELOG.md +15 -0
- package/coverage/clover.xml +105 -0
- package/coverage/coverage-final.json +2 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +116 -0
- package/coverage/lcov-report/index.ts.html +1186 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +196 -0
- package/coverage/lcov.info +182 -0
- package/dist/index.d.ts +20 -11
- package/dist/index.js +140 -77
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -65,16 +65,28 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
65
65
|
exports.__esModule = true;
|
|
66
66
|
exports.setup = exports.createRoles = exports.setupMiddleware = exports.createRoleName = exports.createAbilityName = void 0;
|
|
67
67
|
var client_1 = require("@prisma/client");
|
|
68
|
+
var difference_1 = __importDefault(require("lodash/difference"));
|
|
68
69
|
var flatMap_1 = __importDefault(require("lodash/flatMap"));
|
|
69
70
|
var map_1 = __importDefault(require("lodash/map"));
|
|
70
71
|
var toPairs_1 = __importDefault(require("lodash/toPairs"));
|
|
72
|
+
var VALID_OPERATIONS = ["SELECT", "UPDATE", "INSERT", "DELETE"];
|
|
73
|
+
/**
|
|
74
|
+
* This function is used to take a lock that is automatically released at the end of the current transaction.
|
|
75
|
+
* This is very convenient for ensuring we don't hit concurrency issues when running setup code.
|
|
76
|
+
*/
|
|
77
|
+
var takeLock = function (prisma) {
|
|
78
|
+
return prisma.$executeRawUnsafe("SELECT pg_advisory_xact_lock(2142616474639426746);");
|
|
79
|
+
};
|
|
80
|
+
// Sanitize a single string by ensuring the it has only lowercase alpha characters and underscores
|
|
81
|
+
var sanitizeSlug = function (slug) { return slug.toLowerCase().replace("-", "_").replace(/[^a-z0-9_]/gi, ""); };
|
|
71
82
|
var createAbilityName = function (model, ability) {
|
|
72
|
-
return "".concat(model, "_").concat(ability, "_role")
|
|
83
|
+
return sanitizeSlug("yates_ability_".concat(model, "_").concat(ability, "_role"));
|
|
73
84
|
};
|
|
74
85
|
exports.createAbilityName = createAbilityName;
|
|
75
86
|
var createRoleName = function (name) {
|
|
76
|
-
|
|
77
|
-
|
|
87
|
+
// Ensure the role name only has lowercase alpha characters and underscores
|
|
88
|
+
// This also doubles as a check against SQL injection
|
|
89
|
+
return sanitizeSlug("yates_role_".concat(name));
|
|
78
90
|
};
|
|
79
91
|
exports.createRoleName = createRoleName;
|
|
80
92
|
// This middleware is used to set the role and context for the current user so that RLS can be applied
|
|
@@ -85,10 +97,10 @@ var setupMiddleware = function (prisma, getContext) {
|
|
|
85
97
|
// get an infinite loop and can trigger client middlewares multiple times
|
|
86
98
|
var adminClient = new client_1.PrismaClient();
|
|
87
99
|
prisma.$use(function (params, next) { return __awaiter(void 0, void 0, void 0, function () {
|
|
88
|
-
var ctx, role, context, pgRole, modelName, txResults, queryResults, selectKeys, e_1;
|
|
89
|
-
var
|
|
90
|
-
return __generator(this, function (
|
|
91
|
-
switch (
|
|
100
|
+
var ctx, role, context, pgRole, modelName, _i, _a, k, txResults, queryResults, selectKeys, e_1;
|
|
101
|
+
var _b;
|
|
102
|
+
return __generator(this, function (_c) {
|
|
103
|
+
switch (_c.label) {
|
|
92
104
|
case 0:
|
|
93
105
|
if (!params.model) {
|
|
94
106
|
return [2 /*return*/, next(params)];
|
|
@@ -100,22 +112,27 @@ var setupMiddleware = function (prisma, getContext) {
|
|
|
100
112
|
}
|
|
101
113
|
role = ctx.role, context = ctx.context;
|
|
102
114
|
pgRole = (0, exports.createRoleName)(role);
|
|
103
|
-
// Check the role name only has lowercase alpha characters and underscores
|
|
104
|
-
// This also doubles as a check against SQL injection
|
|
105
|
-
if (pgRole.match(/[^a-z_]/)) {
|
|
106
|
-
throw new Error("Invalid role name.");
|
|
107
|
-
}
|
|
108
115
|
modelName = params.model.charAt(0).toLowerCase() + params.model.slice(1);
|
|
109
|
-
|
|
116
|
+
if (context) {
|
|
117
|
+
for (_i = 0, _a = Object.keys(context); _i < _a.length; _i++) {
|
|
118
|
+
k = _a[_i];
|
|
119
|
+
if (!k.match(/^[a-z_\.]+$/)) {
|
|
120
|
+
throw new Error("Context variable \"".concat(k, "\" contains invalid characters. Context variables must only contain lowercase letters, numbers, periods and underscores."));
|
|
121
|
+
}
|
|
122
|
+
if (typeof context[k] !== "number" && typeof context[k] !== "string") {
|
|
123
|
+
throw new Error("Context variable \"".concat(k, "\" must be a string or number. Got ").concat(typeof context[k]));
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
_c.label = 1;
|
|
110
128
|
case 1:
|
|
111
|
-
|
|
129
|
+
_c.trys.push([1, 3, , 4]);
|
|
112
130
|
return [4 /*yield*/, adminClient.$transaction(__spreadArray(__spreadArray([
|
|
113
131
|
// Switch to the user role, We can't use a prepared statement here, due to limitations in PG not allowing prepared statements to be used in SET ROLE
|
|
114
132
|
adminClient.$queryRawUnsafe("SET ROLE ".concat(pgRole))
|
|
115
133
|
], (0, toPairs_1["default"])(context).map(function (_a) {
|
|
116
134
|
var key = _a[0], value = _a[1];
|
|
117
|
-
|
|
118
|
-
return adminClient.$queryRaw(templateObject_1 || (templateObject_1 = __makeTemplateObject(["SELECT set_config(", ", ", ", true);"], ["SELECT set_config(", ", ", ", true);"])), keySafe, value);
|
|
135
|
+
return adminClient.$queryRaw(templateObject_1 || (templateObject_1 = __makeTemplateObject(["SELECT set_config(", ", ", ", true);"], ["SELECT set_config(", ", ", ", true);"])), key, value);
|
|
119
136
|
}), true), [
|
|
120
137
|
// Now call original function
|
|
121
138
|
// Assumptions:
|
|
@@ -126,7 +143,7 @@ var setupMiddleware = function (prisma, getContext) {
|
|
|
126
143
|
adminClient.$queryRawUnsafe("SET ROLE none"),
|
|
127
144
|
], false))];
|
|
128
145
|
case 2:
|
|
129
|
-
txResults =
|
|
146
|
+
txResults = _c.sent();
|
|
130
147
|
queryResults = txResults[txResults.length - 2];
|
|
131
148
|
// This heuristic is used to determine if this is a query for a related entity, and if so, unwraps the results.
|
|
132
149
|
// This mimics the "native" prisma behaviour, where if you query for a related entity, it will return the related entity (or entities) directly, rather than an object with the related entity as a property.
|
|
@@ -142,9 +159,9 @@ var setupMiddleware = function (prisma, getContext) {
|
|
|
142
159
|
}
|
|
143
160
|
return [2 /*return*/, queryResults];
|
|
144
161
|
case 3:
|
|
145
|
-
e_1 =
|
|
162
|
+
e_1 = _c.sent();
|
|
146
163
|
// Normalize RLS errors to make them a bit more readable.
|
|
147
|
-
if ((
|
|
164
|
+
if ((_b = e_1.message) === null || _b === void 0 ? void 0 : _b.includes("new row violates row-level security policy for table")) {
|
|
148
165
|
throw new Error("You do not have permission to perform this action.");
|
|
149
166
|
}
|
|
150
167
|
throw e_1;
|
|
@@ -192,12 +209,19 @@ var setRLS = function (prisma, table, roleName, operation, expression) { return
|
|
|
192
209
|
var createRoles = function (_a) {
|
|
193
210
|
var prisma = _a.prisma, customAbilities = _a.customAbilities, getRoles = _a.getRoles;
|
|
194
211
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
195
|
-
var abilities, models, _i, models_1, model, ability, roles, _b, _c, _d, _e, model, table, _f, _g, _h, _j, slug, ability, roleName, _k, _l, _m, _o, key
|
|
196
|
-
|
|
197
|
-
|
|
212
|
+
var abilities, models, diff, _i, models_1, model, ability, operation, roles, _b, _c, _d, _e, model, table, _f, _g, _h, _j, slug, ability, roleName, _loop_1, _k, _l, _m, _o, key;
|
|
213
|
+
var _p;
|
|
214
|
+
return __generator(this, function (_q) {
|
|
215
|
+
switch (_q.label) {
|
|
198
216
|
case 0:
|
|
199
217
|
abilities = {};
|
|
200
218
|
models = prisma._baseDmmf.datamodel.models.map(function (m) { return m.name; });
|
|
219
|
+
if (customAbilities) {
|
|
220
|
+
diff = (0, difference_1["default"])(Object.keys(customAbilities), models);
|
|
221
|
+
if (diff.length) {
|
|
222
|
+
throw new Error("Invalid models in custom abilities: ".concat(diff.join(", ")));
|
|
223
|
+
}
|
|
224
|
+
}
|
|
201
225
|
for (_i = 0, models_1 = models; _i < models_1.length; _i++) {
|
|
202
226
|
model = models_1[_i];
|
|
203
227
|
abilities[model] = {
|
|
@@ -232,7 +256,10 @@ var createRoles = function (_a) {
|
|
|
232
256
|
};
|
|
233
257
|
if (customAbilities === null || customAbilities === void 0 ? void 0 : customAbilities[model]) {
|
|
234
258
|
for (ability in customAbilities[model]) {
|
|
235
|
-
|
|
259
|
+
operation = (_p = customAbilities[model][ability]) === null || _p === void 0 ? void 0 : _p.operation;
|
|
260
|
+
if (!operation)
|
|
261
|
+
continue;
|
|
262
|
+
abilities[model][ability] = __assign(__assign({}, customAbilities[model][ability]), { operation: operation, model: model, slug: ability });
|
|
236
263
|
}
|
|
237
264
|
}
|
|
238
265
|
}
|
|
@@ -242,39 +269,49 @@ var createRoles = function (_a) {
|
|
|
242
269
|
for (_d in _b)
|
|
243
270
|
_c.push(_d);
|
|
244
271
|
_e = 0;
|
|
245
|
-
|
|
272
|
+
_q.label = 1;
|
|
246
273
|
case 1:
|
|
247
274
|
if (!(_e < _c.length)) return [3 /*break*/, 8];
|
|
248
275
|
_d = _c[_e];
|
|
249
276
|
if (!(_d in _b)) return [3 /*break*/, 7];
|
|
250
277
|
model = _d;
|
|
251
278
|
table = model;
|
|
252
|
-
return [4 /*yield*/, prisma.$
|
|
279
|
+
return [4 /*yield*/, prisma.$transaction([
|
|
280
|
+
takeLock(prisma),
|
|
281
|
+
prisma.$queryRawUnsafe("ALTER table \"".concat(table, "\" enable row level security;")),
|
|
282
|
+
])];
|
|
253
283
|
case 2:
|
|
254
|
-
|
|
284
|
+
_q.sent();
|
|
255
285
|
_f = abilities[model];
|
|
256
286
|
_g = [];
|
|
257
287
|
for (_h in _f)
|
|
258
288
|
_g.push(_h);
|
|
259
289
|
_j = 0;
|
|
260
|
-
|
|
290
|
+
_q.label = 3;
|
|
261
291
|
case 3:
|
|
262
292
|
if (!(_j < _g.length)) return [3 /*break*/, 7];
|
|
263
293
|
_h = _g[_j];
|
|
264
294
|
if (!(_h in _f)) return [3 /*break*/, 6];
|
|
265
295
|
slug = _h;
|
|
266
296
|
ability = abilities[model][slug];
|
|
297
|
+
if (!VALID_OPERATIONS.includes(ability.operation)) {
|
|
298
|
+
throw new Error("Invalid operation: ".concat(ability.operation));
|
|
299
|
+
}
|
|
267
300
|
roleName = (0, exports.createAbilityName)(model, slug);
|
|
268
301
|
// Check if role already exists
|
|
269
|
-
return [4 /*yield*/, prisma.$
|
|
302
|
+
return [4 /*yield*/, prisma.$transaction([
|
|
303
|
+
takeLock(prisma),
|
|
304
|
+
prisma.$queryRawUnsafe("\n\t\t\t\t\tdo\n\t\t\t\t\t$$\n\t\t\t\t\tbegin\n\t\t\t\t\tif not exists (select * from pg_catalog.pg_roles where rolname = '".concat(roleName, "') then \n\t\t\t\t\t\tcreate role ").concat(roleName, ";\n\t\t\t\t\tend if;\n\t\t\t\t\tend\n\t\t\t\t\t$$\n\t\t\t\t\t;\n\t\t\t\t")),
|
|
305
|
+
prisma.$queryRawUnsafe("\n\t\t\t\t\tGRANT ".concat(ability.operation, " ON \"").concat(table, "\" TO ").concat(roleName, ";\n\t\t\t\t")),
|
|
306
|
+
])];
|
|
270
307
|
case 4:
|
|
271
308
|
// Check if role already exists
|
|
272
|
-
|
|
309
|
+
_q.sent();
|
|
273
310
|
if (!ability.expression) return [3 /*break*/, 6];
|
|
274
311
|
return [4 /*yield*/, setRLS(prisma, table, roleName, ability.operation, ability.expression)];
|
|
275
312
|
case 5:
|
|
276
|
-
|
|
277
|
-
|
|
313
|
+
_q.sent();
|
|
314
|
+
_q.label = 6;
|
|
278
315
|
case 6:
|
|
279
316
|
_j++;
|
|
280
317
|
return [3 /*break*/, 3];
|
|
@@ -282,70 +319,96 @@ var createRoles = function (_a) {
|
|
|
282
319
|
_e++;
|
|
283
320
|
return [3 /*break*/, 1];
|
|
284
321
|
case 8:
|
|
322
|
+
_loop_1 = function (key) {
|
|
323
|
+
var role, wildCardAbilities, roleAbilities, rlsRoles, userRoles, oldRoles;
|
|
324
|
+
return __generator(this, function (_r) {
|
|
325
|
+
switch (_r.label) {
|
|
326
|
+
case 0:
|
|
327
|
+
role = (0, exports.createRoleName)(key);
|
|
328
|
+
return [4 /*yield*/, prisma.$executeRawUnsafe("\n\t\t\tdo\n\t\t\t$$\n\t\t\tbegin\n\t\t\tif not exists (select * from pg_catalog.pg_roles where rolname = '".concat(role, "') then \n\t\t\t\tcreate role ").concat(role, ";\n\t\t\tend if;\n\t\t\tend\n\t\t\t$$\n\t\t\t;\n\t\t"))];
|
|
329
|
+
case 1:
|
|
330
|
+
_r.sent();
|
|
331
|
+
wildCardAbilities = (0, flatMap_1["default"])(abilities, function (model, modelName) {
|
|
332
|
+
return (0, map_1["default"])(model, function (_params, slug) {
|
|
333
|
+
return (0, exports.createAbilityName)(modelName, slug);
|
|
334
|
+
});
|
|
335
|
+
});
|
|
336
|
+
roleAbilities = roles[key];
|
|
337
|
+
rlsRoles = roleAbilities === "*"
|
|
338
|
+
? wildCardAbilities
|
|
339
|
+
: roleAbilities.map(function (ability) { return (0, exports.createAbilityName)(ability.model, ability.slug); });
|
|
340
|
+
// Note: We need to GRANT all on schema public so that we can resolve relation queries with prisma, as they will sometimes use a join table.
|
|
341
|
+
// This is not ideal, but because we are using RLS, it's not a security risk. Any table with RLS also needs a corresponding policy for the role to have access.
|
|
342
|
+
return [4 /*yield*/, prisma.$transaction([
|
|
343
|
+
takeLock(prisma),
|
|
344
|
+
prisma.$executeRawUnsafe("GRANT ALL ON ALL TABLES IN SCHEMA public TO ".concat(role, ";")),
|
|
345
|
+
prisma.$executeRawUnsafe("\n\t\t\t\tGRANT ALL ON ALL SEQUENCES IN SCHEMA public TO ".concat(role, ";\n\t\t\t")),
|
|
346
|
+
prisma.$executeRawUnsafe("\n\t\t\t\tGRANT ALL ON SCHEMA public TO ".concat(role, ";\n\t\t\t")),
|
|
347
|
+
prisma.$queryRawUnsafe("GRANT ".concat(rlsRoles.join(", "), " TO ").concat(role)),
|
|
348
|
+
])];
|
|
349
|
+
case 2:
|
|
350
|
+
// Note: We need to GRANT all on schema public so that we can resolve relation queries with prisma, as they will sometimes use a join table.
|
|
351
|
+
// This is not ideal, but because we are using RLS, it's not a security risk. Any table with RLS also needs a corresponding policy for the role to have access.
|
|
352
|
+
_r.sent();
|
|
353
|
+
return [4 /*yield*/, prisma.$queryRawUnsafe("\n\t\t\tWITH RECURSIVE cte AS (\n\t\t\t\tSELECT oid FROM pg_roles where rolname = '".concat(role, "'\n\t\t\t\tUNION ALL\n\t\t\t\tSELECT m.roleid\n\t\t\t\tFROM cte\n\t\t\t\tJOIN pg_auth_members m ON m.member = cte.oid\n\t\t\t\t)\n\t\t\tSELECT oid, oid::regrole::text AS rolename FROM cte where oid::regrole::text != '").concat(role, "'; \n\t "))];
|
|
354
|
+
case 3:
|
|
355
|
+
userRoles = _r.sent();
|
|
356
|
+
oldRoles = userRoles.filter(function (_a) {
|
|
357
|
+
var rolename = _a.rolename;
|
|
358
|
+
return !rlsRoles.includes(rolename);
|
|
359
|
+
}).map(function (_a) {
|
|
360
|
+
var rolename = _a.rolename;
|
|
361
|
+
return rolename;
|
|
362
|
+
});
|
|
363
|
+
if (!oldRoles.length) return [3 /*break*/, 5];
|
|
364
|
+
// Now revoke old roles from the user role
|
|
365
|
+
return [4 /*yield*/, prisma.$executeRawUnsafe("REVOKE ".concat(oldRoles.join(", "), " FROM ").concat(role))];
|
|
366
|
+
case 4:
|
|
367
|
+
// Now revoke old roles from the user role
|
|
368
|
+
_r.sent();
|
|
369
|
+
_r.label = 5;
|
|
370
|
+
case 5: return [2 /*return*/];
|
|
371
|
+
}
|
|
372
|
+
});
|
|
373
|
+
};
|
|
285
374
|
_k = roles;
|
|
286
375
|
_l = [];
|
|
287
376
|
for (_m in _k)
|
|
288
377
|
_l.push(_m);
|
|
289
378
|
_o = 0;
|
|
290
|
-
|
|
379
|
+
_q.label = 9;
|
|
291
380
|
case 9:
|
|
292
|
-
if (!(_o < _l.length)) return [3 /*break*/,
|
|
381
|
+
if (!(_o < _l.length)) return [3 /*break*/, 12];
|
|
293
382
|
_m = _l[_o];
|
|
294
|
-
if (!(_m in _k)) return [3 /*break*/,
|
|
383
|
+
if (!(_m in _k)) return [3 /*break*/, 11];
|
|
295
384
|
key = _m;
|
|
296
|
-
|
|
297
|
-
return [4 /*yield*/, prisma.$queryRawUnsafe("\n\t\tdo\n\t\t$$\n\t\tbegin\n\t\tif not exists (select * from pg_catalog.pg_roles where rolname = '".concat(role, "') then \n\t\t\tcreate role ").concat(role, ";\n\t\tend if;\n\t\tend\n\t\t$$\n\t\t;\n\t"))];
|
|
385
|
+
return [5 /*yield**/, _loop_1(key)];
|
|
298
386
|
case 10:
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
// This is not ideal, but because we are using RLS, it's not a security risk. Any table with RLS also needs a corresponding policy for the role to have access.
|
|
302
|
-
return [4 /*yield*/, prisma.$queryRawUnsafe("\n\t\tGRANT ALL ON ALL TABLES IN SCHEMA public TO ".concat(role, ";\n\t"))];
|
|
387
|
+
_q.sent();
|
|
388
|
+
_q.label = 11;
|
|
303
389
|
case 11:
|
|
304
|
-
// Note: We need to GRANT all on schema public so that we can resolve relation queries with prisma, as they will sometimes use a join table.
|
|
305
|
-
// This is not ideal, but because we are using RLS, it's not a security risk. Any table with RLS also needs a corresponding policy for the role to have access.
|
|
306
|
-
_p.sent();
|
|
307
|
-
return [4 /*yield*/, prisma.$queryRawUnsafe("\n\t\tGRANT ALL ON ALL SEQUENCES IN SCHEMA public TO ".concat(role, ";\n\t"))];
|
|
308
|
-
case 12:
|
|
309
|
-
_p.sent();
|
|
310
|
-
return [4 /*yield*/, prisma.$queryRawUnsafe("\n\t\tGRANT ALL ON SCHEMA public TO ".concat(role, ";\n\t"))];
|
|
311
|
-
case 13:
|
|
312
|
-
_p.sent();
|
|
313
|
-
wildCardAbilities = (0, flatMap_1["default"])(abilities, function (model, modelName) {
|
|
314
|
-
return (0, map_1["default"])(model, function (params, slug) {
|
|
315
|
-
return (0, exports.createAbilityName)(modelName, slug);
|
|
316
|
-
});
|
|
317
|
-
});
|
|
318
|
-
roleAbilities = roles[key];
|
|
319
|
-
rlsRoles = roleAbilities === "*"
|
|
320
|
-
? wildCardAbilities
|
|
321
|
-
: roleAbilities.map(function (ability) { return (0, exports.createAbilityName)(ability.model, ability.slug); });
|
|
322
|
-
return [4 /*yield*/, prisma.$queryRawUnsafe("GRANT ".concat(rlsRoles.join(", "), " TO ").concat(role))];
|
|
323
|
-
case 14:
|
|
324
|
-
_p.sent();
|
|
325
|
-
_p.label = 15;
|
|
326
|
-
case 15:
|
|
327
390
|
_o++;
|
|
328
391
|
return [3 /*break*/, 9];
|
|
329
|
-
case
|
|
392
|
+
case 12: return [2 /*return*/];
|
|
330
393
|
}
|
|
331
394
|
});
|
|
332
395
|
});
|
|
333
396
|
};
|
|
334
397
|
exports.createRoles = createRoles;
|
|
335
|
-
var setup = function (
|
|
336
|
-
var prisma
|
|
337
|
-
return
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
}
|
|
398
|
+
var setup = function (params) { return __awaiter(void 0, void 0, void 0, function () {
|
|
399
|
+
var prisma, customAbilities, getRoles, getContext;
|
|
400
|
+
return __generator(this, function (_a) {
|
|
401
|
+
switch (_a.label) {
|
|
402
|
+
case 0:
|
|
403
|
+
prisma = params.prisma, customAbilities = params.customAbilities, getRoles = params.getRoles, getContext = params.getContext;
|
|
404
|
+
return [4 /*yield*/, (0, exports.createRoles)({ prisma: prisma, customAbilities: customAbilities, getRoles: getRoles })];
|
|
405
|
+
case 1:
|
|
406
|
+
_a.sent();
|
|
407
|
+
(0, exports.setupMiddleware)(prisma, getContext);
|
|
408
|
+
return [2 /*return*/];
|
|
409
|
+
}
|
|
347
410
|
});
|
|
348
|
-
};
|
|
411
|
+
}); };
|
|
349
412
|
exports.setup = setup;
|
|
350
413
|
var templateObject_1;
|
|
351
414
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAsD;AACtD,2DAAqC;AACrC,mDAA6B;AAC7B,2DAAqC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|