@cerebruminc/yates 3.8.1 → 4.0.0-beta.dangerous.17be6b9
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/CHANGELOG.md +11 -0
- package/dist/index.d.ts +43 -2
- package/dist/index.js +407 -203
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [4.0.0](https://github.com/cerebruminc/yates/compare/v3.8.1...v4.0.0) (2026-02-25)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### ⚠ BREAKING CHANGES
|
|
7
|
+
|
|
8
|
+
* refactor permissions to query filters
|
|
9
|
+
|
|
10
|
+
### Features
|
|
11
|
+
|
|
12
|
+
* refactor permissions to query filters ([06d1007](https://github.com/cerebruminc/yates/commit/06d10079c460e15a787516d9301daf28ce776c20))
|
|
13
|
+
|
|
3
14
|
## [3.8.1](https://github.com/cerebruminc/yates/compare/v3.8.0...v3.8.1) (2025-11-15)
|
|
4
15
|
|
|
5
16
|
|
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,23 @@ import { Expression, RuntimeDataModel } from "./expressions";
|
|
|
3
3
|
declare const VALID_OPERATIONS: readonly ["SELECT", "UPDATE", "INSERT", "DELETE"];
|
|
4
4
|
type Operation = (typeof VALID_OPERATIONS)[number];
|
|
5
5
|
export type Models = Prisma.ModelName;
|
|
6
|
+
type PrismaExecutor = Pick<PrismaClient, "$executeRawUnsafe" | "$queryRawUnsafe" | "$queryRaw">;
|
|
7
|
+
export interface SetupManifestAbility {
|
|
8
|
+
expression: string | null;
|
|
9
|
+
model: string;
|
|
10
|
+
operation: Operation;
|
|
11
|
+
policyName: string;
|
|
12
|
+
slug: string;
|
|
13
|
+
}
|
|
14
|
+
export interface SetupManifestRole {
|
|
15
|
+
grants: string[] | "*";
|
|
16
|
+
roleName: string;
|
|
17
|
+
}
|
|
18
|
+
export interface SetupManifest {
|
|
19
|
+
abilities: SetupManifestAbility[];
|
|
20
|
+
databaseScope: string;
|
|
21
|
+
roles: SetupManifestRole[];
|
|
22
|
+
}
|
|
6
23
|
interface ClientOptions {
|
|
7
24
|
/** The maximum amount of time Yates will wait to acquire a transaction from the database. The default value is 30 seconds. */
|
|
8
25
|
txMaxWait?: number;
|
|
@@ -76,9 +93,25 @@ export declare class Yates {
|
|
|
76
93
|
createDatabaseScope: (databaseName: string) => string;
|
|
77
94
|
getDatabaseScope: () => string;
|
|
78
95
|
ensureDatabaseScope: () => Promise<string>;
|
|
79
|
-
setupAbilityTable: () => Promise<[number, number, number]>;
|
|
96
|
+
setupAbilityTable: () => Promise<[number, number, number, number]>;
|
|
80
97
|
createAbilityName: (model: string, ability: string) => string;
|
|
81
98
|
createRoleName: (name: string) => string;
|
|
99
|
+
quoteIdentifier: (identifier: string) => string;
|
|
100
|
+
enableRowLevelSecurityIfNeeded: (prisma: Pick<PrismaClient, "$executeRawUnsafe" | "$queryRawUnsafe">, table: string) => Promise<void>;
|
|
101
|
+
createSetupManifestHash: (manifest: SetupManifest) => string;
|
|
102
|
+
createSetupManifest: (abilities: Partial<DefaultAbilities>, roles: {
|
|
103
|
+
[role: string]: "*" | AllAbilities<string, Prisma.ModelName>[];
|
|
104
|
+
}) => {
|
|
105
|
+
abilities: SetupManifestAbility[];
|
|
106
|
+
databaseScope: string;
|
|
107
|
+
roles: {
|
|
108
|
+
grants: string[] | "*";
|
|
109
|
+
roleName: string;
|
|
110
|
+
}[];
|
|
111
|
+
};
|
|
112
|
+
getSetupManifestId: () => string;
|
|
113
|
+
getStoredSetupManifestHash: (manifestId: string, prisma?: PrismaExecutor) => Promise<string>;
|
|
114
|
+
upsertSetupManifestHash: (manifestId: string, manifestHash: string, prisma?: PrismaExecutor) => Prisma.PrismaPromise<number>;
|
|
82
115
|
getDefaultAbilities: (models: Models[]) => Partial<DefaultAbilities<string, Prisma.ModelName>>;
|
|
83
116
|
getBatchId(query: any): string | undefined;
|
|
84
117
|
buildKeysString(obj: object): string;
|
|
@@ -93,13 +126,21 @@ export declare class Yates {
|
|
|
93
126
|
query: {};
|
|
94
127
|
client: {};
|
|
95
128
|
}>;
|
|
96
|
-
setRLS: <ContextKeys extends string, YModel extends Prisma.ModelName>(prisma:
|
|
129
|
+
setRLS: <ContextKeys extends string, YModel extends Prisma.ModelName>(prisma: PrismaExecutor, table: string, roleName: string, slug: string, ability: Ability<ContextKeys, YModel>) => Promise<void>;
|
|
97
130
|
createRoles: <ContextKeys extends string, YModels extends Prisma.ModelName, K extends CustomAbilities<string, Prisma.ModelName> = CustomAbilities<string, Prisma.ModelName>, T = DefaultAbilities<ContextKeys, YModels> & K>({ customAbilities, getRoles, }: {
|
|
98
131
|
customAbilities?: Partial<K> | undefined;
|
|
99
132
|
getRoles: (abilities: T) => {
|
|
100
133
|
[role: string]: "*" | AllAbilities<ContextKeys, YModels>[];
|
|
101
134
|
};
|
|
102
135
|
}) => Promise<void>;
|
|
136
|
+
reconcileRoles: <ContextKeys extends string, YModels extends Prisma.ModelName>({ abilities, defaultAbilities, prisma, roles, }: {
|
|
137
|
+
abilities: Partial<DefaultAbilities>;
|
|
138
|
+
defaultAbilities: Partial<DefaultAbilities>;
|
|
139
|
+
prisma: PrismaExecutor;
|
|
140
|
+
roles: {
|
|
141
|
+
[role: string]: "*" | AllAbilities<ContextKeys, YModels>[];
|
|
142
|
+
};
|
|
143
|
+
}) => Promise<void>;
|
|
103
144
|
inspectDBRoles: (role: string) => Promise<{
|
|
104
145
|
tablename: string;
|
|
105
146
|
policyname: string;
|
package/dist/index.js
CHANGED
|
@@ -73,17 +73,6 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
73
73
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
74
74
|
}
|
|
75
75
|
};
|
|
76
|
-
var __values = (this && this.__values) || function(o) {
|
|
77
|
-
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
78
|
-
if (m) return m.call(o);
|
|
79
|
-
if (o && typeof o.length === "number") return {
|
|
80
|
-
next: function () {
|
|
81
|
-
if (o && i >= o.length) o = void 0;
|
|
82
|
-
return { value: o && o[i++], done: !o };
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
86
|
-
};
|
|
87
76
|
var __read = (this && this.__read) || function (o, n) {
|
|
88
77
|
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
89
78
|
if (!m) return o;
|
|
@@ -109,6 +98,17 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
109
98
|
}
|
|
110
99
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
111
100
|
};
|
|
101
|
+
var __values = (this && this.__values) || function(o) {
|
|
102
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
103
|
+
if (m) return m.call(o);
|
|
104
|
+
if (o && typeof o.length === "number") return {
|
|
105
|
+
next: function () {
|
|
106
|
+
if (o && i >= o.length) o = void 0;
|
|
107
|
+
return { value: o && o[i++], done: !o };
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
111
|
+
};
|
|
112
112
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
113
113
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
114
114
|
};
|
|
@@ -123,6 +123,7 @@ var map_1 = __importDefault(require("lodash/map"));
|
|
|
123
123
|
var toPairs_1 = __importDefault(require("lodash/toPairs"));
|
|
124
124
|
var expressions_1 = require("./expressions");
|
|
125
125
|
var VALID_OPERATIONS = ["SELECT", "UPDATE", "INSERT", "DELETE"];
|
|
126
|
+
var SETUP_MANIFEST_VERSION = "1";
|
|
126
127
|
var debug = (0, debug_1.default)("yates");
|
|
127
128
|
/**
|
|
128
129
|
* This function is used to take a lock that is automatically released at the end of the current transaction.
|
|
@@ -228,6 +229,7 @@ var Yates = /** @class */ (function () {
|
|
|
228
229
|
takeLock(_this.prisma),
|
|
229
230
|
_this.prisma.$executeRawUnsafe("\n\t\t\t\tCREATE SCHEMA IF NOT EXISTS _yates;\n\t\t\t"),
|
|
230
231
|
_this.prisma.$executeRawUnsafe("\n\t\t\t\tCREATE TABLE IF NOT EXISTS _yates._yates_abilities (\n\t\t\t\t\tid SERIAL PRIMARY KEY,\n\t\t\t\t\tability_model TEXT NOT NULL,\n\t\t\t\t\tability_name TEXT NOT NULL,\n\t\t\t\t\tability_policy_name TEXT NOT NULL UNIQUE,\n\t\t\t\t\tability_description TEXT NOT NULL,\n\t\t\t\t\tability_operation TEXT NOT NULL,\n\t\t\t\t\tability_expression TEXT NOT NULL,\n\t\t\t\t\tcreated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n\t\t\t\t\tupdated_at TIMESTAMP\n\t\t\t\t);\n\t\t\t"),
|
|
232
|
+
_this.prisma.$executeRawUnsafe("\n\t\t\t\tCREATE TABLE IF NOT EXISTS _yates._yates_schema_syncs (\n\t\t\t\t\tid TEXT PRIMARY KEY,\n\t\t\t\t\tmanifest_hash TEXT NOT NULL,\n\t\t\t\t\tyates_version TEXT,\n\t\t\t\t\tapp_name TEXT,\n\t\t\t\t\tapplied_at TIMESTAMPTZ NOT NULL DEFAULT now()\n\t\t\t\t);\n\t\t\t"),
|
|
231
233
|
]);
|
|
232
234
|
};
|
|
233
235
|
this.createAbilityName = function (model, ability) {
|
|
@@ -238,8 +240,132 @@ var Yates = /** @class */ (function () {
|
|
|
238
240
|
var scope = _this.getDatabaseScope();
|
|
239
241
|
return (0, exports.sanitizeSlug)(hashWithPrefix("yates_role_", "".concat(scope, "_").concat(name)));
|
|
240
242
|
};
|
|
243
|
+
this.quoteIdentifier = function (identifier) {
|
|
244
|
+
return "\"".concat(identifier.replace(/"/g, '""'), "\"");
|
|
245
|
+
};
|
|
246
|
+
this.enableRowLevelSecurityIfNeeded = function (prisma, table) { return __awaiter(_this, void 0, void 0, function () {
|
|
247
|
+
var rlsState;
|
|
248
|
+
var _a;
|
|
249
|
+
return __generator(this, function (_b) {
|
|
250
|
+
switch (_b.label) {
|
|
251
|
+
case 0: return [4 /*yield*/, prisma.$queryRawUnsafe("\n\t\t\t\tSELECT c.relrowsecurity\n\t\t\t\tFROM pg_catalog.pg_class c\n\t\t\t\tJOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace\n\t\t\t\tWHERE n.nspname = 'public'\n\t\t\t\tAND c.relname = $1\n\t\t\t\tAND c.relkind IN ('r', 'p')\n\t\t\t\tLIMIT 1;\n\t\t\t", table)];
|
|
252
|
+
case 1:
|
|
253
|
+
rlsState = _b.sent();
|
|
254
|
+
if ((_a = rlsState[0]) === null || _a === void 0 ? void 0 : _a.relrowsecurity) {
|
|
255
|
+
debug("Row level security already enabled for", table);
|
|
256
|
+
return [2 /*return*/];
|
|
257
|
+
}
|
|
258
|
+
debug("Enabling row level security for", table);
|
|
259
|
+
return [4 /*yield*/, prisma.$executeRawUnsafe("ALTER table ".concat(this.quoteIdentifier(table), " enable row level security;"))];
|
|
260
|
+
case 2:
|
|
261
|
+
_b.sent();
|
|
262
|
+
return [2 /*return*/];
|
|
263
|
+
}
|
|
264
|
+
});
|
|
265
|
+
}); };
|
|
266
|
+
this.createSetupManifestHash = function (manifest) {
|
|
267
|
+
var normalizedManifest = {
|
|
268
|
+
abilities: __spreadArray([], __read(manifest.abilities), false).sort(function (a, b) {
|
|
269
|
+
return "".concat(a.model, ":").concat(a.slug, ":").concat(a.operation, ":").concat(a.policyName).localeCompare("".concat(b.model, ":").concat(b.slug, ":").concat(b.operation, ":").concat(b.policyName));
|
|
270
|
+
}),
|
|
271
|
+
databaseScope: manifest.databaseScope,
|
|
272
|
+
roles: __spreadArray([], __read(manifest.roles), false).map(function (role) { return (__assign(__assign({}, role), { grants: Array.isArray(role.grants)
|
|
273
|
+
? __spreadArray([], __read(role.grants), false).sort()
|
|
274
|
+
: role.grants })); })
|
|
275
|
+
.sort(function (a, b) { return a.roleName.localeCompare(b.roleName); }),
|
|
276
|
+
version: SETUP_MANIFEST_VERSION,
|
|
277
|
+
};
|
|
278
|
+
var hash = crypto.createHash("sha256");
|
|
279
|
+
hash.update(JSON.stringify(normalizedManifest));
|
|
280
|
+
return hash.digest("hex");
|
|
281
|
+
};
|
|
282
|
+
this.createSetupManifest = function (abilities, roles) {
|
|
283
|
+
var e_1, _a, e_2, _b;
|
|
284
|
+
var _c, _d;
|
|
285
|
+
var manifestAbilities = [];
|
|
286
|
+
try {
|
|
287
|
+
for (var _e = __values(Object.keys(abilities).sort()), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
288
|
+
var model = _f.value;
|
|
289
|
+
var modelAbilities = abilities[model];
|
|
290
|
+
if (!modelAbilities)
|
|
291
|
+
continue;
|
|
292
|
+
try {
|
|
293
|
+
for (var _g = (e_2 = void 0, __values(Object.keys(modelAbilities).sort())), _h = _g.next(); !_h.done; _h = _g.next()) {
|
|
294
|
+
var slug = _h.value;
|
|
295
|
+
var ability = modelAbilities[slug];
|
|
296
|
+
if (!ability)
|
|
297
|
+
continue;
|
|
298
|
+
manifestAbilities.push({
|
|
299
|
+
expression: (_d = (_c = ability.expression) === null || _c === void 0 ? void 0 : _c.toString()) !== null && _d !== void 0 ? _d : null,
|
|
300
|
+
model: model,
|
|
301
|
+
operation: ability.operation,
|
|
302
|
+
policyName: _this.createAbilityName(model, slug),
|
|
303
|
+
slug: slug,
|
|
304
|
+
});
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
308
|
+
finally {
|
|
309
|
+
try {
|
|
310
|
+
if (_h && !_h.done && (_b = _g.return)) _b.call(_g);
|
|
311
|
+
}
|
|
312
|
+
finally { if (e_2) throw e_2.error; }
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
317
|
+
finally {
|
|
318
|
+
try {
|
|
319
|
+
if (_f && !_f.done && (_a = _e.return)) _a.call(_e);
|
|
320
|
+
}
|
|
321
|
+
finally { if (e_1) throw e_1.error; }
|
|
322
|
+
}
|
|
323
|
+
var manifestRoles = Object.keys(roles)
|
|
324
|
+
.sort()
|
|
325
|
+
.map(function (roleName) {
|
|
326
|
+
var roleAbilities = roles[roleName];
|
|
327
|
+
var grants = Array.isArray(roleAbilities)
|
|
328
|
+
? roleAbilities.map(function (ability) {
|
|
329
|
+
if (!ability.model || !ability.slug) {
|
|
330
|
+
throw new Error("Ability for role ".concat(roleName, " is missing model or slug"));
|
|
331
|
+
}
|
|
332
|
+
return _this.createAbilityName(ability.model, ability.slug);
|
|
333
|
+
})
|
|
334
|
+
: "*";
|
|
335
|
+
return { grants: grants, roleName: roleName };
|
|
336
|
+
});
|
|
337
|
+
return {
|
|
338
|
+
abilities: manifestAbilities,
|
|
339
|
+
databaseScope: _this.getDatabaseScope(),
|
|
340
|
+
roles: manifestRoles,
|
|
341
|
+
};
|
|
342
|
+
};
|
|
343
|
+
this.getSetupManifestId = function () { return "".concat(_this.getDatabaseScope(), ":public"); };
|
|
344
|
+
this.getStoredSetupManifestHash = function (manifestId_1) {
|
|
345
|
+
var args_1 = [];
|
|
346
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
347
|
+
args_1[_i - 1] = arguments[_i];
|
|
348
|
+
}
|
|
349
|
+
return __awaiter(_this, __spreadArray([manifestId_1], __read(args_1), false), void 0, function (manifestId, prisma) {
|
|
350
|
+
var rows;
|
|
351
|
+
var _a, _b;
|
|
352
|
+
if (prisma === void 0) { prisma = this.prisma; }
|
|
353
|
+
return __generator(this, function (_c) {
|
|
354
|
+
switch (_c.label) {
|
|
355
|
+
case 0: return [4 /*yield*/, prisma.$queryRawUnsafe("\n\t\t\t\tSELECT manifest_hash\n\t\t\t\tFROM _yates._yates_schema_syncs\n\t\t\t\tWHERE id = $1\n\t\t\t\tLIMIT 1;\n\t\t\t", manifestId)];
|
|
356
|
+
case 1:
|
|
357
|
+
rows = _c.sent();
|
|
358
|
+
return [2 /*return*/, (_b = (_a = rows[0]) === null || _a === void 0 ? void 0 : _a.manifest_hash) !== null && _b !== void 0 ? _b : null];
|
|
359
|
+
}
|
|
360
|
+
});
|
|
361
|
+
});
|
|
362
|
+
};
|
|
363
|
+
this.upsertSetupManifestHash = function (manifestId, manifestHash, prisma) {
|
|
364
|
+
if (prisma === void 0) { prisma = _this.prisma; }
|
|
365
|
+
return prisma.$executeRawUnsafe("\n\t\t\t\tINSERT INTO _yates._yates_schema_syncs (id, manifest_hash, yates_version, app_name, applied_at)\n\t\t\t\tVALUES ($1, $2, $3, $4, now())\n\t\t\t\tON CONFLICT (id) DO UPDATE\n\t\t\t\tSET manifest_hash = EXCLUDED.manifest_hash,\n\t\t\t\t\tyates_version = EXCLUDED.yates_version,\n\t\t\t\t\tapp_name = EXCLUDED.app_name,\n\t\t\t\t\tapplied_at = now();\n\t\t\t", manifestId, manifestHash, SETUP_MANIFEST_VERSION, "yates");
|
|
366
|
+
};
|
|
241
367
|
this.getDefaultAbilities = function (models) {
|
|
242
|
-
var
|
|
368
|
+
var e_3, _a;
|
|
243
369
|
var abilities = {};
|
|
244
370
|
try {
|
|
245
371
|
for (var models_1 = __values(models), models_1_1 = models_1.next(); !models_1_1.done; models_1_1 = models_1.next()) {
|
|
@@ -276,12 +402,12 @@ var Yates = /** @class */ (function () {
|
|
|
276
402
|
};
|
|
277
403
|
}
|
|
278
404
|
}
|
|
279
|
-
catch (
|
|
405
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
280
406
|
finally {
|
|
281
407
|
try {
|
|
282
408
|
if (models_1_1 && !models_1_1.done && (_a = models_1.return)) _a.call(models_1);
|
|
283
409
|
}
|
|
284
|
-
finally { if (
|
|
410
|
+
finally { if (e_3) throw e_3.error; }
|
|
285
411
|
}
|
|
286
412
|
return abilities;
|
|
287
413
|
};
|
|
@@ -314,7 +440,7 @@ var Yates = /** @class */ (function () {
|
|
|
314
440
|
// This function is called once per tick, and processes all the batches that have been created during that tick.
|
|
315
441
|
// Each batch represents a unique role + context combination, and contains all the requests that need to be executed with that role + context.
|
|
316
442
|
var dispatchBatches = function () {
|
|
317
|
-
var
|
|
443
|
+
var e_4, _a;
|
|
318
444
|
var _loop_1 = function (key, batch) {
|
|
319
445
|
delete batches[key];
|
|
320
446
|
// Because batch transactions inside a prisma client query extension can run out of order if used with async middleware,
|
|
@@ -323,8 +449,8 @@ var Yates = /** @class */ (function () {
|
|
|
323
449
|
// See https://github.com/prisma/prisma/issues/18276
|
|
324
450
|
prisma
|
|
325
451
|
.$transaction(function (tx) { return __awaiter(_this, void 0, void 0, function () {
|
|
326
|
-
var _a, _b, _c, key_1, value,
|
|
327
|
-
var
|
|
452
|
+
var _a, _b, _c, key_1, value, e_5_1, txId, results;
|
|
453
|
+
var e_5, _d;
|
|
328
454
|
return __generator(this, function (_e) {
|
|
329
455
|
switch (_e.label) {
|
|
330
456
|
case 0:
|
|
@@ -350,14 +476,14 @@ var Yates = /** @class */ (function () {
|
|
|
350
476
|
return [3 /*break*/, 3];
|
|
351
477
|
case 6: return [3 /*break*/, 9];
|
|
352
478
|
case 7:
|
|
353
|
-
|
|
354
|
-
|
|
479
|
+
e_5_1 = _e.sent();
|
|
480
|
+
e_5 = { error: e_5_1 };
|
|
355
481
|
return [3 /*break*/, 9];
|
|
356
482
|
case 8:
|
|
357
483
|
try {
|
|
358
484
|
if (_b && !_b.done && (_d = _a.return)) _d.call(_a);
|
|
359
485
|
}
|
|
360
|
-
finally { if (
|
|
486
|
+
finally { if (e_5) throw e_5.error; }
|
|
361
487
|
return [7 /*endfinally*/];
|
|
362
488
|
case 9:
|
|
363
489
|
txId = tx[Symbol.for("prisma.client.transaction.id")];
|
|
@@ -382,19 +508,19 @@ var Yates = /** @class */ (function () {
|
|
|
382
508
|
});
|
|
383
509
|
})
|
|
384
510
|
.catch(function (e) {
|
|
385
|
-
var
|
|
511
|
+
var e_6, _a;
|
|
386
512
|
try {
|
|
387
|
-
for (var _b = (
|
|
513
|
+
for (var _b = (e_6 = void 0, __values(batch.requests)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
388
514
|
var request = _c.value;
|
|
389
515
|
request.reject(e);
|
|
390
516
|
}
|
|
391
517
|
}
|
|
392
|
-
catch (
|
|
518
|
+
catch (e_6_1) { e_6 = { error: e_6_1 }; }
|
|
393
519
|
finally {
|
|
394
520
|
try {
|
|
395
521
|
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
396
522
|
}
|
|
397
|
-
finally { if (
|
|
523
|
+
finally { if (e_6) throw e_6.error; }
|
|
398
524
|
}
|
|
399
525
|
delete batches[key];
|
|
400
526
|
});
|
|
@@ -405,12 +531,12 @@ var Yates = /** @class */ (function () {
|
|
|
405
531
|
_loop_1(key, batch);
|
|
406
532
|
}
|
|
407
533
|
}
|
|
408
|
-
catch (
|
|
534
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
409
535
|
finally {
|
|
410
536
|
try {
|
|
411
537
|
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
412
538
|
}
|
|
413
|
-
finally { if (
|
|
539
|
+
finally { if (e_4) throw e_4.error; }
|
|
414
540
|
}
|
|
415
541
|
};
|
|
416
542
|
var createRoleName = _this.createRoleName.bind(_this);
|
|
@@ -421,7 +547,7 @@ var Yates = /** @class */ (function () {
|
|
|
421
547
|
$allOperations: function (params) {
|
|
422
548
|
return __awaiter(this, void 0, void 0, function () {
|
|
423
549
|
var model, args, query, operation, ctx, role, context, pgRole, _a, _b, k, _c, _d, v, txId, hash, __internalParams;
|
|
424
|
-
var
|
|
550
|
+
var e_7, _e, e_8, _f;
|
|
425
551
|
return __generator(this, function (_g) {
|
|
426
552
|
model = params.model, args = params.args, query = params.query, operation = params.operation;
|
|
427
553
|
if (!model) {
|
|
@@ -450,31 +576,31 @@ var Yates = /** @class */ (function () {
|
|
|
450
576
|
}
|
|
451
577
|
if (Array.isArray(context[k])) {
|
|
452
578
|
try {
|
|
453
|
-
for (_c = (
|
|
579
|
+
for (_c = (e_8 = void 0, __values(context[k])), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
454
580
|
v = _d.value;
|
|
455
581
|
if (typeof v !== "string") {
|
|
456
582
|
throw new Error("Context variable \"".concat(k, "\" must be an array of strings. Got ").concat(typeof v));
|
|
457
583
|
}
|
|
458
584
|
}
|
|
459
585
|
}
|
|
460
|
-
catch (
|
|
586
|
+
catch (e_8_1) { e_8 = { error: e_8_1 }; }
|
|
461
587
|
finally {
|
|
462
588
|
try {
|
|
463
589
|
if (_d && !_d.done && (_f = _c.return)) _f.call(_c);
|
|
464
590
|
}
|
|
465
|
-
finally { if (
|
|
591
|
+
finally { if (e_8) throw e_8.error; }
|
|
466
592
|
}
|
|
467
593
|
// Cast to a JSON string so that it can be used in RLS expressions
|
|
468
594
|
context[k] = JSON.stringify(context[k]);
|
|
469
595
|
}
|
|
470
596
|
}
|
|
471
597
|
}
|
|
472
|
-
catch (
|
|
598
|
+
catch (e_7_1) { e_7 = { error: e_7_1 }; }
|
|
473
599
|
finally {
|
|
474
600
|
try {
|
|
475
601
|
if (_b && !_b.done && (_e = _a.return)) _e.call(_a);
|
|
476
602
|
}
|
|
477
|
-
finally { if (
|
|
603
|
+
finally { if (e_7) throw e_7.error; }
|
|
478
604
|
}
|
|
479
605
|
}
|
|
480
606
|
txId = hashWithPrefix("yates_tx_", JSON.stringify(ctx));
|
|
@@ -522,8 +648,7 @@ var Yates = /** @class */ (function () {
|
|
|
522
648
|
return client;
|
|
523
649
|
};
|
|
524
650
|
this.setRLS = function (prisma, table, roleName, slug, ability) { return __awaiter(_this, void 0, void 0, function () {
|
|
525
|
-
var operation, rawExpression, description;
|
|
526
|
-
var _this = this;
|
|
651
|
+
var operation, rawExpression, description, policyName, existingAbilities, existingAbility, shouldUpdateAbilityTable, expression, expression;
|
|
527
652
|
return __generator(this, function (_a) {
|
|
528
653
|
switch (_a.label) {
|
|
529
654
|
case 0:
|
|
@@ -531,94 +656,77 @@ var Yates = /** @class */ (function () {
|
|
|
531
656
|
if (!rawExpression) {
|
|
532
657
|
throw new Error("Expression must be defined for RLS abilities");
|
|
533
658
|
}
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
return [4 /*yield*/, prisma.$transaction(function (tx) { return __awaiter(_this, void 0, void 0, function () {
|
|
537
|
-
var policyName, existingAbilities, existingAbility, shouldUpdateAbilityTable, expression, expression;
|
|
538
|
-
return __generator(this, function (_a) {
|
|
539
|
-
switch (_a.label) {
|
|
540
|
-
case 0: return [4 /*yield*/, takeLock(tx)];
|
|
541
|
-
case 1:
|
|
542
|
-
_a.sent();
|
|
543
|
-
policyName = roleName;
|
|
544
|
-
return [4 /*yield*/, tx.$queryRaw(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n\t\t\t\tselect * from _yates._yates_abilities where ability_model = ", " and ability_policy_name = ", "\n\t\t\t"], ["\n\t\t\t\tselect * from _yates._yates_abilities where ability_model = ", " and ability_policy_name = ", "\n\t\t\t"])), table, policyName)];
|
|
545
|
-
case 2:
|
|
546
|
-
existingAbilities = _a.sent();
|
|
547
|
-
existingAbility = existingAbilities[0];
|
|
548
|
-
shouldUpdateAbilityTable = false;
|
|
549
|
-
if (!!existingAbility) return [3 /*break*/, 8];
|
|
550
|
-
debug("Creating RLS policy for", roleName, "on", table, "for", operation);
|
|
551
|
-
return [4 /*yield*/, (0, expressions_1.expressionToSQL)(rawExpression, table)];
|
|
552
|
-
case 3:
|
|
553
|
-
expression = _a.sent();
|
|
554
|
-
if (!(operation === "INSERT")) return [3 /*break*/, 5];
|
|
555
|
-
return [4 /*yield*/, tx.$queryRawUnsafe("\n\t\t\t\t\tCREATE POLICY ".concat(policyName, " ON \"public\".\"").concat(table, "\" FOR ").concat(operation, " TO ").concat(roleName, " WITH CHECK (").concat(expression, ");\n\t\t\t\t"))];
|
|
556
|
-
case 4:
|
|
557
|
-
_a.sent();
|
|
558
|
-
return [3 /*break*/, 7];
|
|
559
|
-
case 5: return [4 /*yield*/, tx.$queryRawUnsafe("\n\t\t\t\t\tCREATE POLICY ".concat(policyName, " ON \"public\".\"").concat(table, "\" FOR ").concat(operation, " TO ").concat(roleName, " USING (").concat(expression, ");\n\t\t\t\t"))];
|
|
560
|
-
case 6:
|
|
561
|
-
_a.sent();
|
|
562
|
-
_a.label = 7;
|
|
563
|
-
case 7:
|
|
564
|
-
shouldUpdateAbilityTable = true;
|
|
565
|
-
return [3 /*break*/, 14];
|
|
566
|
-
case 8:
|
|
567
|
-
if (!(existingAbility.ability_expression !== rawExpression.toString())) return [3 /*break*/, 14];
|
|
568
|
-
debug("Updating RLS policy for", roleName, "on", table, "for", operation);
|
|
569
|
-
return [4 /*yield*/, (0, expressions_1.expressionToSQL)(rawExpression, table)];
|
|
570
|
-
case 9:
|
|
571
|
-
expression = _a.sent();
|
|
572
|
-
if (!(operation === "INSERT")) return [3 /*break*/, 11];
|
|
573
|
-
return [4 /*yield*/, tx.$queryRawUnsafe("\n\t\t\t\t\tALTER POLICY ".concat(policyName, " ON \"public\".\"").concat(table, "\" TO ").concat(roleName, " WITH CHECK (").concat(expression, ");\n\t\t\t\t"))];
|
|
574
|
-
case 10:
|
|
575
|
-
_a.sent();
|
|
576
|
-
return [3 /*break*/, 13];
|
|
577
|
-
case 11: return [4 /*yield*/, tx.$queryRawUnsafe("\n\t\t\t\t\tALTER POLICY ".concat(policyName, " ON \"public\".\"").concat(table, "\" TO ").concat(roleName, " USING (").concat(expression, ");\n\t\t\t\t"))];
|
|
578
|
-
case 12:
|
|
579
|
-
_a.sent();
|
|
580
|
-
_a.label = 13;
|
|
581
|
-
case 13:
|
|
582
|
-
shouldUpdateAbilityTable = true;
|
|
583
|
-
_a.label = 14;
|
|
584
|
-
case 14:
|
|
585
|
-
if (!shouldUpdateAbilityTable) return [3 /*break*/, 16];
|
|
586
|
-
return [4 /*yield*/, upsertAbility(tx, {
|
|
587
|
-
ability_model: table,
|
|
588
|
-
ability_name: slug,
|
|
589
|
-
ability_policy_name: policyName,
|
|
590
|
-
ability_description: description !== null && description !== void 0 ? description : "",
|
|
591
|
-
ability_operation: operation,
|
|
592
|
-
// We store the string representation of the expression so that
|
|
593
|
-
// we can compare it later without having to recompute the SQL
|
|
594
|
-
ability_expression: rawExpression.toString(),
|
|
595
|
-
})];
|
|
596
|
-
case 15:
|
|
597
|
-
_a.sent();
|
|
598
|
-
_a.label = 16;
|
|
599
|
-
case 16: return [2 /*return*/];
|
|
600
|
-
}
|
|
601
|
-
});
|
|
602
|
-
}); })];
|
|
659
|
+
policyName = roleName;
|
|
660
|
+
return [4 /*yield*/, prisma.$queryRaw(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n\t\t\t\tselect * from _yates._yates_abilities where ability_model = ", " and ability_policy_name = ", "\n\t\t\t"], ["\n\t\t\t\tselect * from _yates._yates_abilities where ability_model = ", " and ability_policy_name = ", "\n\t\t\t"])), table, policyName)];
|
|
603
661
|
case 1:
|
|
604
|
-
|
|
605
|
-
|
|
662
|
+
existingAbilities = _a.sent();
|
|
663
|
+
existingAbility = existingAbilities[0];
|
|
664
|
+
shouldUpdateAbilityTable = false;
|
|
665
|
+
if (!!existingAbility) return [3 /*break*/, 7];
|
|
666
|
+
debug("Creating RLS policy for", roleName, "on", table, "for", operation);
|
|
667
|
+
return [4 /*yield*/, (0, expressions_1.expressionToSQL)(rawExpression, table)];
|
|
668
|
+
case 2:
|
|
669
|
+
expression = _a.sent();
|
|
670
|
+
if (!(operation === "INSERT")) return [3 /*break*/, 4];
|
|
671
|
+
return [4 /*yield*/, prisma.$queryRawUnsafe("\n\t\t\t\t\tCREATE POLICY ".concat(policyName, " ON \"public\".\"").concat(table, "\" FOR ").concat(operation, " TO ").concat(roleName, " WITH CHECK (").concat(expression, ");\n\t\t\t\t"))];
|
|
672
|
+
case 3:
|
|
606
673
|
_a.sent();
|
|
607
|
-
return [
|
|
674
|
+
return [3 /*break*/, 6];
|
|
675
|
+
case 4: return [4 /*yield*/, prisma.$queryRawUnsafe("\n\t\t\t\t\tCREATE POLICY ".concat(policyName, " ON \"public\".\"").concat(table, "\" FOR ").concat(operation, " TO ").concat(roleName, " USING (").concat(expression, ");\n\t\t\t\t"))];
|
|
676
|
+
case 5:
|
|
677
|
+
_a.sent();
|
|
678
|
+
_a.label = 6;
|
|
679
|
+
case 6:
|
|
680
|
+
shouldUpdateAbilityTable = true;
|
|
681
|
+
return [3 /*break*/, 13];
|
|
682
|
+
case 7:
|
|
683
|
+
if (!(existingAbility.ability_expression !== rawExpression.toString())) return [3 /*break*/, 13];
|
|
684
|
+
debug("Updating RLS policy for", roleName, "on", table, "for", operation);
|
|
685
|
+
return [4 /*yield*/, (0, expressions_1.expressionToSQL)(rawExpression, table)];
|
|
686
|
+
case 8:
|
|
687
|
+
expression = _a.sent();
|
|
688
|
+
if (!(operation === "INSERT")) return [3 /*break*/, 10];
|
|
689
|
+
return [4 /*yield*/, prisma.$queryRawUnsafe("\n\t\t\t\t\tALTER POLICY ".concat(policyName, " ON \"public\".\"").concat(table, "\" TO ").concat(roleName, " WITH CHECK (").concat(expression, ");\n\t\t\t\t"))];
|
|
690
|
+
case 9:
|
|
691
|
+
_a.sent();
|
|
692
|
+
return [3 /*break*/, 12];
|
|
693
|
+
case 10: return [4 /*yield*/, prisma.$queryRawUnsafe("\n\t\t\t\t\tALTER POLICY ".concat(policyName, " ON \"public\".\"").concat(table, "\" TO ").concat(roleName, " USING (").concat(expression, ");\n\t\t\t\t"))];
|
|
694
|
+
case 11:
|
|
695
|
+
_a.sent();
|
|
696
|
+
_a.label = 12;
|
|
697
|
+
case 12:
|
|
698
|
+
shouldUpdateAbilityTable = true;
|
|
699
|
+
_a.label = 13;
|
|
700
|
+
case 13:
|
|
701
|
+
if (!shouldUpdateAbilityTable) return [3 /*break*/, 15];
|
|
702
|
+
return [4 /*yield*/, upsertAbility(prisma, {
|
|
703
|
+
ability_model: table,
|
|
704
|
+
ability_name: slug,
|
|
705
|
+
ability_policy_name: policyName,
|
|
706
|
+
ability_description: description !== null && description !== void 0 ? description : "",
|
|
707
|
+
ability_operation: operation,
|
|
708
|
+
// We store the string representation of the expression so that
|
|
709
|
+
// we can compare it later without having to recompute the SQL
|
|
710
|
+
ability_expression: rawExpression.toString(),
|
|
711
|
+
})];
|
|
712
|
+
case 14:
|
|
713
|
+
_a.sent();
|
|
714
|
+
_a.label = 15;
|
|
715
|
+
case 15: return [2 /*return*/];
|
|
608
716
|
}
|
|
609
717
|
});
|
|
610
718
|
}); };
|
|
611
719
|
this.createRoles = function (_a) { return __awaiter(_this, [_a], void 0, function (_b) {
|
|
612
|
-
var runtimeDataModel, models, diff, defaultAbilities, abilities, models_2, models_2_1, model, ability, operation, roles,
|
|
613
|
-
var
|
|
720
|
+
var runtimeDataModel, models, diff, defaultAbilities, abilities, models_2, models_2_1, model, ability, operation, roles, setupManifest, setupManifestHash, setupManifestId;
|
|
721
|
+
var e_9, _c;
|
|
614
722
|
var _this = this;
|
|
615
|
-
var
|
|
723
|
+
var _d;
|
|
616
724
|
var customAbilities = _b.customAbilities, getRoles = _b.getRoles;
|
|
617
|
-
return __generator(this, function (
|
|
618
|
-
switch (
|
|
725
|
+
return __generator(this, function (_e) {
|
|
726
|
+
switch (_e.label) {
|
|
619
727
|
case 0: return [4 /*yield*/, this.ensureDatabaseScope()];
|
|
620
728
|
case 1:
|
|
621
|
-
|
|
729
|
+
_e.sent();
|
|
622
730
|
runtimeDataModel = this.inspectRunTimeDataModel();
|
|
623
731
|
models = Object.keys(runtimeDataModel.models).map(function (m) { return runtimeDataModel.models[m].dbName || m; });
|
|
624
732
|
if (customAbilities) {
|
|
@@ -636,7 +744,7 @@ var Yates = /** @class */ (function () {
|
|
|
636
744
|
for (ability in customAbilities[model]) {
|
|
637
745
|
operation =
|
|
638
746
|
// biome-ignore lint/style/noNonNullAssertion: TODO fix this
|
|
639
|
-
(
|
|
747
|
+
(_d = customAbilities[model][ability]) === null || _d === void 0 ? void 0 : _d.operation;
|
|
640
748
|
if (!operation)
|
|
641
749
|
continue;
|
|
642
750
|
// biome-ignore lint/style/noNonNullAssertion: TODO fix this
|
|
@@ -645,26 +753,80 @@ var Yates = /** @class */ (function () {
|
|
|
645
753
|
}
|
|
646
754
|
}
|
|
647
755
|
}
|
|
648
|
-
catch (
|
|
756
|
+
catch (e_9_1) { e_9 = { error: e_9_1 }; }
|
|
649
757
|
finally {
|
|
650
758
|
try {
|
|
651
|
-
if (models_2_1 && !models_2_1.done && (
|
|
759
|
+
if (models_2_1 && !models_2_1.done && (_c = models_2.return)) _c.call(models_2);
|
|
652
760
|
}
|
|
653
|
-
finally { if (
|
|
761
|
+
finally { if (e_9) throw e_9.error; }
|
|
654
762
|
}
|
|
655
763
|
roles = getRoles(abilities);
|
|
656
|
-
|
|
764
|
+
setupManifest = this.createSetupManifest(abilities, roles);
|
|
765
|
+
setupManifestHash = this.createSetupManifestHash(setupManifest);
|
|
766
|
+
setupManifestId = this.getSetupManifestId();
|
|
767
|
+
return [4 /*yield*/, this.getStoredSetupManifestHash(setupManifestId)];
|
|
657
768
|
case 2:
|
|
658
|
-
|
|
659
|
-
|
|
769
|
+
if ((_e.sent()) ===
|
|
770
|
+
setupManifestHash) {
|
|
771
|
+
debug("Yates setup manifest unchanged; skipping role reconciliation");
|
|
772
|
+
return [2 /*return*/];
|
|
773
|
+
}
|
|
774
|
+
return [4 /*yield*/, this.prisma.$transaction(function (tx) { return __awaiter(_this, void 0, void 0, function () {
|
|
775
|
+
var prisma;
|
|
776
|
+
return __generator(this, function (_a) {
|
|
777
|
+
switch (_a.label) {
|
|
778
|
+
case 0:
|
|
779
|
+
prisma = tx;
|
|
780
|
+
return [4 /*yield*/, takeLock(prisma)];
|
|
781
|
+
case 1:
|
|
782
|
+
_a.sent();
|
|
783
|
+
return [4 /*yield*/, this.getStoredSetupManifestHash(setupManifestId, prisma)];
|
|
784
|
+
case 2:
|
|
785
|
+
if ((_a.sent()) ===
|
|
786
|
+
setupManifestHash) {
|
|
787
|
+
debug("Yates setup manifest unchanged after acquiring lock; skipping role reconciliation");
|
|
788
|
+
return [2 /*return*/];
|
|
789
|
+
}
|
|
790
|
+
return [4 /*yield*/, this.reconcileRoles({
|
|
791
|
+
abilities: abilities,
|
|
792
|
+
defaultAbilities: defaultAbilities,
|
|
793
|
+
prisma: prisma,
|
|
794
|
+
roles: roles,
|
|
795
|
+
})];
|
|
796
|
+
case 3:
|
|
797
|
+
_a.sent();
|
|
798
|
+
return [4 /*yield*/, this.upsertSetupManifestHash(setupManifestId, setupManifestHash, prisma)];
|
|
799
|
+
case 4:
|
|
800
|
+
_a.sent();
|
|
801
|
+
return [2 /*return*/];
|
|
802
|
+
}
|
|
803
|
+
});
|
|
804
|
+
}); })];
|
|
660
805
|
case 3:
|
|
661
|
-
|
|
662
|
-
|
|
806
|
+
_e.sent();
|
|
807
|
+
return [2 /*return*/];
|
|
808
|
+
}
|
|
809
|
+
});
|
|
810
|
+
}); };
|
|
811
|
+
this.reconcileRoles = function (_a) { return __awaiter(_this, [_a], void 0, function (_b) {
|
|
812
|
+
var pgRoles, existingAbilities, pgPolicies, migratedAbilities, migratedAbilities_1, migratedAbilities_1_1, migratedAbility, e_10_1, _c, _d, _e, _i, model, table, _loop_2, this_1, _f, _g, _h, _j, slug, _loop_3, this_2, _k, _l, _m, _o, key;
|
|
813
|
+
var e_10, _p;
|
|
814
|
+
var _this = this;
|
|
815
|
+
var abilities = _b.abilities, defaultAbilities = _b.defaultAbilities, prisma = _b.prisma, roles = _b.roles;
|
|
816
|
+
return __generator(this, function (_q) {
|
|
817
|
+
switch (_q.label) {
|
|
818
|
+
case 0: return [4 /*yield*/, prisma.$queryRawUnsafe("\n\t\t\tselect * from pg_catalog.pg_roles where rolname like 'yates%'\n\t\t")];
|
|
819
|
+
case 1:
|
|
820
|
+
pgRoles = _q.sent();
|
|
821
|
+
return [4 /*yield*/, prisma.$queryRawUnsafe("\n\t\t\tselect * from _yates._yates_abilities;\n\t\t")];
|
|
822
|
+
case 2:
|
|
823
|
+
existingAbilities = _q.sent();
|
|
824
|
+
if (!(existingAbilities.length === 0)) return [3 /*break*/, 12];
|
|
663
825
|
debug('No existing abilities found, importing from "pg_policies" table');
|
|
664
|
-
return [4 /*yield*/,
|
|
665
|
-
case
|
|
666
|
-
pgPolicies =
|
|
667
|
-
if (!pgPolicies.length) return [3 /*break*/,
|
|
826
|
+
return [4 /*yield*/, prisma.$queryRawUnsafe("\n\t\t\t\tselect * from pg_catalog.pg_policies where policyname like 'yates%'\n\t\t\t")];
|
|
827
|
+
case 3:
|
|
828
|
+
pgPolicies = _q.sent();
|
|
829
|
+
if (!pgPolicies.length) return [3 /*break*/, 12];
|
|
668
830
|
migratedAbilities = pgPolicies.map(function (policy) {
|
|
669
831
|
var _a, _b;
|
|
670
832
|
return ({
|
|
@@ -676,36 +838,55 @@ var Yates = /** @class */ (function () {
|
|
|
676
838
|
ability_expression: (_b = (_a = policy.qual) !== null && _a !== void 0 ? _a : policy.with_check) !== null && _b !== void 0 ? _b : "",
|
|
677
839
|
});
|
|
678
840
|
});
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
841
|
+
_q.label = 4;
|
|
842
|
+
case 4:
|
|
843
|
+
_q.trys.push([4, 9, 10, 11]);
|
|
844
|
+
migratedAbilities_1 = __values(migratedAbilities), migratedAbilities_1_1 = migratedAbilities_1.next();
|
|
845
|
+
_q.label = 5;
|
|
682
846
|
case 5:
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
847
|
+
if (!!migratedAbilities_1_1.done) return [3 /*break*/, 8];
|
|
848
|
+
migratedAbility = migratedAbilities_1_1.value;
|
|
849
|
+
return [4 /*yield*/, upsertAbility(prisma, migratedAbility)];
|
|
686
850
|
case 6:
|
|
851
|
+
_q.sent();
|
|
852
|
+
_q.label = 7;
|
|
853
|
+
case 7:
|
|
854
|
+
migratedAbilities_1_1 = migratedAbilities_1.next();
|
|
855
|
+
return [3 /*break*/, 5];
|
|
856
|
+
case 8: return [3 /*break*/, 11];
|
|
857
|
+
case 9:
|
|
858
|
+
e_10_1 = _q.sent();
|
|
859
|
+
e_10 = { error: e_10_1 };
|
|
860
|
+
return [3 /*break*/, 11];
|
|
861
|
+
case 10:
|
|
862
|
+
try {
|
|
863
|
+
if (migratedAbilities_1_1 && !migratedAbilities_1_1.done && (_p = migratedAbilities_1.return)) _p.call(migratedAbilities_1);
|
|
864
|
+
}
|
|
865
|
+
finally { if (e_10) throw e_10.error; }
|
|
866
|
+
return [7 /*endfinally*/];
|
|
867
|
+
case 11:
|
|
868
|
+
existingAbilities.push.apply(existingAbilities, __spreadArray([], __read(migratedAbilities), false));
|
|
869
|
+
_q.label = 12;
|
|
870
|
+
case 12:
|
|
687
871
|
_c = abilities;
|
|
688
872
|
_d = [];
|
|
689
873
|
for (_e in _c)
|
|
690
874
|
_d.push(_e);
|
|
691
875
|
_i = 0;
|
|
692
|
-
|
|
693
|
-
case
|
|
694
|
-
if (!(_i < _d.length)) return [3 /*break*/,
|
|
876
|
+
_q.label = 13;
|
|
877
|
+
case 13:
|
|
878
|
+
if (!(_i < _d.length)) return [3 /*break*/, 19];
|
|
695
879
|
_e = _d[_i];
|
|
696
|
-
if (!(_e in _c)) return [3 /*break*/,
|
|
880
|
+
if (!(_e in _c)) return [3 /*break*/, 18];
|
|
697
881
|
model = _e;
|
|
698
882
|
table = model;
|
|
699
|
-
return [4 /*yield*/, this.prisma
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
])];
|
|
703
|
-
case 8:
|
|
704
|
-
_r.sent();
|
|
883
|
+
return [4 /*yield*/, this.enableRowLevelSecurityIfNeeded(prisma, table)];
|
|
884
|
+
case 14:
|
|
885
|
+
_q.sent();
|
|
705
886
|
_loop_2 = function (slug) {
|
|
706
887
|
var ability, roleName;
|
|
707
|
-
return __generator(this, function (
|
|
708
|
-
switch (
|
|
888
|
+
return __generator(this, function (_r) {
|
|
889
|
+
switch (_r.label) {
|
|
709
890
|
case 0:
|
|
710
891
|
ability =
|
|
711
892
|
// biome-ignore lint/style/noNonNullAssertion: TODO fix this
|
|
@@ -716,22 +897,21 @@ var Yates = /** @class */ (function () {
|
|
|
716
897
|
roleName = this_1.createAbilityName(model, slug);
|
|
717
898
|
if (!pgRoles.find(function (role) { return role.rolname === roleName; })) return [3 /*break*/, 1];
|
|
718
899
|
debug("Role already exists", roleName, model, slug);
|
|
719
|
-
return [3 /*break*/,
|
|
720
|
-
case 1: return [4 /*yield*/,
|
|
721
|
-
takeLock(this_1.prisma),
|
|
722
|
-
this_1.prisma.$queryRawUnsafe("\n\t\t\t\t\t\tdo\n\t\t\t\t\t\t$$\n\t\t\t\t\t\tbegin\n\t\t\t\t\t\tif not exists (select * from pg_catalog.pg_roles where rolname = '".concat(roleName, "') then \n\t\t\t\t\t\t\tcreate role ").concat(roleName, ";\n\t\t\t\t\t\tend if;\n\t\t\t\t\t\tend\n\t\t\t\t\t\t$$\n\t\t\t\t\t\t;\n\t\t\t\t\t")),
|
|
723
|
-
this_1.prisma.$queryRawUnsafe("\n\t\t\t\t\t\tGRANT ".concat(ability.operation, " ON \"").concat(table, "\" TO ").concat(roleName, ";\n\t\t\t\t\t")),
|
|
724
|
-
])];
|
|
900
|
+
return [3 /*break*/, 4];
|
|
901
|
+
case 1: return [4 /*yield*/, prisma.$queryRawUnsafe("\n\t\t\t\t\t\tdo\n\t\t\t\t\t\t$$\n\t\t\t\t\t\tbegin\n\t\t\t\t\t\tif not exists (select * from pg_catalog.pg_roles where rolname = '".concat(roleName, "') then \n\t\t\t\t\t\t\tcreate role ").concat(roleName, ";\n\t\t\t\t\t\tend if;\n\t\t\t\t\t\tend\n\t\t\t\t\t\t$$\n\t\t\t\t\t\t;\n\t\t\t\t\t"))];
|
|
725
902
|
case 2:
|
|
726
|
-
|
|
727
|
-
|
|
903
|
+
_r.sent();
|
|
904
|
+
return [4 /*yield*/, prisma.$queryRawUnsafe("\n\t\t\t\t\t\tGRANT ".concat(ability.operation, " ON \"").concat(table, "\" TO ").concat(roleName, ";\n\t\t\t\t\t"))];
|
|
728
905
|
case 3:
|
|
729
|
-
|
|
730
|
-
|
|
906
|
+
_r.sent();
|
|
907
|
+
_r.label = 4;
|
|
731
908
|
case 4:
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
case 5:
|
|
909
|
+
if (!ability.expression) return [3 /*break*/, 6];
|
|
910
|
+
return [4 /*yield*/, this_1.setRLS(prisma, table, roleName, slug, ability)];
|
|
911
|
+
case 5:
|
|
912
|
+
_r.sent();
|
|
913
|
+
_r.label = 6;
|
|
914
|
+
case 6: return [2 /*return*/];
|
|
735
915
|
}
|
|
736
916
|
});
|
|
737
917
|
};
|
|
@@ -741,30 +921,31 @@ var Yates = /** @class */ (function () {
|
|
|
741
921
|
for (_h in _f)
|
|
742
922
|
_g.push(_h);
|
|
743
923
|
_j = 0;
|
|
744
|
-
|
|
745
|
-
case
|
|
746
|
-
if (!(_j < _g.length)) return [3 /*break*/,
|
|
924
|
+
_q.label = 15;
|
|
925
|
+
case 15:
|
|
926
|
+
if (!(_j < _g.length)) return [3 /*break*/, 18];
|
|
747
927
|
_h = _g[_j];
|
|
748
|
-
if (!(_h in _f)) return [3 /*break*/,
|
|
928
|
+
if (!(_h in _f)) return [3 /*break*/, 17];
|
|
749
929
|
slug = _h;
|
|
750
930
|
return [5 /*yield**/, _loop_2(slug)];
|
|
751
|
-
case
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
case
|
|
931
|
+
case 16:
|
|
932
|
+
_q.sent();
|
|
933
|
+
_q.label = 17;
|
|
934
|
+
case 17:
|
|
755
935
|
_j++;
|
|
756
|
-
return [3 /*break*/,
|
|
757
|
-
case
|
|
936
|
+
return [3 /*break*/, 15];
|
|
937
|
+
case 18:
|
|
758
938
|
_i++;
|
|
759
|
-
return [3 /*break*/,
|
|
760
|
-
case
|
|
939
|
+
return [3 /*break*/, 13];
|
|
940
|
+
case 19:
|
|
761
941
|
_loop_3 = function (key) {
|
|
762
|
-
var role, wildCardAbilities, roleAbilities, rlsRoles, userRoles, oldRoles, policies;
|
|
942
|
+
var role, wildCardAbilities, roleAbilities, rlsRoles, userRoles, oldRoles, policies, policies_1, policies_1_1, oldPolicy, e_11_1;
|
|
943
|
+
var e_11, _s;
|
|
763
944
|
return __generator(this, function (_t) {
|
|
764
945
|
switch (_t.label) {
|
|
765
946
|
case 0:
|
|
766
947
|
role = this_2.createRoleName(key);
|
|
767
|
-
return [4 /*yield*/,
|
|
948
|
+
return [4 /*yield*/, prisma.$executeRawUnsafe("\n\t\t\t\tdo\n\t\t\t\t$$\n\t\t\t\tbegin\n\t\t\t\tif not exists (select * from pg_catalog.pg_roles where rolname = '".concat(role, "') then \n\t\t\t\t\tcreate role ").concat(role, ";\n\t\t\t\tend if;\n\t\t\t\tend\n\t\t\t\t$$\n\t\t\t\t;\n\t\t\t"))];
|
|
768
949
|
case 1:
|
|
769
950
|
_t.sent();
|
|
770
951
|
wildCardAbilities = (0, flatMap_1.default)(defaultAbilities, function (model, modelName) {
|
|
@@ -782,19 +963,22 @@ var Yates = /** @class */ (function () {
|
|
|
782
963
|
debug("Setting up role", key, role, "with abilities", rlsRoles.join(", "));
|
|
783
964
|
// 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.
|
|
784
965
|
// 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.
|
|
785
|
-
return [4 /*yield*/,
|
|
786
|
-
takeLock(this_2.prisma),
|
|
787
|
-
this_2.prisma.$executeRawUnsafe("GRANT ALL ON ALL TABLES IN SCHEMA public TO ".concat(role, ";")),
|
|
788
|
-
this_2.prisma.$executeRawUnsafe("\n\t\t\t\t\tGRANT ALL ON ALL SEQUENCES IN SCHEMA public TO ".concat(role, ";\n\t\t\t\t")),
|
|
789
|
-
this_2.prisma.$executeRawUnsafe("\n\t\t\t\t\tGRANT ALL ON SCHEMA public TO ".concat(role, ";\n\t\t\t\t")),
|
|
790
|
-
this_2.prisma.$queryRawUnsafe("GRANT ".concat(rlsRoles.join(", "), " TO ").concat(role)),
|
|
791
|
-
])];
|
|
966
|
+
return [4 /*yield*/, prisma.$executeRawUnsafe("GRANT ALL ON ALL TABLES IN SCHEMA public TO ".concat(role, ";"))];
|
|
792
967
|
case 2:
|
|
793
968
|
// 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.
|
|
794
969
|
// 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.
|
|
795
970
|
_t.sent();
|
|
796
|
-
return [4 /*yield*/,
|
|
971
|
+
return [4 /*yield*/, prisma.$executeRawUnsafe("\n\t\t\t\t\tGRANT ALL ON ALL SEQUENCES IN SCHEMA public TO ".concat(role, ";\n\t\t\t\t"))];
|
|
797
972
|
case 3:
|
|
973
|
+
_t.sent();
|
|
974
|
+
return [4 /*yield*/, prisma.$executeRawUnsafe("\n\t\t\t\t\tGRANT ALL ON SCHEMA public TO ".concat(role, ";\n\t\t\t\t"))];
|
|
975
|
+
case 4:
|
|
976
|
+
_t.sent();
|
|
977
|
+
return [4 /*yield*/, prisma.$queryRawUnsafe("GRANT ".concat(rlsRoles.join(", "), " TO ").concat(role))];
|
|
978
|
+
case 5:
|
|
979
|
+
_t.sent();
|
|
980
|
+
return [4 /*yield*/, prisma.$queryRawUnsafe("\n\t\t\t\tWITH RECURSIVE cte AS (\n\t\t\t\t\tSELECT oid FROM pg_roles where rolname = '".concat(role, "'\n\t\t\t\t\tUNION ALL\n\t\t\t\t\tSELECT m.roleid\n\t\t\t\t\tFROM cte\n\t\t\t\t\tJOIN pg_auth_members m ON m.member = cte.oid\n\t\t\t\t\t)\n\t\t\t\tSELECT oid, oid::regrole::text AS rolename FROM cte where oid::regrole::text != '").concat(role, "'; \n\t\t"))];
|
|
981
|
+
case 6:
|
|
798
982
|
userRoles = _t.sent();
|
|
799
983
|
oldRoles = userRoles
|
|
800
984
|
.filter(function (_a) {
|
|
@@ -805,32 +989,52 @@ var Yates = /** @class */ (function () {
|
|
|
805
989
|
var rolename = _a.rolename;
|
|
806
990
|
return rolename;
|
|
807
991
|
});
|
|
808
|
-
if (!oldRoles.length) return [3 /*break*/,
|
|
992
|
+
if (!oldRoles.length) return [3 /*break*/, 18];
|
|
809
993
|
// Now revoke old roles from the user role
|
|
810
994
|
debug("Revoking old roles", key, role, oldRoles.join(", "));
|
|
811
|
-
return [4 /*yield*/,
|
|
812
|
-
case
|
|
995
|
+
return [4 /*yield*/, prisma.$executeRawUnsafe("REVOKE ".concat(oldRoles.join(", "), " FROM ").concat(role))];
|
|
996
|
+
case 7:
|
|
813
997
|
_t.sent();
|
|
814
|
-
return [4 /*yield*/,
|
|
998
|
+
return [4 /*yield*/, prisma.$queryRawUnsafe("SELECT * FROM pg_catalog.pg_policies WHERE policyname IN (".concat(oldRoles
|
|
815
999
|
.map(function (or) { return "'".concat(or, "'"); })
|
|
816
1000
|
.join(", "), ")"))];
|
|
817
|
-
case
|
|
1001
|
+
case 8:
|
|
818
1002
|
policies = _t.sent();
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
case
|
|
1003
|
+
_t.label = 9;
|
|
1004
|
+
case 9:
|
|
1005
|
+
_t.trys.push([9, 14, 15, 16]);
|
|
1006
|
+
policies_1 = (e_11 = void 0, __values(policies)), policies_1_1 = policies_1.next();
|
|
1007
|
+
_t.label = 10;
|
|
1008
|
+
case 10:
|
|
1009
|
+
if (!!policies_1_1.done) return [3 /*break*/, 13];
|
|
1010
|
+
oldPolicy = policies_1_1.value;
|
|
1011
|
+
return [4 /*yield*/, prisma.$executeRawUnsafe("DROP POLICY ".concat(oldPolicy.policyname, " ON \"").concat(oldPolicy.tablename, "\""))];
|
|
1012
|
+
case 11:
|
|
825
1013
|
_t.sent();
|
|
1014
|
+
_t.label = 12;
|
|
1015
|
+
case 12:
|
|
1016
|
+
policies_1_1 = policies_1.next();
|
|
1017
|
+
return [3 /*break*/, 10];
|
|
1018
|
+
case 13: return [3 /*break*/, 16];
|
|
1019
|
+
case 14:
|
|
1020
|
+
e_11_1 = _t.sent();
|
|
1021
|
+
e_11 = { error: e_11_1 };
|
|
1022
|
+
return [3 /*break*/, 16];
|
|
1023
|
+
case 15:
|
|
1024
|
+
try {
|
|
1025
|
+
if (policies_1_1 && !policies_1_1.done && (_s = policies_1.return)) _s.call(policies_1);
|
|
1026
|
+
}
|
|
1027
|
+
finally { if (e_11) throw e_11.error; }
|
|
1028
|
+
return [7 /*endfinally*/];
|
|
1029
|
+
case 16:
|
|
826
1030
|
debug("Revoked old rows from ability table", oldRoles.join(", "));
|
|
827
|
-
return [4 /*yield*/,
|
|
1031
|
+
return [4 /*yield*/, prisma.$executeRawUnsafe("DELETE FROM _yates._yates_abilities WHERE ability_policy_name IN (".concat(oldRoles
|
|
828
1032
|
.map(function (or) { return "'".concat(or, "'"); })
|
|
829
1033
|
.join(", "), ")"))];
|
|
830
|
-
case
|
|
1034
|
+
case 17:
|
|
831
1035
|
_t.sent();
|
|
832
|
-
_t.label =
|
|
833
|
-
case
|
|
1036
|
+
_t.label = 18;
|
|
1037
|
+
case 18: return [2 /*return*/];
|
|
834
1038
|
}
|
|
835
1039
|
});
|
|
836
1040
|
};
|
|
@@ -840,20 +1044,20 @@ var Yates = /** @class */ (function () {
|
|
|
840
1044
|
for (_m in _k)
|
|
841
1045
|
_l.push(_m);
|
|
842
1046
|
_o = 0;
|
|
843
|
-
|
|
844
|
-
case
|
|
845
|
-
if (!(_o < _l.length)) return [3 /*break*/,
|
|
1047
|
+
_q.label = 20;
|
|
1048
|
+
case 20:
|
|
1049
|
+
if (!(_o < _l.length)) return [3 /*break*/, 23];
|
|
846
1050
|
_m = _l[_o];
|
|
847
|
-
if (!(_m in _k)) return [3 /*break*/,
|
|
1051
|
+
if (!(_m in _k)) return [3 /*break*/, 22];
|
|
848
1052
|
key = _m;
|
|
849
1053
|
return [5 /*yield**/, _loop_3(key)];
|
|
850
|
-
case
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
case
|
|
1054
|
+
case 21:
|
|
1055
|
+
_q.sent();
|
|
1056
|
+
_q.label = 22;
|
|
1057
|
+
case 22:
|
|
854
1058
|
_o++;
|
|
855
|
-
return [3 /*break*/,
|
|
856
|
-
case
|
|
1059
|
+
return [3 /*break*/, 20];
|
|
1060
|
+
case 23: return [2 /*return*/];
|
|
857
1061
|
}
|
|
858
1062
|
});
|
|
859
1063
|
}); };
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAiC;AAEjC,gDAA2B;AAC3B,+DAAyC;AACzC,iEAA2C;AAC3C,2DAAqC;AACrC,mDAA6B;AAC7B,2DAAqC;AACrC,6CAA8E;AAE9E,IAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC;AAC3E,IAAM,sBAAsB,GAAG,GAAG,CAAC;AAEnC,IAAM,KAAK,GAAG,IAAA,eAAM,EAAC,OAAO,CAAC,CAAC;AA2J9B;;;GAGG;AACH,IAAM,QAAQ,GAAG,UAAC,MAAsB;IACvC,OAAA,MAAM,CAAC,iBAAiB,CACvB,oDAAoD,CACpD;AAFD,CAEC,CAAC;AAEH,IAAM,aAAa,GAAG,UACrB,MAAsB,EACtB,OAAiE;IAGhE,IAAA,aAAa,GAMV,OAAO,cANG,EACb,YAAY,GAKT,OAAO,aALE,EACZ,mBAAmB,GAIhB,OAAO,oBAJS,EACnB,mBAAmB,GAGhB,OAAO,oBAHS,EACnB,iBAAiB,GAEd,OAAO,kBAFO,EACjB,kBAAkB,GACf,OAAO,mBADQ,CACP;IACZ,OAAO,MAAM,CAAC,SAAS,okBAAA,wKAEZ,EAAa,IAAK,EAAY,IAAK,EAAmB,IAAK,EAAmB,IAAK,EAAiB,IAAK,EAAkB,yTAGrI,KAHU,aAAa,EAAK,YAAY,EAAK,mBAAmB,EAAK,mBAAmB,EAAK,iBAAiB,EAAK,kBAAkB,EAGpI;AACH,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,IAAM,cAAc,GAAG,UAAC,MAAc,EAAE,WAAmB;IAC1D,IAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACzB,IAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7C,IAAM,SAAS,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;IACrC,OAAO,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AACvD,CAAC,CAAC;AAEF,kGAAkG;AAC3F,IAAM,YAAY,GAAG,UAAC,IAAY;IACxC,OAAA,IAAI;SACF,WAAW,EAAE;SACb,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;SAClB,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;AAH7B,CAG6B,CAAC;AAJlB,QAAA,YAAY,gBAIM;AAE/B;IAGC,eAAoB,MAAoB;QAAxC,iBAA4C;QAAxB,WAAM,GAAN,MAAM,CAAc;QAFhC,kBAAa,GAAkB,IAAI,CAAC;QAI5C,SAAI,GAAG;;;4BACN,qBAAM,IAAI,CAAC,mBAAmB,EAAE,EAAA;;wBAAhC,SAAgC,CAAC;wBACjC,KAAK,CAAC,0BAA0B,CAAC,CAAC;wBAClC,qBAAM,IAAI,CAAC,iBAAiB,EAAE,EAAA;;wBAA9B,SAA8B,CAAC;;;;aAC/B,CAAC;QAEF,wBAAmB,GAAG,UAAC,YAAoB;YAC1C,IAAM,aAAa,GAAG,IAAA,oBAAY,EAAC,YAAY,CAAC,CAAC;YAEjD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,OAAO,aAAa,CAAC;YACtB,CAAC;YAED,IAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC;QAEF,qBAAgB,GAAG;YAClB,IAAI,CAAC,KAAI,CAAC,aAAa,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CACd,wGAAwG,CACxG,CAAC;YACH,CAAC;YAED,OAAO,KAAI,CAAC,aAAa,CAAC;QAC3B,CAAC,CAAC;QAEF,wBAAmB,GAAG;;;;;;wBACrB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;4BACxB,sBAAO,IAAI,CAAC,aAAa,EAAC;wBAC3B,CAAC;wBAEc,qBAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAE9C,gDAAgD,CAAC,EAAA;;wBAF7C,MAAM,GAAG,SAEoC;wBAE7C,eAAe,GAAG,MAAA,MAAM,CAAC,CAAC,CAAC,0CAAE,gBAAgB,CAAC;wBAEpD,KAAK,CAAC,6BAA6B,EAAE,eAAe,CAAC,CAAC;wBAEtD,IAAI,CAAC,eAAe,EAAE,CAAC;4BACtB,MAAM,IAAI,KAAK,CACd,mEAAmE,CACnE,CAAC;wBACH,CAAC;wBAED,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;wBAE/D,sBAAO,IAAI,CAAC,aAAa,EAAC;;;aAC1B,CAAC;QAEF;;;;;;;;;WASG;QACH,sBAAiB,GAAG;YACnB,OAAO,KAAI,CAAC,MAAM,CAAC,YAAY,CAAC;gBAC/B,QAAQ,CAAC,KAAI,CAAC,MAAM,CAAC;gBACrB,KAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,uDAE7B,CAAC;gBACF,KAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,4dAY7B,CAAC;gBACF,KAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,iRAQ7B,CAAC;aACF,CAAC,CAAC;QACJ,CAAC,CAAC;QAEF,sBAAiB,GAAG,UAAC,KAAa,EAAE,OAAe;YAClD,IAAM,KAAK,GAAG,KAAI,CAAC,gBAAgB,EAAE,CAAC;YAEtC,OAAO,IAAA,oBAAY,EAClB,cAAc,CAAC,gBAAgB,EAAE,UAAG,KAAK,cAAI,KAAK,cAAI,OAAO,CAAE,CAAC,CAChE,CAAC;QACH,CAAC,CAAC;QAEF,mBAAc,GAAG,UAAC,IAAY;YAC7B,IAAM,KAAK,GAAG,KAAI,CAAC,gBAAgB,EAAE,CAAC;YAEtC,OAAO,IAAA,oBAAY,EAAC,cAAc,CAAC,aAAa,EAAE,UAAG,KAAK,cAAI,IAAI,CAAE,CAAC,CAAC,CAAC;QACxE,CAAC,CAAC;QAEF,oBAAe,GAAG,UAAC,UAAkB;YACpC,OAAA,YAAI,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAG;QAArC,CAAqC,CAAC;QAEvC,mCAA8B,GAAG,UAChC,MAAmE,EACnE,KAAa;;;;;4BAEI,qBAAM,MAAM,CAAC,eAAe,CAC5C,wQAQC,EACD,KAAK,CACL,EAAA;;wBAXK,QAAQ,GAAG,SAWhB;wBAED,IAAI,MAAA,QAAQ,CAAC,CAAC,CAAC,0CAAE,cAAc,EAAE,CAAC;4BACjC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;4BACvD,sBAAO;wBACR,CAAC;wBAED,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;wBAChD,qBAAM,MAAM,CAAC,iBAAiB,CAC7B,sBAAe,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,gCAA6B,CACvE,EAAA;;wBAFD,SAEC,CAAC;;;;aACF,CAAC;QAEF,4BAAuB,GAAG,UAAC,QAAuB;YACjD,IAAM,kBAAkB,GAAG;gBAC1B,SAAS,EAAE,yBAAI,QAAQ,CAAC,SAAS,UAAE,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC;oBAC5C,OAAA,UAAG,CAAC,CAAC,KAAK,cAAI,CAAC,CAAC,IAAI,cAAI,CAAC,CAAC,SAAS,cAAI,CAAC,CAAC,UAAU,CAAE,CAAC,aAAa,CAClE,UAAG,CAAC,CAAC,KAAK,cAAI,CAAC,CAAC,IAAI,cAAI,CAAC,CAAC,SAAS,cAAI,CAAC,CAAC,UAAU,CAAE,CACrD;gBAFD,CAEC,CACD;gBACD,aAAa,EAAE,QAAQ,CAAC,aAAa;gBACrC,KAAK,EAAE,yBAAI,QAAQ,CAAC,KAAK,UACvB,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,uBACX,IAAI,KACP,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;wBACjC,CAAC,CAAC,yBAAI,IAAI,CAAC,MAAM,UAAE,IAAI,EAAE;wBACzB,CAAC,CAAC,IAAI,CAAC,MAAM,IACb,EALa,CAKb,CAAC;qBACF,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,EAApC,CAAoC,CAAC;gBACtD,OAAO,EAAE,sBAAsB;aAC/B,CAAC;YAEF,IAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAChD,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC,CAAC;QAEF,wBAAmB,GAAG,UACrB,SAAoC,EACpC,KAEC;;;YAED,IAAM,iBAAiB,GAA2B,EAAE,CAAC;;gBACrD,KAAoB,IAAA,KAAA,SAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAA,gBAAA,4BAAE,CAAC;oBAA/C,IAAM,KAAK,WAAA;oBACf,IAAM,cAAc,GAAG,SAAS,CAAC,KAA+B,CAAC,CAAC;oBAClE,IAAI,CAAC,cAAc;wBAAE,SAAS;;wBAC9B,KAAmB,IAAA,oBAAA,SAAA,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,CAAA,CAAA,gBAAA,4BAAE,CAAC;4BAAnD,IAAM,IAAI,WAAA;4BACd,IAAM,OAAO,GAAG,cAAc,CAAC,IAAsB,CAAC,CAAC;4BACvD,IAAI,CAAC,OAAO;gCAAE,SAAS;4BACvB,iBAAiB,CAAC,IAAI,CAAC;gCACtB,UAAU,EAAE,MAAA,MAAA,OAAO,CAAC,UAAU,0CAAE,QAAQ,EAAE,mCAAI,IAAI;gCAClD,KAAK,OAAA;gCACL,SAAS,EAAE,OAAO,CAAC,SAAS;gCAC5B,UAAU,EAAE,KAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC;gCAC/C,IAAI,MAAA;6BACJ,CAAC,CAAC;wBACJ,CAAC;;;;;;;;;gBACF,CAAC;;;;;;;;;YAED,IAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;iBACtC,IAAI,EAAE;iBACN,GAAG,CAAC,UAAC,QAAQ;gBACb,IAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACtC,IAAM,MAAM,GAAmB,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;oBAC1D,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,UAAC,OAAO;wBAC1B,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;4BACrC,MAAM,IAAI,KAAK,CACd,2BAAoB,QAAQ,8BAA2B,CACvD,CAAC;wBACH,CAAC;wBACD,OAAO,KAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;oBAC3D,CAAC,CAAC;oBACJ,CAAC,CAAC,GAAG,CAAC;gBAEP,OAAO,EAAE,MAAM,QAAA,EAAE,QAAQ,UAAA,EAAE,CAAC;YAC7B,CAAC,CAAC,CAAC;YAEJ,OAAO;gBACN,SAAS,EAAE,iBAAiB;gBAC5B,aAAa,EAAE,KAAI,CAAC,gBAAgB,EAAE;gBACtC,KAAK,EAAE,aAAa;aACpB,CAAC;QACH,CAAC,CAAC;QAEF,uBAAkB,GAAG,cAAM,OAAA,UAAG,KAAI,CAAC,gBAAgB,EAAE,YAAS,EAAnC,CAAmC,CAAC;QAE/D,+BAA0B,GAAG;;;;;4GAC5B,UAAkB,EAClB,MAAoC;;;gBAApC,uBAAA,EAAA,SAAyB,IAAI,CAAC,MAAM;;;gCAEvB,qBAAM,MAAM,CAAC,eAAe,CACxC,0HAKC,EACD,UAAU,CACV,EAAA;;4BARK,IAAI,GAAG,SAQZ;4BAED,sBAAO,MAAA,MAAA,IAAI,CAAC,CAAC,CAAC,0CAAE,aAAa,mCAAI,IAAI,EAAC;;;;SACtC,CAAC;QAEF,4BAAuB,GAAG,UACzB,UAAkB,EAClB,YAAoB,EACpB,MAAoC;YAApC,uBAAA,EAAA,SAAyB,KAAI,CAAC,MAAM;YAEpC,OAAA,MAAM,CAAC,iBAAiB,CACvB,+WAQC,EACD,UAAU,EACV,YAAY,EACZ,sBAAsB,EACtB,OAAO,CACP;QAdD,CAcC,CAAC;QAEH,wBAAmB,GAAG,UAAC,MAAgB;;YACtC,IAAM,SAAS,GAA8B,EAAE,CAAC;;gBAChD,KAAoB,IAAA,WAAA,SAAA,MAAM,CAAA,8BAAA,kDAAE,CAAC;oBAAxB,IAAM,KAAK,mBAAA;oBACf,SAAS,CAAC,KAAK,CAAC,GAAG;wBAClB,MAAM,EAAE;4BACP,WAAW,EAAE,iBAAU,KAAK,CAAE;4BAC9B,UAAU,EAAE,MAAM;4BAClB,SAAS,EAAE,QAAQ;4BACnB,KAAK,EAAE,KAAY;4BACnB,IAAI,EAAE,QAAQ;yBACd;wBACD,IAAI,EAAE;4BACL,WAAW,EAAE,eAAQ,KAAK,CAAE;4BAC5B,UAAU,EAAE,MAAM;4BAClB,SAAS,EAAE,QAAQ;4BACnB,KAAK,EAAE,KAAY;4BACnB,IAAI,EAAE,MAAM;yBACZ;wBACD,MAAM,EAAE;4BACP,WAAW,EAAE,iBAAU,KAAK,CAAE;4BAC9B,UAAU,EAAE,MAAM;4BAClB,SAAS,EAAE,QAAQ;4BACnB,KAAK,EAAE,KAAY;4BACnB,IAAI,EAAE,QAAQ;yBACd;wBACD,MAAM,EAAE;4BACP,WAAW,EAAE,iBAAU,KAAK,CAAE;4BAC9B,UAAU,EAAE,MAAM;4BAClB,SAAS,EAAE,QAAQ;4BACnB,KAAK,EAAE,KAAY;4BACnB,IAAI,EAAE,QAAQ;yBACd;qBACD,CAAC;gBACH,CAAC;;;;;;;;;YACD,OAAO,SAAS,CAAC;QAClB,CAAC,CAAC;QAmCF,0GAA0G;QAC1G,iBAAY,GAAG,UAAC,UAAwB,EAAE,OAA2B;YAA3B,wBAAA,EAAA,YAA2B;YACpE,IAAM,MAAM,GAAG,KAAI,CAAC,MAAM,CAAC;YAC3B,sBAAsB;YACd,IAAA,KAAyC,OAAO,UAA/B,EAAjB,SAAS,mBAAG,KAAK,KAAA,EAAE,KAAsB,OAAO,UAAZ,EAAjB,SAAS,mBAAG,KAAK,KAAA,CAAa;YAEzD,iFAAiF;YACjF,8IAA8I;YAC9I,sGAAsG;YACtG,+IAA+I;YAC/I,iHAAiH;YACjH,mEAAmE;YACnE,qGAAqG;YACrG,OAAO;YACP,oGAAoG;YACpG,wFAAwF;YACvF,MAAc,CAAC,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,GAAG,UAC5D,OAAY;;gBAEZ,IAAM,SAAS,GAAG,KAAI,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBAEzD,IAAI,MAAA,OAAO,CAAC,WAAW,0CAAE,EAAE,EAAE,CAAC;oBAC7B,OAAO,sBAAe,OAAO,CAAC,WAAW,CAAC,EAAE,SAC3C,SAAS,CAAC,CAAC,CAAC,WAAI,SAAS,CAAE,CAAC,CAAC,CAAC,EAAE,CAC/B,CAAC;gBACJ,CAAC;gBAED,OAAO,KAAI,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC/C,CAAC,CAAC;YAEF,IAAI,UAAU,GAAG,KAAK,CAAC;YACvB,IAAM,OAAO,GAA0B,EAAE,CAAC;YAE1C,gHAAgH;YAChH,8IAA8I;YAC9I,IAAM,eAAe,GAAG;;wCACX,GAAG,EAAE,KAAK;oBACrB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;oBAEpB,wHAAwH;oBACxH,0HAA0H;oBAC1H,sIAAsI;oBACtI,oDAAoD;oBACpD,MAAM;yBACJ,YAAY,CACZ,UAAO,EAAE;;;;;;gCACR,0JAA0J;gCAC1J,qBAAM,EAAE,CAAC,eAAe,CAAC,yBAAkB,KAAK,CAAC,MAAM,CAAE,CAAC,EAAA;;oCAD1D,0JAA0J;oCAC1J,SAA0D,CAAC;;;;oCAEhC,KAAA,SAAA,IAAA,iBAAO,EAAC,KAAK,CAAC,OAAO,CAAC,CAAA;;;;oCAAtC,KAAA,mBAAY,EAAX,aAAG,EAAE,KAAK,QAAA;oCACrB,qBAAM,EAAE,CAAC,SAAS,yGAAA,oBAAqB,EAAG,IAAK,EAAgB,UAAU,KAAlC,KAAG,EAAK,KAAK,CAAC,QAAQ,EAAE,GAAU;;oCAAzE,SAAyE,CAAC;;;;;;;;;;;;;;;;;oCASrE,IAAI,GAAI,EAAU,CACvB,MAAM,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAC1C,CAAC;oCACc,qBAAM,OAAO,CAAC,GAAG,CAChC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,OAAO;4CAC1B,OAAA,MAAM,CAAC,eAAe,uBAClB,OAAO,CAAC,MAAM,KACjB,WAAW,EAAE;oDACZ,IAAI,EAAE,KAAK;oDACX,EAAE,EAAE,IAAI;iDACR,IACA;wCANF,CAME,CACF,CACD,EAAA;;oCAVK,OAAO,GAAG,SAUf;oCAED,sBAAO,OAAO,EAAC;;;yBACf,EACD;wBACC,OAAO,EAAE,SAAS;wBAClB,OAAO,EAAE,SAAS;qBAClB,CACD;yBACA,IAAI,CAAC,UAAC,OAAO;wBACb,OAAO,CAAC,OAAO,CAAC,UAAC,MAAM,EAAE,KAAK;4BAC7B,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;wBACvC,CAAC,CAAC,CAAC;oBACJ,CAAC,CAAC;yBACD,KAAK,CAAC,UAAC,CAAC;;;4BACR,KAAsB,IAAA,oBAAA,SAAA,KAAK,CAAC,QAAQ,CAAA,CAAA,gBAAA,4BAAE,CAAC;gCAAlC,IAAM,OAAO,WAAA;gCACjB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;4BACnB,CAAC;;;;;;;;;wBACD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;oBACrB,CAAC,CAAC,CAAC;;;oBAvDL,KAA2B,IAAA,KAAA,SAAA,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA,gBAAA;wBAAvC,IAAA,KAAA,mBAAY,EAAX,GAAG,QAAA,EAAE,KAAK,QAAA;gCAAV,GAAG,EAAE,KAAK;qBAwDrB;;;;;;;;;YACF,CAAC,CAAC;YAEF,IAAM,cAAc,GAAG,KAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;YAEtD,IAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC;gBAC9B,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE;oBACN,UAAU,EAAE;wBACL,cAAc,YAAC,MAAM;;;;;oCAClB,KAAK,GAA6B,MAAM,MAAnC,EAAE,IAAI,GAAuB,MAAM,KAA7B,EAAE,KAAK,GAAgB,MAAM,MAAtB,EAAE,SAAS,GAAK,MAAM,UAAX,CAAY;oCACjD,IAAI,CAAC,KAAK,EAAE,CAAC;wCACZ,kDAAkD;wCAClD,2EAA2E;wCAC3E,sBAAQ,KAAa,CAAC,IAAI,CAAC,EAAC;oCAC7B,CAAC;oCAEK,GAAG,GAAG,UAAU,EAAE,CAAC;oCAEzB,uDAAuD;oCACvD,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;wCAClB,sBAAO,KAAK,CAAC,IAAI,CAAC,EAAC;oCACpB,CAAC;oCAEO,IAAI,GAAc,GAAG,KAAjB,EAAE,OAAO,GAAK,GAAG,QAAR,CAAS;oCAExB,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;oCAEpC,IAAI,OAAO,EAAE,CAAC;;4CACb,KAAgB,KAAA,SAAA,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA,4CAAE,CAAC;gDAA5B,CAAC;gDACX,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;oDAC7B,MAAM,IAAI,KAAK,CACd,6BAAqB,CAAC,6HAAyH,CAC/I,CAAC;gDACH,CAAC;gDACD,IACC,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ;oDAC9B,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ;oDAC9B,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EACzB,CAAC;oDACF,MAAM,IAAI,KAAK,CACd,6BAAqB,CAAC,uDAA4C,OAAO,OAAO,CAC/E,CAAC,CACD,CAAE,CACH,CAAC;gDACH,CAAC;gDACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;;wDAC/B,KAAgB,oBAAA,SAAA,OAAO,CAAC,CAAC,CAAc,CAAA,CAAA,4CAAE,CAAC;4DAA/B,CAAC;4DACX,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;gEAC3B,MAAM,IAAI,KAAK,CACd,6BAAqB,CAAC,iDAAsC,OAAO,CAAC,CAAE,CACtE,CAAC;4DACH,CAAC;wDACF,CAAC;;;;;;;;;oDACD,kEAAkE;oDAClE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gDACzC,CAAC;4CACF,CAAC;;;;;;;;;oCACF,CAAC;oCAGK,IAAI,GAAG,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;oCAExD,IAAI,GAAG,IAAI,CAAC;oCAClB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;wCACpB,yDAAyD;wCACzD,OAAO,CAAC,IAAI,CAAC,GAAG;4CACf,MAAM,QAAA;4CACN,OAAO,SAAA;4CACP,QAAQ,EAAE,EAAE;yCACZ,CAAC;wCAEF,8CAA8C;wCAC9C,IAAI,CAAC,UAAU,EAAE,CAAC;4CACjB,UAAU,GAAG,IAAI,CAAC;4CAClB,OAAO,CAAC,QAAQ,CAAC;gDAChB,eAAe,EAAE,CAAC;gDAClB,UAAU,GAAG,KAAK,CAAC;4CACpB,CAAC,CAAC,CAAC;wCACJ,CAAC;oCACF,CAAC;oCAIK,gBAAgB,GAAI,MAAc,CAAC,gBAAgB,CAAC;oCAE1D,0GAA0G;oCAC1G,sBAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;4CAClC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;gDAC3B,MAAM,EAAE,gBAAgB;gDACxB,KAAK,OAAA;gDACL,IAAI,MAAA;gDACJ,OAAO,SAAA;gDACP,MAAM,QAAA;6CACN,CAAC,CAAC;wCACJ,CAAC,CAAC,CAAC,KAAK,CAAC,UAAC,CAAC;;4CACV,yDAAyD;4CACzD,IACC,MAAA,CAAC,CAAC,OAAO,0CAAE,QAAQ,CAClB,sDAAsD,CACtD,EACA,CAAC;gDACF,MAAM,IAAI,KAAK,CACd,6DAAsD,KAAK,cAAI,SAAS,UAAO,CAC/E,CAAC;4CACH,CAAC;4CAED,MAAM,CAAC,CAAC;wCACT,CAAC,CAAC,EAAC;;;yBACH;qBACD;iBACD;aACD,CAAC,CAAC;YAEH,OAAO,MAAM,CAAC;QACf,CAAC,CAAC;QAEF,WAAM,GAAG,UACR,MAAsB,EACtB,KAAa,EACb,QAAgB,EAChB,IAAY,EACZ,OAAqC;;;;;wBAE7B,SAAS,GAA6C,OAAO,UAApD,EAAc,aAAa,GAAkB,OAAO,WAAzB,EAAE,WAAW,GAAK,OAAO,YAAZ,CAAa;wBACtE,IAAI,CAAC,aAAa,EAAE,CAAC;4BACpB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;wBACjE,CAAC;wBAIK,UAAU,GAAG,QAAQ,CAAC;wBACgB,qBAAM,MAAM,CAAC,SAAS,sLAAA,wEACF,EAAK,6BAA8B,EAAU,UAC3G,KAD8D,KAAK,EAA8B,UAAU,GAC3G;;wBAFI,iBAAiB,GAAqB,SAE1C;wBACI,eAAe,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;wBAEzC,wBAAwB,GAAG,KAAK,CAAC;6BAGjC,CAAC,eAAe,EAAhB,wBAAgB;wBACnB,KAAK,CAAC,yBAAyB,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;wBACvD,qBAAM,IAAA,6BAAe,EAAC,aAAa,EAAE,KAAK,CAAC,EAAA;;wBAAxD,UAAU,GAAG,SAA2C;6BAG1D,CAAA,SAAS,KAAK,QAAQ,CAAA,EAAtB,wBAAsB;wBACzB,qBAAM,MAAM,CAAC,eAAe,CAAC,oCACZ,UAAU,8BAAiB,KAAK,oBAAS,SAAS,iBAAO,QAAQ,0BAAgB,UAAU,iBAC3G,CAAC,EAAA;;wBAFF,SAEE,CAAC;;4BAEH,qBAAM,MAAM,CAAC,eAAe,CAAC,oCACZ,UAAU,8BAAiB,KAAK,oBAAS,SAAS,iBAAO,QAAQ,qBAAW,UAAU,iBACtG,CAAC,EAAA;;wBAFF,SAEE,CAAC;;;wBAEJ,wBAAwB,GAAG,IAAI,CAAC;;;6BAEhC,CAAA,eAAe,CAAC,kBAAkB,KAAK,aAAa,CAAC,QAAQ,EAAE,CAAA,EAA/D,yBAA+D;wBAE/D,KAAK,CAAC,yBAAyB,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;wBACvD,qBAAM,IAAA,6BAAe,EAAC,aAAa,EAAE,KAAK,CAAC,EAAA;;wBAAxD,UAAU,GAAG,SAA2C;6BAC1D,CAAA,SAAS,KAAK,QAAQ,CAAA,EAAtB,yBAAsB;wBACzB,qBAAM,MAAM,CAAC,eAAe,CAAC,mCACb,UAAU,8BAAiB,KAAK,mBAAQ,QAAQ,0BAAgB,UAAU,iBACzF,CAAC,EAAA;;wBAFF,SAEE,CAAC;;6BAEH,qBAAM,MAAM,CAAC,eAAe,CAAC,mCACb,UAAU,8BAAiB,KAAK,mBAAQ,QAAQ,qBAAW,UAAU,iBACpF,CAAC,EAAA;;wBAFF,SAEE,CAAC;;;wBAEJ,wBAAwB,GAAG,IAAI,CAAC;;;6BAG7B,wBAAwB,EAAxB,yBAAwB;wBAC3B,qBAAM,aAAa,CAAC,MAAM,EAAE;gCAC3B,aAAa,EAAE,KAAK;gCACpB,YAAY,EAAE,IAAI;gCAClB,mBAAmB,EAAE,UAAU;gCAC/B,mBAAmB,EAAE,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,EAAE;gCACtC,iBAAiB,EAAE,SAAS;gCAC5B,+DAA+D;gCAC/D,8DAA8D;gCAC9D,kBAAkB,EAAE,aAAa,CAAC,QAAQ,EAAE;6BAC5C,CAAC,EAAA;;wBATF,SASE,CAAC;;;;;aAEJ,CAAC;QAEF,gBAAW,GAAG,gEAKZ,EAQD;;;;;gBAPA,eAAe,qBAAA,EACf,QAAQ,cAAA;;;4BAOR,qBAAM,IAAI,CAAC,mBAAmB,EAAE,EAAA;;wBAAhC,SAAgC,CAAC;wBAE3B,gBAAgB,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;wBAClD,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,GAAG,CACtD,UAAC,CAAC,IAAK,OAAA,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,EAAtC,CAAsC,CACjC,CAAC;wBACd,IAAI,eAAe,EAAE,CAAC;4BACf,IAAI,GAAG,IAAA,oBAAU,EAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,CAAC;4BAC9D,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gCACjB,MAAM,IAAI,KAAK,CACd,8CAAuC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAE,CACxD,CAAC;4BACH,CAAC;wBACF,CAAC;wBACK,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;wBACpD,SAAS,GAA8B,IAAA,mBAAS,EAAC,gBAAgB,CAAC,CAAC;;4BACzE,KAAoB,WAAA,SAAA,MAAM,CAAA,gFAAE,CAAC;gCAAlB,KAAK;gCACf,IAAI,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAG,KAAK,CAAC,EAAE,CAAC;oCAC9B,KAAW,OAAO,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;wCACxC,SAAS;wCACd,4DAA4D;wCAC5D,MAAA,eAAe,CAAC,KAAK,CAAE,CAAC,OAAyB,CAAC,0CAAE,SAAS,CAAC;wCAC/D,IAAI,CAAC,SAAS;4CAAE,SAAS;wCACzB,4DAA4D;wCAC5D,SAAS,CAAC,KAAK,CAAE,CAAC,OAAyB,CAAC,yBAExC,eAAe,CAAC,KAAK,CAAE,CAAC,OAAO,CAAC,KACnC,SAAS,WAAA,EACT,KAAK,EAAE,KAAY,EACnB,IAAI,EAAE,OAAO,GACb,CAAC;oCACH,CAAC;gCACF,CAAC;4BACF,CAAC;;;;;;;;;wBAEK,KAAK,GAAG,QAAQ,CAAC,SAAc,CAAC,CAAC;wBACjC,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAC7C,SAAS,EACT,KAAiE,CACjE,CAAC;wBACI,iBAAiB,GAAG,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC;wBAChE,eAAe,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;wBAGhD,qBAAM,IAAI,CAAC,0BAA0B,CAAC,eAAe,CAAC,EAAA;;wBADxD,IACC,CAAC,SAAsD,CAAC;4BACxD,iBAAiB,EAChB,CAAC;4BACF,KAAK,CAAC,8DAA8D,CAAC,CAAC;4BACtE,sBAAO;wBACR,CAAC;wBAED,qBAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,UAAO,EAAE;;;;;4CACjC,MAAM,GAAG,EAAoB,CAAC;4CACpC,qBAAM,QAAQ,CAAC,MAAM,CAAC,EAAA;;4CAAtB,SAAsB,CAAC;4CAGrB,qBAAM,IAAI,CAAC,0BAA0B,CAAC,eAAe,EAAE,MAAM,CAAC,EAAA;;4CADhE,IACC,CAAC,SAA8D,CAAC;gDAChE,iBAAiB,EAChB,CAAC;gDACF,KAAK,CACJ,mFAAmF,CACnF,CAAC;gDACF,sBAAO;4CACR,CAAC;4CAED,qBAAM,IAAI,CAAC,cAAc,CAAC;oDACzB,SAAS,WAAA;oDACT,gBAAgB,kBAAA;oDAChB,MAAM,QAAA;oDACN,KAAK,OAAA;iDACL,CAAC,EAAA;;4CALF,SAKE,CAAC;4CACH,qBAAM,IAAI,CAAC,uBAAuB,CACjC,eAAe,EACf,iBAAiB,EACjB,MAAM,CACN,EAAA;;4CAJD,SAIC,CAAC;;;;iCACF,CAAC,EAAA;;wBAzBF,SAyBE,CAAC;;;;aACH,CAAC;QAEF,mBAAc,GAAG,gEAA2D,EAY3E;;;;gBAXA,SAAS,eAAA,EACT,gBAAgB,sBAAA,EAChB,MAAM,YAAA,EACN,KAAK,WAAA;;;4BASqB,qBAAM,MAAM,CAAC,eAAe,CAAC,6EAEtD,CAAC,EAAA;;wBAFI,OAAO,GAAa,SAExB;wBAC0C,qBAAM,MAAM,CAAC,eAAe,CAAC,sDAExE,CAAC,EAAA;;wBAFI,iBAAiB,GAAqB,SAE1C;6BAIE,CAAA,iBAAiB,CAAC,MAAM,KAAK,CAAC,CAAA,EAA9B,yBAA8B;wBACjC,KAAK,CAAC,iEAAiE,CAAC,CAAC;wBAC1C,qBAAM,MAAM,CAAC,eAAe,CAAC,uFAE3D,CAAC,EAAA;;wBAFI,UAAU,GAAe,SAE7B;6BAEE,UAAU,CAAC,MAAM,EAAjB,yBAAiB;wBACd,iBAAiB,GAAG,UAAU,CAAC,GAAG,CAAC,UAAC,MAAM;;4BAAK,OAAA,CAAC;gCACrD,aAAa,EAAE,MAAM,CAAC,SAAS;gCAC/B,YAAY,EAAE,MAAM,CAAC,UAAU;gCAC/B,mBAAmB,EAAE,MAAM,CAAC,UAAU;gCACtC,mBAAmB,EAAE,EAAE;gCACvB,iBAAiB,EAAE,MAAM,CAAC,GAAG;gCAC7B,kBAAkB,EAAE,MAAA,MAAA,MAAM,CAAC,IAAI,mCAAI,MAAM,CAAC,UAAU,mCAAI,EAAE;6BAC1D,CAAC,CAAA;yBAAA,CAAC,CAAC;;;;wBAE0B,sBAAA,SAAA,iBAAiB,CAAA;;;;wBAApC,eAAe;wBACzB,qBAAM,aAAa,CAAC,MAAM,EAAE,eAAe,CAAC,EAAA;;wBAA5C,SAA4C,CAAC;;;;;;;;;;;;;;;;;wBAG9C,iBAAiB,CAAC,IAAI,OAAtB,iBAAiB,2BAAU,iBAAsC,WAAE;;;6BAMjD,SAAS;;;;;;;;;;;wBACtB,KAAK,GAAG,KAAK,CAAC;wBAEpB,qBAAM,IAAI,CAAC,8BAA8B,CAAC,MAAM,EAAE,KAAK,CAAC,EAAA;;wBAAxD,SAAwD,CAAC;4CAE9C,IAAI;;;;;wCACR,OAAO;wCACZ,4DAA4D;wCAC5D,SAAS,CAAC,KAA+B,CAAE,CAAC,IAAsB,CAAC,CAAC;wCAErE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;4CACnD,MAAM,IAAI,KAAK,CAAC,6BAAsB,OAAO,CAAC,SAAS,CAAE,CAAC,CAAC;wCAC5D,CAAC;wCAEK,QAAQ,GAAG,OAAK,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;6CAIpD,OAAO,CAAC,IAAI,CAAC,UAAC,IAAyB,IAAK,OAAA,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAzB,CAAyB,CAAC,EAAtE,wBAAsE;wCAEtE,KAAK,CAAC,qBAAqB,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;;4CAEpD,qBAAM,MAAM,CAAC,eAAe,CAAC,6IAIwC,QAAQ,iDAC7D,QAAQ,uFAKvB,CAAC,EAAA;;wCAVF,SAUE,CAAC;wCACH,qBAAM,MAAM,CAAC,eAAe,CAAC,8BACpB,OAAO,CAAC,SAAS,mBAAQ,KAAK,mBAAQ,QAAQ,kBACtD,CAAC,EAAA;;wCAFF,SAEE,CAAC;;;6CAGA,OAAO,CAAC,UAAU,EAAlB,wBAAkB;wCACrB,qBAAM,OAAK,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAc,CAAC,EAAA;;wCAAhE,SAAgE,CAAC;;;;;;;6BAlChD,SAAS,CAAC,KAA+B,CAAC;;;;;;;;;;;sDAAlD,IAAI;;;;;;;;;;;4CA0CL,GAAG;;;;;;wCACP,IAAI,GAAG,OAAK,cAAc,CAAC,GAAG,CAAC,CAAC;wCACtC,qBAAM,MAAM,CAAC,iBAAiB,CAAC,6HAIsC,IAAI,6CACzD,IAAI,mEAKnB,CAAC,EAAA;;wCAVF,SAUE,CAAC;wCAEG,iBAAiB,GAAG,IAAA,iBAAO,EAChC,gBAAgB,EAChB,UAAC,KAAK,EAAE,SAAS;4CAChB,OAAO,IAAA,aAAG,EAAC,KAAK,EAAE,UAAC,OAAO,EAAE,IAAI;gDAC/B,OAAO,KAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;4CAChD,CAAC,CAAC,CAAC;wCACJ,CAAC,CACD,CAAC;wCACI,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;wCAC3B,QAAQ,GACb,aAAa,KAAK,GAAG;4CACpB,CAAC,CAAC,iBAAiB;4CACnB,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,UAAC,OAAO;gDAC1B,4DAA4D;gDAC5D,OAAA,KAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAM,EAAE,OAAO,CAAC,IAAK,CAAC;4CAArD,CAAqD,CACpD,CAAC;wCAEN,KAAK,CACJ,iBAAiB,EACjB,GAAG,EACH,IAAI,EACJ,gBAAgB,EAChB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CACnB,CAAC;wCAEF,4IAA4I;wCAC5I,+JAA+J;wCAC/J,qBAAM,MAAM,CAAC,iBAAiB,CAC7B,sDAA+C,IAAI,MAAG,CACtD,EAAA;;wCAJD,4IAA4I;wCAC5I,+JAA+J;wCAC/J,SAEC,CAAC;wCACF,qBAAM,MAAM,CAAC,iBAAiB,CAAC,qEACoB,IAAI,gBACrD,CAAC,EAAA;;wCAFH,SAEG,CAAC;wCACJ,qBAAM,MAAM,CAAC,iBAAiB,CAAC,oDACG,IAAI,gBACpC,CAAC,EAAA;;wCAFH,SAEG,CAAC;wCACJ,qBAAM,MAAM,CAAC,eAAe,CAAC,gBAAS,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAO,IAAI,CAAE,CAAC,EAAA;;wCAAvE,SAAuE,CAAC;wCAIvE,qBAAM,MAAM,CAAC,eAAe,CAAC,iGAEgB,IAAI,sPAMkC,IAAI,cACxF,CAAC,EAAA;;wCAVK,SAAS,GACd,SASA;wCAEK,QAAQ,GAAG,SAAS;6CACxB,MAAM,CAAC,UAAC,EAAY;gDAAV,QAAQ,cAAA;4CAAO,OAAA,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;wCAA5B,CAA4B,CAAC;6CACtD,GAAG,CAAC,UAAC,EAAY;gDAAV,QAAQ,cAAA;4CAAO,OAAA,QAAQ;wCAAR,CAAQ,CAAC,CAAC;6CAE9B,QAAQ,CAAC,MAAM,EAAf,yBAAe;wCAClB,0CAA0C;wCAC1C,KAAK,CAAC,oBAAoB,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;wCAC5D,qBAAM,MAAM,CAAC,iBAAiB,CAC7B,iBAAU,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAS,IAAI,CAAE,CAC5C,EAAA;;wCAFD,SAEC,CAAC;wCACe,qBAAM,MAAM,CAAC,eAAe,CAC5C,oEAA6D,QAAQ;iDACnE,GAAG,CAAC,UAAC,EAAE,IAAK,OAAA,WAAI,EAAE,MAAG,EAAT,CAAS,CAAC;iDACtB,IAAI,CAAC,IAAI,CAAC,MAAG,CACf,EAAA;;wCAJK,QAAQ,GAAG,SAIhB;;;;wCACuB,6BAAA,SAAA,QAAQ,CAAA,CAAA;;;;wCAArB,SAAS;wCACnB,qBAAM,MAAM,CAAC,iBAAiB,CAC7B,sBAAe,SAAS,CAAC,UAAU,mBAAQ,SAAS,CAAC,SAAS,OAAG,CACjE,EAAA;;wCAFD,SAEC,CAAC;;;;;;;;;;;;;;;;;wCAGH,KAAK,CAAC,qCAAqC,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;wCAClE,qBAAM,MAAM,CAAC,iBAAiB,CAC7B,4EAAqE,QAAQ;iDAC3E,GAAG,CAAC,UAAC,EAAE,IAAK,OAAA,WAAI,EAAE,MAAG,EAAT,CAAS,CAAC;iDACtB,IAAI,CAAC,IAAI,CAAC,MAAG,CACf,EAAA;;wCAJD,SAIC,CAAC;;;;;;;6BA3Fc,KAAK;;;;;;;;;;;sDAAZ,GAAG;;;;;;;;;;aA8Fd,CAAC;QAEF,mBAAc,GAAG,UAAO,IAAY;;;;4BACnC,qBAAM,IAAI,CAAC,mBAAmB,EAAE,EAAA;;wBAAhC,SAAgC,CAAC;wBAC3B,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;wBAGnC,qBAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAQ7C,8NAO6B,cAAc,g7BA6BtC,CAAC,EAAA;;wBA5CF,KAAK,GAAG,SA4CN;wBAER,sBAAO,KAAK,EAAC;;;aACb,CAAC;QAEF,4BAAuB,GAAG;YACzB,yDAAyD;YACzD,mEAAmE;YACnE,8FAA8F;YAC9F,kFAAkF;YAClF,yGAAyG;YACzG,8DAA8D;YAC9D,IAAM,gBAAgB,GAAI,KAAI,CAAC,MAAc;iBAC3C,iBAAqC,CAAC;YAExC,OAAO,gBAAgB,CAAC;QACzB,CAAC,CAAC;IAr7ByC,CAAC;IAiS5C,aAAa;IACb,0BAAU,GAAV,UAAW,KAAU;QACpB,IAAI,KAAK,CAAC,MAAM,KAAK,YAAY,IAAI,KAAK,CAAC,MAAM,KAAK,mBAAmB,EAAE,CAAC;YAC3E,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,IAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;QAED,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAExD,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC;IAED,+BAAe,GAAf,UAAgB,GAAW;QAA3B,iBAaC;QAZA,IAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;aAChC,IAAI,EAAE;aACN,GAAG,CAAC,UAAC,GAAG;YACR,aAAa;YACb,IAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;YACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACjD,OAAO,WAAI,GAAG,cAAI,KAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAG,CAAC;YAClD,CAAC;YACD,OAAO,GAAG,CAAC;QACZ,CAAC,CAAC,CAAC;QAEJ,OAAO,WAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,MAAG,CAAC;IACnC,CAAC;IAsnBF,YAAC;AAAD,CAAC,AAz7BD,IAy7BC;AAz7BY,sBAAK;AA27BlB;;IAEI;AACG,IAAM,KAAK,GAAG,UAQpB,MAA4C;;;;;gBAEtC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;gBAExB,MAAM,GAA4C,MAAM,OAAlD,EAAE,eAAe,GAA2B,MAAM,gBAAjC,EAAE,QAAQ,GAAiB,MAAM,SAAvB,EAAE,UAAU,GAAK,MAAM,WAAX,CAAY;gBAC3D,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;gBAChC,qBAAM,KAAK,CAAC,IAAI,EAAE,EAAA;;gBAAlB,SAAkB,CAAC;gBACnB,qBAAM,KAAK,CAAC,WAAW,CAA0B;wBAChD,eAAe,iBAAA;wBACf,QAAQ,UAAA;qBACR,CAAC,EAAA;;gBAHF,SAGE,CAAC;gBACG,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;gBAE9D,KAAK,CAAC,oBAAoB,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC;gBAE7D,sBAAO,MAAM,EAAC;;;KACd,CAAC;AAxBW,QAAA,KAAK,SAwBhB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cerebruminc/yates",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0-beta.dangerous.17be6b9",
|
|
4
4
|
"description": "Role based access control for Prisma Apps",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"files": [
|
|
@@ -48,4 +48,4 @@
|
|
|
48
48
|
"@prisma/client": "^5.11.0",
|
|
49
49
|
"prisma": "^5.11.0"
|
|
50
50
|
}
|
|
51
|
-
}
|
|
51
|
+
}
|