@cerebruminc/yates 3.0.2 → 3.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/CHANGELOG.md +12 -0
- package/dist/ast-fragments.d.ts +68 -0
- package/dist/ast-fragments.js +84 -0
- package/dist/ast-fragments.js.map +1 -0
- package/dist/expressions.js +34 -0
- package/dist/expressions.js.map +1 -1
- package/dist/index.js +38 -19
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [3.1.0](https://github.com/cerebruminc/yates/compare/v3.0.2...v3.1.0) (2024-01-09)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* Add support for using the `in` operator with context values ([5707f8a](https://github.com/cerebruminc/yates/commit/5707f8a67d4819236e75b10622062c5a055d4e0f))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* don't duplicate ability name in expression test ([59db403](https://github.com/cerebruminc/yates/commit/59db40346f654697d94e74c6877650db7dbd563f))
|
|
14
|
+
|
|
3
15
|
## [3.0.2](https://github.com/cerebruminc/yates/compare/v3.0.1...v3.0.2) (2023-12-15)
|
|
4
16
|
|
|
5
17
|
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generates an AST fragment that will check if a column value exists in a JSONB array stored in a `current_setting`
|
|
3
|
+
* The AST fragment represents SQL that looks like this:
|
|
4
|
+
* = ANY (SELECT jsonb_array_elements_text(current_setting('ctx.my_context_value')::jsonb))
|
|
5
|
+
*/
|
|
6
|
+
export declare const jsonb_array_elements_text: (setting: string) => {
|
|
7
|
+
type: string;
|
|
8
|
+
name: string;
|
|
9
|
+
args: {
|
|
10
|
+
type: string;
|
|
11
|
+
value: {
|
|
12
|
+
ast: {
|
|
13
|
+
with: null;
|
|
14
|
+
type: string;
|
|
15
|
+
options: null;
|
|
16
|
+
distinct: {
|
|
17
|
+
type: null;
|
|
18
|
+
};
|
|
19
|
+
columns: {
|
|
20
|
+
type: string;
|
|
21
|
+
expr: {
|
|
22
|
+
type: string;
|
|
23
|
+
name: string;
|
|
24
|
+
args: {
|
|
25
|
+
type: string;
|
|
26
|
+
value: {
|
|
27
|
+
type: string;
|
|
28
|
+
keyword: string;
|
|
29
|
+
expr: {
|
|
30
|
+
type: string;
|
|
31
|
+
name: string;
|
|
32
|
+
args: {
|
|
33
|
+
type: string;
|
|
34
|
+
value: {
|
|
35
|
+
type: string;
|
|
36
|
+
value: string;
|
|
37
|
+
}[];
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
as: null;
|
|
41
|
+
symbol: string;
|
|
42
|
+
target: {
|
|
43
|
+
dataType: string;
|
|
44
|
+
};
|
|
45
|
+
arrows: never[];
|
|
46
|
+
properties: never[];
|
|
47
|
+
}[];
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
as: null;
|
|
51
|
+
}[];
|
|
52
|
+
into: {
|
|
53
|
+
position: null;
|
|
54
|
+
};
|
|
55
|
+
from: null;
|
|
56
|
+
where: null;
|
|
57
|
+
groupby: null;
|
|
58
|
+
having: null;
|
|
59
|
+
orderby: null;
|
|
60
|
+
limit: {
|
|
61
|
+
seperator: string;
|
|
62
|
+
value: never[];
|
|
63
|
+
};
|
|
64
|
+
window: null;
|
|
65
|
+
};
|
|
66
|
+
}[];
|
|
67
|
+
};
|
|
68
|
+
};
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
exports.__esModule = true;
|
|
3
|
+
exports.jsonb_array_elements_text = void 0;
|
|
4
|
+
var escape_1 = require("./escape");
|
|
5
|
+
/**
|
|
6
|
+
* Generates an AST fragment that will check if a column value exists in a JSONB array stored in a `current_setting`
|
|
7
|
+
* The AST fragment represents SQL that looks like this:
|
|
8
|
+
* = ANY (SELECT jsonb_array_elements_text(current_setting('ctx.my_context_value')::jsonb))
|
|
9
|
+
*/
|
|
10
|
+
var jsonb_array_elements_text = function (setting) {
|
|
11
|
+
return {
|
|
12
|
+
type: "function",
|
|
13
|
+
name: "ANY",
|
|
14
|
+
args: {
|
|
15
|
+
type: "expr_list",
|
|
16
|
+
value: [
|
|
17
|
+
{
|
|
18
|
+
ast: {
|
|
19
|
+
"with": null,
|
|
20
|
+
type: "select",
|
|
21
|
+
options: null,
|
|
22
|
+
distinct: {
|
|
23
|
+
type: null
|
|
24
|
+
},
|
|
25
|
+
columns: [
|
|
26
|
+
{
|
|
27
|
+
type: "expr",
|
|
28
|
+
expr: {
|
|
29
|
+
type: "function",
|
|
30
|
+
name: "jsonb_array_elements_text",
|
|
31
|
+
args: {
|
|
32
|
+
type: "expr_list",
|
|
33
|
+
value: [
|
|
34
|
+
{
|
|
35
|
+
type: "cast",
|
|
36
|
+
keyword: "cast",
|
|
37
|
+
expr: {
|
|
38
|
+
type: "function",
|
|
39
|
+
name: "current_setting",
|
|
40
|
+
args: {
|
|
41
|
+
type: "expr_list",
|
|
42
|
+
value: [
|
|
43
|
+
{
|
|
44
|
+
type: "parameter",
|
|
45
|
+
value: (0, escape_1.escapeLiteral)(setting.replace(/^___yates_context_/, ""))
|
|
46
|
+
},
|
|
47
|
+
]
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
as: null,
|
|
51
|
+
symbol: "::",
|
|
52
|
+
target: {
|
|
53
|
+
dataType: "jsonb"
|
|
54
|
+
},
|
|
55
|
+
arrows: [],
|
|
56
|
+
properties: []
|
|
57
|
+
},
|
|
58
|
+
]
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
as: null
|
|
62
|
+
},
|
|
63
|
+
],
|
|
64
|
+
into: {
|
|
65
|
+
position: null
|
|
66
|
+
},
|
|
67
|
+
from: null,
|
|
68
|
+
where: null,
|
|
69
|
+
groupby: null,
|
|
70
|
+
having: null,
|
|
71
|
+
orderby: null,
|
|
72
|
+
limit: {
|
|
73
|
+
seperator: "",
|
|
74
|
+
value: []
|
|
75
|
+
},
|
|
76
|
+
window: null
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
]
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
exports.jsonb_array_elements_text = jsonb_array_elements_text;
|
|
84
|
+
//# sourceMappingURL=ast-fragments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ast-fragments.js","sourceRoot":"","sources":["../src/ast-fragments.ts"],"names":[],"mappings":";;;AAAA,mCAAyC;AAEzC;;;;GAIG;AACI,IAAM,yBAAyB,GAAG,UAAC,OAAe;IACxD,OAAO;QACN,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,KAAK;QACX,IAAI,EAAE;YACL,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE;gBACN;oBACC,GAAG,EAAE;wBACJ,MAAI,EAAE,IAAI;wBACV,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,IAAI;wBACb,QAAQ,EAAE;4BACT,IAAI,EAAE,IAAI;yBACV;wBACD,OAAO,EAAE;4BACR;gCACC,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE;oCACL,IAAI,EAAE,UAAU;oCAChB,IAAI,EAAE,2BAA2B;oCACjC,IAAI,EAAE;wCACL,IAAI,EAAE,WAAW;wCACjB,KAAK,EAAE;4CACN;gDACC,IAAI,EAAE,MAAM;gDACZ,OAAO,EAAE,MAAM;gDACf,IAAI,EAAE;oDACL,IAAI,EAAE,UAAU;oDAChB,IAAI,EAAE,iBAAiB;oDACvB,IAAI,EAAE;wDACL,IAAI,EAAE,WAAW;wDACjB,KAAK,EAAE;4DACN;gEACC,IAAI,EAAE,WAAW;gEACjB,KAAK,EAAE,IAAA,sBAAa,EAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;6DAC/D;yDACD;qDACD;iDACD;gDACD,EAAE,EAAE,IAAI;gDACR,MAAM,EAAE,IAAI;gDACZ,MAAM,EAAE;oDACP,QAAQ,EAAE,OAAO;iDACjB;gDACD,MAAM,EAAE,EAAE;gDACV,UAAU,EAAE,EAAE;6CACd;yCACD;qCACD;iCACD;gCACD,EAAE,EAAE,IAAI;6BACR;yBACD;wBACD,IAAI,EAAE;4BACL,QAAQ,EAAE,IAAI;yBACd;wBACD,IAAI,EAAE,IAAI;wBACV,KAAK,EAAE,IAAI;wBACX,OAAO,EAAE,IAAI;wBACb,MAAM,EAAE,IAAI;wBACZ,OAAO,EAAE,IAAI;wBACb,KAAK,EAAE;4BACN,SAAS,EAAE,EAAE;4BACb,KAAK,EAAE,EAAE;yBACT;wBACD,MAAM,EAAE,IAAI;qBACZ;iBACD;aACD;SACD;KACD,CAAC;AACH,CAAC,CAAC;AAxEW,QAAA,yBAAyB,6BAwEpC"}
|
package/dist/expressions.js
CHANGED
|
@@ -56,6 +56,7 @@ var random_1 = __importDefault(require("lodash/random"));
|
|
|
56
56
|
var matches_1 = __importDefault(require("lodash/matches"));
|
|
57
57
|
var node_sql_parser_1 = require("node-sql-parser");
|
|
58
58
|
var escape_1 = require("./escape");
|
|
59
|
+
var ast_fragments_1 = require("./ast-fragments");
|
|
59
60
|
var PRISMA_NUMERIC_TYPES = ["Int", "BigInt", "Float", "Decimal"];
|
|
60
61
|
var deepFind = function (obj, subObj) {
|
|
61
62
|
var matcher = (0, matches_1["default"])(subObj);
|
|
@@ -89,6 +90,8 @@ var getDmmfMetaData = function (client, model, field) {
|
|
|
89
90
|
};
|
|
90
91
|
// Perform substitution of Ints so that Prisma doesn't throw an error due to mismatched type values
|
|
91
92
|
// After we've captured the SQL, we can replace the Ints with the original values
|
|
93
|
+
// The returned tokens are a map of the token int, and the AST fragment that will replace it.
|
|
94
|
+
// We can then reconstruct the query using the AST fragments.
|
|
92
95
|
var tokenizeWhereExpression = function (
|
|
93
96
|
/** The Prisma client to use for metadata */
|
|
94
97
|
client,
|
|
@@ -125,6 +128,7 @@ tokens) {
|
|
|
125
128
|
var isNumeric = PRISMA_NUMERIC_TYPES.includes(fieldData.type);
|
|
126
129
|
var isColumnName = typeof value === "string" && !!value.match(/^___yates_row_/);
|
|
127
130
|
var isContext = typeof value === "string" && !!value.match(/^___yates_context_/);
|
|
131
|
+
var isInStatement = !!value["in"];
|
|
128
132
|
switch (true) {
|
|
129
133
|
case isColumnName:
|
|
130
134
|
// Substiture the yates row placeholder for the actual column name
|
|
@@ -187,6 +191,36 @@ tokens) {
|
|
|
187
191
|
value: value
|
|
188
192
|
};
|
|
189
193
|
break;
|
|
194
|
+
case isInStatement:
|
|
195
|
+
if (Array.isArray(value["in"])) {
|
|
196
|
+
var values = [];
|
|
197
|
+
for (var item in value["in"]) {
|
|
198
|
+
values.push({
|
|
199
|
+
type: "single_quote_string",
|
|
200
|
+
value: item
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
astFragment = {
|
|
204
|
+
type: "binary_expr",
|
|
205
|
+
operator: "IN",
|
|
206
|
+
left: {
|
|
207
|
+
type: "column_ref",
|
|
208
|
+
schema: "public",
|
|
209
|
+
table: table,
|
|
210
|
+
column: field
|
|
211
|
+
},
|
|
212
|
+
right: {
|
|
213
|
+
type: "expr_list",
|
|
214
|
+
value: values
|
|
215
|
+
}
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
// If the value of `in` is a context value, we assume that it is an array that has been JSON encoded
|
|
220
|
+
// We create an AST fragment representing a function call to `jsonb_array_elements_text` with the context value as the argument
|
|
221
|
+
astFragment = (0, ast_fragments_1.jsonb_array_elements_text)(value["in"]);
|
|
222
|
+
}
|
|
223
|
+
break;
|
|
190
224
|
// All other types are treated as strings
|
|
191
225
|
default:
|
|
192
226
|
astFragment = {
|
package/dist/expressions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expressions.js","sourceRoot":"","sources":["../src/expressions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA8C;AAC9C,yDAAmC;AACnC,2DAAqC;AACrC,mDAAyC;AACzC,mCAAyC;
|
|
1
|
+
{"version":3,"file":"expressions.js","sourceRoot":"","sources":["../src/expressions.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -155,11 +155,11 @@ var createClient = function (prisma, getContext, options) {
|
|
|
155
155
|
$allOperations: function (params) {
|
|
156
156
|
var _a;
|
|
157
157
|
return __awaiter(this, void 0, void 0, function () {
|
|
158
|
-
var model, args, query, operation, ctx, role, context, pgRole, _b, _c, k, queryResults, e_1;
|
|
159
|
-
var e_2,
|
|
158
|
+
var model, args, query, operation, ctx, role, context, pgRole, _b, _c, k, _d, _e, v, queryResults, e_1;
|
|
159
|
+
var e_2, _f, e_3, _g;
|
|
160
160
|
var _this = this;
|
|
161
|
-
return __generator(this, function (
|
|
162
|
-
switch (
|
|
161
|
+
return __generator(this, function (_h) {
|
|
162
|
+
switch (_h.label) {
|
|
163
163
|
case 0:
|
|
164
164
|
model = params.model, args = params.args, query = params.query, operation = params.operation;
|
|
165
165
|
if (!model) {
|
|
@@ -179,25 +179,44 @@ var createClient = function (prisma, getContext, options) {
|
|
|
179
179
|
if (!k.match(/^[a-z_\.]+$/)) {
|
|
180
180
|
throw new Error("Context variable \"".concat(k, "\" contains invalid characters. Context variables must only contain lowercase letters, numbers, periods and underscores."));
|
|
181
181
|
}
|
|
182
|
-
if (typeof context[k] !== "number" && typeof context[k] !== "string") {
|
|
183
|
-
throw new Error("Context variable \"".concat(k, "\" must be a string or
|
|
182
|
+
if (typeof context[k] !== "number" && typeof context[k] !== "string" && !Array.isArray(context[k])) {
|
|
183
|
+
throw new Error("Context variable \"".concat(k, "\" must be a string, number or array. Got ").concat(typeof context[k]));
|
|
184
|
+
}
|
|
185
|
+
if (Array.isArray(context[k])) {
|
|
186
|
+
try {
|
|
187
|
+
for (_d = (e_3 = void 0, __values(context[k])), _e = _d.next(); !_e.done; _e = _d.next()) {
|
|
188
|
+
v = _e.value;
|
|
189
|
+
if (typeof v !== "string") {
|
|
190
|
+
throw new Error("Context variable \"".concat(k, "\" must be an array of strings. Got ").concat(typeof v));
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
195
|
+
finally {
|
|
196
|
+
try {
|
|
197
|
+
if (_e && !_e.done && (_g = _d["return"])) _g.call(_d);
|
|
198
|
+
}
|
|
199
|
+
finally { if (e_3) throw e_3.error; }
|
|
200
|
+
}
|
|
201
|
+
// Cast to a JSON string so that it can be used in RLS expressions
|
|
202
|
+
context[k] = JSON.stringify(context[k]);
|
|
184
203
|
}
|
|
185
204
|
}
|
|
186
205
|
}
|
|
187
206
|
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
188
207
|
finally {
|
|
189
208
|
try {
|
|
190
|
-
if (_c && !_c.done && (
|
|
209
|
+
if (_c && !_c.done && (_f = _b["return"])) _f.call(_b);
|
|
191
210
|
}
|
|
192
211
|
finally { if (e_2) throw e_2.error; }
|
|
193
212
|
}
|
|
194
213
|
}
|
|
195
|
-
|
|
214
|
+
_h.label = 1;
|
|
196
215
|
case 1:
|
|
197
|
-
|
|
216
|
+
_h.trys.push([1, 3, , 4]);
|
|
198
217
|
return [4 /*yield*/, prisma.$transaction(function (tx) { return __awaiter(_this, void 0, void 0, function () {
|
|
199
|
-
var _a, _b, _c, key, value,
|
|
200
|
-
var
|
|
218
|
+
var _a, _b, _c, key, value, e_4_1, txId, __internalParams, result;
|
|
219
|
+
var e_4, _d;
|
|
201
220
|
return __generator(this, function (_e) {
|
|
202
221
|
switch (_e.label) {
|
|
203
222
|
case 0:
|
|
@@ -223,14 +242,14 @@ var createClient = function (prisma, getContext, options) {
|
|
|
223
242
|
return [3 /*break*/, 3];
|
|
224
243
|
case 6: return [3 /*break*/, 9];
|
|
225
244
|
case 7:
|
|
226
|
-
|
|
227
|
-
|
|
245
|
+
e_4_1 = _e.sent();
|
|
246
|
+
e_4 = { error: e_4_1 };
|
|
228
247
|
return [3 /*break*/, 9];
|
|
229
248
|
case 8:
|
|
230
249
|
try {
|
|
231
250
|
if (_b && !_b.done && (_d = _a["return"])) _d.call(_a);
|
|
232
251
|
}
|
|
233
|
-
finally { if (
|
|
252
|
+
finally { if (e_4) throw e_4.error; }
|
|
234
253
|
return [7 /*endfinally*/];
|
|
235
254
|
case 9:
|
|
236
255
|
txId = tx[Symbol["for"]("prisma.client.transaction.id")];
|
|
@@ -254,10 +273,10 @@ var createClient = function (prisma, getContext, options) {
|
|
|
254
273
|
timeout: txTimeout
|
|
255
274
|
})];
|
|
256
275
|
case 2:
|
|
257
|
-
queryResults =
|
|
276
|
+
queryResults = _h.sent();
|
|
258
277
|
return [2 /*return*/, queryResults];
|
|
259
278
|
case 3:
|
|
260
|
-
e_1 =
|
|
279
|
+
e_1 = _h.sent();
|
|
261
280
|
// Normalize RLS errors to make them a bit more readable.
|
|
262
281
|
if ((_a = e_1.message) === null || _a === void 0 ? void 0 : _a.includes("new row violates row-level security policy for table")) {
|
|
263
282
|
throw new Error("You do not have permission to perform this action: ".concat(model, ".").concat(operation, "(...)"));
|
|
@@ -315,7 +334,7 @@ var createRoles = function (_a) {
|
|
|
315
334
|
var prisma = _a.prisma, customAbilities = _a.customAbilities, getRoles = _a.getRoles;
|
|
316
335
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
317
336
|
var abilities, runtimeDataModel, models, diff, models_1, models_1_1, model, ability, operation, roles, _b, _c, _d, _i, model, table, _e, _f, _g, _h, slug, ability, roleName, _loop_1, _j, _k, _l, _m, key;
|
|
318
|
-
var
|
|
337
|
+
var e_5, _o;
|
|
319
338
|
var _p;
|
|
320
339
|
return __generator(this, function (_q) {
|
|
321
340
|
switch (_q.label) {
|
|
@@ -372,12 +391,12 @@ var createRoles = function (_a) {
|
|
|
372
391
|
}
|
|
373
392
|
}
|
|
374
393
|
}
|
|
375
|
-
catch (
|
|
394
|
+
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
376
395
|
finally {
|
|
377
396
|
try {
|
|
378
397
|
if (models_1_1 && !models_1_1.done && (_o = models_1["return"])) _o.call(models_1);
|
|
379
398
|
}
|
|
380
|
-
finally { if (
|
|
399
|
+
finally { if (e_5) throw e_5.error; }
|
|
381
400
|
}
|
|
382
401
|
roles = getRoles(abilities);
|
|
383
402
|
_b = abilities;
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,iEAA2C;AAC3C,2DAAqC;AACrC,mDAA6B;AAC7B,2DAAqC;AACrC,6CAAiC;AACjC,6CAA8E;AAE9E,IAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC;AAwC3E;;;GAGG;AACH,IAAM,QAAQ,GAAG,UAAC,MAAoB;IACrC,OAAA,MAAM,CAAC,iBAAiB,CAAC,oDAAoD,CAAC;AAA9E,CAA8E,CAAC;AAEhF;;;;;;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;AAClG,IAAM,YAAY,GAAG,UAAC,IAAY,IAAK,OAAA,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,EAAhE,CAAgE,CAAC;AAEjG,IAAM,iBAAiB,GAAG,UAAC,KAAa,EAAE,OAAe;IAC/D,OAAO,YAAY,CAAC,cAAc,CAAC,gBAAgB,EAAE,UAAG,KAAK,cAAI,OAAO,CAAE,CAAC,CAAC,CAAC;AAC9E,CAAC,CAAC;AAFW,QAAA,iBAAiB,qBAE5B;AAEK,IAAM,cAAc,GAAG,UAAC,IAAY;IAC1C,OAAO,YAAY,CAAC,cAAc,CAAC,aAAa,EAAE,UAAG,IAAI,CAAE,CAAC,CAAC,CAAC;AAC/D,CAAC,CAAC;AAFW,QAAA,cAAc,kBAEzB;AAEF,0GAA0G;AACnG,IAAM,YAAY,GAAG,UAAC,MAAoB,EAAE,UAAwB,EAAE,OAA2B;IAA3B,wBAAA,EAAA,YAA2B;IACvG,sBAAsB;IACd,IAAA,KAAyC,OAAO,UAA/B,EAAjB,SAAS,mBAAG,KAAK,KAAA,EAAE,KAAsB,OAAO,UAAZ,EAAjB,SAAS,mBAAG,KAAK,KAAA,CAAa;IACzD,IAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC9B,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE;YACN,UAAU,EAAE;gBACL,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;wCACX,sBAAQ,KAAa,CAAC,IAAI,CAAC,EAAC;qCAC5B;oCAEK,GAAG,GAAG,UAAU,EAAE,CAAC;oCAEzB,uDAAuD;oCACvD,IAAI,GAAG,KAAK,IAAI,EAAE;wCACjB,sBAAO,KAAK,CAAC,IAAI,CAAC,EAAC;qCACnB;oCAEO,IAAI,GAAc,GAAG,KAAjB,EAAE,OAAO,GAAK,GAAG,QAAR,CAAS;oCAExB,MAAM,GAAG,IAAA,sBAAc,EAAC,IAAI,CAAC,CAAC;oCAEpC,IAAI,OAAO,EAAE;;4CACZ,KAAgB,KAAA,SAAA,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA,4CAAE;gDAA3B,CAAC;gDACX,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;oDAC5B,MAAM,IAAI,KAAK,CACd,6BAAqB,CAAC,6HAAyH,CAC/I,CAAC;iDACF;gDACD,IAAI,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;oDACnG,MAAM,IAAI,KAAK,CAAC,6BAAqB,CAAC,uDAA4C,OAAO,OAAO,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;iDACvG;gDACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;;wDAC9B,KAAgB,oBAAA,SAAA,OAAO,CAAC,CAAC,CAAU,CAAA,CAAA,4CAAE;4DAA1B,CAAC;4DACX,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;gEAC1B,MAAM,IAAI,KAAK,CAAC,6BAAqB,CAAC,iDAAsC,OAAO,CAAC,CAAE,CAAC,CAAC;6DACxF;yDACD;;;;;;;;;oDACD,kEAAkE;oDAClE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;iDACxC;6CACD;;;;;;;;;qCACD;;;;oCAOqB,qBAAM,MAAM,CAAC,YAAY,CAC7C,UAAO,EAAE;;;;;;oDACR,oJAAoJ;oDACpJ,qBAAM,EAAE,CAAC,eAAe,CAAC,mBAAY,MAAM,CAAE,CAAC,EAAA;;wDAD9C,oJAAoJ;wDACpJ,SAA8C,CAAC;;;;wDAEpB,KAAA,SAAA,IAAA,oBAAO,EAAC,OAAO,CAAC,CAAA;;;;wDAAhC,KAAA,mBAAY,EAAX,GAAG,QAAA,EAAE,KAAK,QAAA;wDACrB,qBAAM,EAAE,CAAC,SAAS,0GAAA,oBAAqB,EAAG,IAAK,EAAgB,WAAW,KAAnC,GAAG,EAAK,KAAK,CAAC,QAAQ,EAAE,GAAW;;wDAA1E,SAA0E,CAAC;;;;;;;;;;;;;;;;;wDAQtE,IAAI,GAAI,EAAU,CAAC,MAAM,CAAC,KAAG,CAAA,CAAC,8BAA8B,CAAC,CAAC,CAAC;wDAG/D,gBAAgB,GAAI,MAAc,CAAC,gBAAgB,CAAC;wDAC3C,qBAAM,MAAM,CAAC,eAAe,uBACvC,gBAAgB,KACnB,WAAW,EAAE;oEACZ,IAAI,EAAE,KAAK;oEACX,EAAE,EAAE,IAAI;iEACR,IACA,EAAA;;wDANI,MAAM,GAAG,SAMb;wDACF,iCAAiC;wDACjC,qBAAM,EAAE,CAAC,eAAe,CAAC,eAAe,CAAC,EAAA;;wDADzC,iCAAiC;wDACjC,SAAyC,CAAC;wDAE1C,sBAAO,MAAM,EAAC;;;6CACd,EACD;4CACC,OAAO,EAAE,SAAS;4CAClB,OAAO,EAAE,SAAS;yCAClB,CACD,EAAA;;oCAlCK,YAAY,GAAG,SAkCpB;oCAED,sBAAO,YAAY,EAAC;;;oCAEpB,yDAAyD;oCACzD,IAAI,MAAA,GAAC,CAAC,OAAO,0CAAE,QAAQ,CAAC,sDAAsD,CAAC,EAAE;wCAChF,MAAM,IAAI,KAAK,CAAC,6DAAsD,KAAK,cAAI,SAAS,UAAO,CAAC,CAAC;qCACjG;oCAED,MAAM,GAAC,CAAC;;;;;iBAET;aACD;SACD;KACD,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AACf,CAAC,CAAC;AAtGW,QAAA,YAAY,gBAsGvB;AAEF,IAAM,MAAM,GAAG,UACd,MAAoB,EACpB,KAAa,EACb,QAAgB,EAChB,SAAoB,EACpB,aAAyB;;;;oBAER,qBAAM,IAAA,6BAAe,EAAC,aAAa,EAAE,KAAK,CAAC,EAAA;;gBAAxD,UAAU,GAAG,SAA2C;gBAGtD,UAAU,GAAG,QAAQ,CAAC;gBACR,qBAAM,MAAM,CAAC,eAAe,CAAC,wEACU,KAAK,iCAAuB,UAAU,WAChG,CAAC,EAAA;;gBAFI,IAAI,GAAU,SAElB;qBAEE,CAAA,IAAI,CAAC,MAAM,KAAK,CAAC,CAAA,EAAjB,wBAAiB;qBAEhB,CAAA,SAAS,KAAK,QAAQ,CAAA,EAAtB,wBAAsB;gBACzB,qBAAM,MAAM,CAAC,eAAe,CAAC,kCACR,UAAU,8BAAiB,KAAK,oBAAS,SAAS,iBAAO,QAAQ,0BAAgB,UAAU,eAC5G,CAAC,EAAA;;gBAFL,SAEK,CAAC;;oBAEN,qBAAM,MAAM,CAAC,eAAe,CAAC,kCACR,UAAU,8BAAiB,KAAK,oBAAS,SAAS,iBAAO,QAAQ,qBAAW,UAAU,eACvG,CAAC,EAAA;;gBAFL,SAEK,CAAC;;;;qBAEG,CAAA,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAA,EAA3B,yBAA2B;qBACjC,CAAA,SAAS,KAAK,QAAQ,CAAA,EAAtB,wBAAsB;gBACzB,qBAAM,MAAM,CAAC,eAAe,CAAC,iCACT,UAAU,8BAAiB,KAAK,mBAAQ,QAAQ,0BAAgB,UAAU,eAC1F,CAAC,EAAA;;gBAFL,SAEK,CAAC;;oBAEN,qBAAM,MAAM,CAAC,eAAe,CAAC,iCACT,UAAU,8BAAiB,KAAK,mBAAQ,QAAQ,qBAAW,UAAU,eACrF,CAAC,EAAA;;gBAFL,SAEK,CAAC;;;;;KAGR,CAAC;AAEK,IAAM,WAAW,GAAG,UAA8E,EAUxG;QATA,MAAM,YAAA,EACN,eAAe,qBAAA,EACf,QAAQ,cAAA;;;;;;;;oBAQF,SAAS,GAA8B,EAAE,CAAC;oBAM1C,gBAAgB,GAAI,MAAc,CAAC,iBAAqC,CAAC;oBACzE,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,EAAtC,CAAsC,CAAa,CAAC;oBACnH,IAAI,eAAe,EAAE;wBACd,IAAI,GAAG,IAAA,uBAAU,EAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,CAAC;wBAC9D,IAAI,IAAI,CAAC,MAAM,EAAE;4BAChB,MAAM,IAAI,KAAK,CAAC,8CAAuC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAE,CAAC,CAAC;yBAC1E;qBACD;;wBACD,KAAoB,WAAA,SAAA,MAAM,CAAA,gFAAE;4BAAjB,KAAK;4BACf,SAAS,CAAC,KAAK,CAAC,GAAG;gCAClB,MAAM,EAAE;oCACP,WAAW,EAAE,iBAAU,KAAK,CAAE;oCAC9B,UAAU,EAAE,MAAM;oCAClB,SAAS,EAAE,QAAQ;oCACnB,KAAK,OAAA;oCACL,IAAI,EAAE,QAAQ;iCACd;gCACD,IAAI,EAAE;oCACL,WAAW,EAAE,eAAQ,KAAK,CAAE;oCAC5B,UAAU,EAAE,MAAM;oCAClB,SAAS,EAAE,QAAQ;oCACnB,KAAK,OAAA;oCACL,IAAI,EAAE,MAAM;iCACZ;gCACD,MAAM,EAAE;oCACP,WAAW,EAAE,iBAAU,KAAK,CAAE;oCAC9B,UAAU,EAAE,MAAM;oCAClB,SAAS,EAAE,QAAQ;oCACnB,KAAK,OAAA;oCACL,IAAI,EAAE,QAAQ;iCACd;gCACD,QAAM,EAAE;oCACP,WAAW,EAAE,iBAAU,KAAK,CAAE;oCAC9B,UAAU,EAAE,MAAM;oCAClB,SAAS,EAAE,QAAQ;oCACnB,KAAK,OAAA;oCACL,IAAI,EAAE,QAAQ;iCACd;6BACD,CAAC;4BACF,IAAI,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAG,KAAK,CAAC,EAAE;gCAC7B,KAAW,OAAO,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE;oCACvC,SAAS,GAAG,MAAA,eAAe,CAAC,KAAK,CAAE,CAAC,OAAyB,CAAC,0CAAE,SAAS,CAAC;oCAChF,IAAI,CAAC,SAAS;wCAAE,SAAS;oCACzB,SAAS,CAAC,KAAK,CAAE,CAAC,OAAyB,CAAC,yBACxC,eAAe,CAAC,KAAK,CAAE,CAAC,OAAO,CAAC,KACnC,SAAS,WAAA,EACT,KAAK,OAAA,EACL,IAAI,EAAE,OAAO,GACb,CAAC;iCACF;6BACD;yBACD;;;;;;;;;oBAEK,KAAK,GAAG,QAAQ,CAAC,SAAc,CAAC,CAAC;yBAInB,SAAS;;;;;;;;;;;oBACtB,KAAK,GAAG,KAAK,CAAC;oBAEpB,qBAAM,MAAM,CAAC,YAAY,CAAC;4BACzB,QAAQ,CAAC,MAAM,CAAC;4BAChB,MAAM,CAAC,eAAe,CAAC,wBAAgB,KAAK,kCAA8B,CAAC;yBAC3E,CAAC,EAAA;;oBAHF,SAGE,CAAC;yBAEgB,SAAS,CAAC,KAA+B,CAAC;;;;;;;;;;;oBACtD,OAAO,GAAG,SAAS,CAAC,KAA+B,CAAE,CAAC,IAAsB,CAAC,CAAC;oBAEpF,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;wBAClD,MAAM,IAAI,KAAK,CAAC,6BAAsB,OAAO,CAAC,SAAS,CAAE,CAAC,CAAC;qBAC3D;oBAEK,QAAQ,GAAG,IAAA,yBAAiB,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBAEhD,+BAA+B;oBAC/B,qBAAM,MAAM,CAAC,YAAY,CAAC;4BACzB,QAAQ,CAAC,MAAM,CAAC;4BAChB,MAAM,CAAC,eAAe,CAAC,qIAI8C,QAAQ,+CAC7D,QAAQ,6EAKvB,CAAC;4BACF,MAAM,CAAC,eAAe,CAAC,4BACd,OAAO,CAAC,SAAS,mBAAQ,KAAK,mBAAQ,QAAQ,gBACtD,CAAC;yBACF,CAAC,EAAA;;oBAjBF,+BAA+B;oBAC/B,SAgBE,CAAC;yBAEC,OAAO,CAAC,UAAU,EAAlB,wBAAkB;oBACrB,qBAAM,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,EAAA;;oBAA5E,SAA4E,CAAC;;;;;;;;;wCAQrE,GAAG;;;;;oCACP,IAAI,GAAG,IAAA,sBAAc,EAAC,GAAG,CAAC,CAAC;oCACjC,qBAAM,MAAM,CAAC,iBAAiB,CAAC,qHAIsC,IAAI,2CACzD,IAAI,yDAKnB,CAAC,EAAA;;oCAVF,SAUE,CAAC;oCAEG,iBAAiB,GAAG,IAAA,oBAAO,EAAC,SAAS,EAAE,UAAC,KAAK,EAAE,SAAS;wCAC7D,OAAO,IAAA,gBAAG,EAAC,KAAK,EAAE,UAAC,OAAO,EAAE,IAAI;4CAC/B,OAAO,IAAA,yBAAiB,EAAC,SAAS,EAAE,IAAI,CAAC,CAAC;wCAC3C,CAAC,CAAC,CAAC;oCACJ,CAAC,CAAC,CAAC;oCACG,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;oCAC3B,QAAQ,GACb,aAAa,KAAK,GAAG;wCACpB,CAAC,CAAC,iBAAiB;wCACnB,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,UAAC,OAAO,IAAK,OAAA,IAAA,yBAAiB,EAAC,OAAO,CAAC,KAAM,EAAE,OAAO,CAAC,IAAK,CAAC,EAAhD,CAAgD,CAAC,CAAC;oCAErF,4IAA4I;oCAC5I,+JAA+J;oCAC/J,qBAAM,MAAM,CAAC,YAAY,CAAC;4CACzB,QAAQ,CAAC,MAAM,CAAC;4CAChB,MAAM,CAAC,iBAAiB,CAAC,sDAA+C,IAAI,MAAG,CAAC;4CAChF,MAAM,CAAC,iBAAiB,CAAC,mEACyB,IAAI,cACrD,CAAC;4CACF,MAAM,CAAC,iBAAiB,CAAC,kDACQ,IAAI,cACpC,CAAC;4CACF,MAAM,CAAC,eAAe,CAAC,gBAAS,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAO,IAAI,CAAE,CAAC;yCACjE,CAAC,EAAA;;oCAZF,4IAA4I;oCAC5I,+JAA+J;oCAC/J,SAUE,CAAC;oCAGyD,qBAAM,MAAM,CAAC,eAAe,CAAC,6FAE3C,IAAI,0OAMkC,IAAI,aACvF,CAAC,EAAA;;oCATI,SAAS,GAA6C,SAS1D;oCAEI,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,UAAC,EAAY;4CAAV,QAAQ,cAAA;wCAAO,OAAA,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;oCAA5B,CAA4B,CAAC,CAAC,GAAG,CAAC,UAAC,EAAY;4CAAV,QAAQ,cAAA;wCAAO,OAAA,QAAQ;oCAAR,CAAQ,CAAC,CAAC;yCAC9G,QAAQ,CAAC,MAAM,EAAf,wBAAe;oCAClB,0CAA0C;oCAC1C,qBAAM,MAAM,CAAC,iBAAiB,CAAC,iBAAU,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAS,IAAI,CAAE,CAAC,EAAA;;oCAD5E,0CAA0C;oCAC1C,SAA4E,CAAC;;;;;;yBAtD7D,KAAK;;;;;;;;;;;kDAAZ,GAAG;;;;;;;;;;;CAyDd,CAAC;AAhLW,QAAA,WAAW,eAgLtB;AA+BF;;IAEI;AACG,IAAM,KAAK,GAAG,UAIpB,MAAmC;;;;;gBAE3B,MAAM,GAA4C,MAAM,OAAlD,EAAE,eAAe,GAA2B,MAAM,gBAAjC,EAAE,QAAQ,GAAiB,MAAM,SAAvB,EAAE,UAAU,GAAK,MAAM,WAAX,CAAY;gBACjE,qBAAM,IAAA,mBAAW,EAAI,EAAE,MAAM,QAAA,EAAE,eAAe,iBAAA,EAAE,QAAQ,UAAA,EAAE,CAAC,EAAA;;gBAA3D,SAA2D,CAAC;gBACtD,MAAM,GAAG,IAAA,oBAAY,EAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;gBAEhE,sBAAO,MAAM,EAAC;;;KACd,CAAC;AAXW,QAAA,KAAK,SAWhB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cerebruminc/yates",
|
|
3
|
-
"version": "3.0
|
|
3
|
+
"version": "3.1.0",
|
|
4
4
|
"description": "Role based access control for Prisma Apps",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"build": "tsc",
|
|
9
9
|
"test": "rome ci src test",
|
|
10
10
|
"lint:fix": "rome check --apply src test",
|
|
11
|
-
"test:integration": "jest test/integration",
|
|
11
|
+
"test:integration": "jest --runInBand test/integration",
|
|
12
12
|
"test:compose:integration": "docker compose -f docker-compose.yml --profile with-sut up db sut --exit-code-from sut",
|
|
13
13
|
"setup": "prisma generate && prisma migrate dev",
|
|
14
14
|
"prepublishOnly": "npm run build"
|