@skalfa/skalfa-api-core 1.0.19 → 1.0.21
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/dist/auth/auth.js.map +1 -1
- package/dist/auth/helpers/get-user-permissions.js +2 -2
- package/dist/auth/helpers/get-user-permissions.js.map +1 -1
- package/dist/middleware/auth.js +1 -1
- package/dist/middleware/auth.js.map +1 -1
- package/dist/permission/permission.js +6 -4
- package/dist/permission/permission.js.map +1 -1
- package/package.json +4 -8
- package/src/auth/auth.ts +1 -1
- package/src/auth/helpers/get-user-permissions.ts +2 -2
- package/src/middleware/auth.ts +1 -1
- package/src/permission/permission.ts +8 -5
- package/tsconfig.json +3 -5
package/dist/auth/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AACzE,OAAO,EAAE,+BAA+B,EAAE,MAAM,uCAAuC,CAAA;AAEvF,MAAM,CAAC,MAAM,kBAAkB,GAAK,EAAE,CAAA;AACtC,MAAM,CAAC,MAAM,eAAe,GAAQ,OAAO,CAAC,GAAG,CAAC,eAAe,KAAO,MAAM,CAAA;AAC5E,MAAM,CAAC,MAAM,UAAU,GAAa,OAAO,CAAC,GAAG,CAAC,UAAU,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AACzE,OAAO,EAAE,+BAA+B,EAAE,MAAM,uCAAuC,CAAA;AAEvF,MAAM,CAAC,MAAM,kBAAkB,GAAK,EAAE,CAAA;AACtC,MAAM,CAAC,MAAM,eAAe,GAAQ,OAAO,CAAC,GAAG,CAAC,eAAe,KAAO,MAAM,CAAA;AAC5E,MAAM,CAAC,MAAM,UAAU,GAAa,OAAO,CAAC,GAAG,CAAC,UAAU,KAAY,MAAM,CAAA;AAC5E,MAAM,CAAC,MAAM,cAAc,GAAS,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,CAAA;AAE7E,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,yCAAyC;IACzC,4CAA4C;IAC5C,yCAAyC;IACzC,iBAAiB;IAEjB,yCAAyC;IACzC,4CAA4C;IAC5C,yCAAyC;IACzC,iBAAiB;IAEjB,yCAAyC;IACzC,+BAA+B;IAC/B,yCAAyC;IACzC,iBAAiB;IAEjB,yCAAyC;IACzC,kCAAkC;IAClC,yCAAyC;IACzC,mBAAmB;IAEnB,yCAAyC;IACzC,kCAAkC;IAClC,yCAAyC;IACzC,mBAAmB;IAEnB,yCAAyC;IACzC,8BAA8B;IAC9B,yCAAyC;IACzC,gBAAgB;IAEhB,yCAAyC;IACzC,sCAAsC;IACtC,yCAAyC;IACzC,yBAAyB;IACzB,+BAA+B;CAChC,CAAA"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { db } from '@skalfa/skalfa-orm';
|
|
2
2
|
export async function getUserPermissions(userId) {
|
|
3
|
-
const roleIds = await db("
|
|
3
|
+
const roleIds = await db("user_has_user_roles").where("user_id", userId).pluck("user_role_id");
|
|
4
4
|
const query = db("user_permissions").where("user_id", userId);
|
|
5
5
|
if (roleIds.length > 0) {
|
|
6
|
-
query.orWhereIn("
|
|
6
|
+
query.orWhereIn("user_role_id", roleIds);
|
|
7
7
|
}
|
|
8
8
|
const rows = await query.pluck("permissions");
|
|
9
9
|
return Array.from(new Set(rows.flatMap((p) => p ?? [])));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-user-permissions.js","sourceRoot":"","sources":["../../../src/auth/helpers/get-user-permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAA;AAEvC,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAAc;IACrD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"get-user-permissions.js","sourceRoot":"","sources":["../../../src/auth/helpers/get-user-permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAA;AAEvC,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAAc;IACrD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,qBAAqB,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;IAE9F,MAAM,KAAK,GAAG,EAAE,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IAE7D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,SAAS,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;IAC1C,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IAE7C,OAAO,KAAK,CAAC,IAAI,CACf,IAAI,GAAG,CACL,IAAI,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAClC,CACF,CAAA;AACH,CAAC"}
|
package/dist/middleware/auth.js
CHANGED
|
@@ -9,7 +9,7 @@ export const Auth = (app) => app.derive(async ({ request }) => {
|
|
|
9
9
|
return { user: null, permissions: [], token: null };
|
|
10
10
|
return {
|
|
11
11
|
user: result.user,
|
|
12
|
-
permissions: result.permissions,
|
|
12
|
+
permissions: result.token.permissions,
|
|
13
13
|
token: result.token,
|
|
14
14
|
};
|
|
15
15
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/middleware/auth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAE7B,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;IACpE,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IAEvD,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;IAEzG,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAC7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAE5D,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAEjE,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW;
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/middleware/auth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAE7B,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;IACpE,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IAEvD,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;IAEzG,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAC7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAE5D,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAEjE,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW;QACrC,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAA;AACH,CAAC,CAAC,CAAA"}
|
|
@@ -81,10 +81,12 @@ function createPermission(keys) {
|
|
|
81
81
|
]);
|
|
82
82
|
},
|
|
83
83
|
guard(c) {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
84
|
+
if (process.env.AUTH_PERMISSION === "true") {
|
|
85
|
+
const permissions = new Set(c.permissions || []);
|
|
86
|
+
const ok = this.keys.some(k => permissions?.has(k));
|
|
87
|
+
if (!ok) {
|
|
88
|
+
c.responseForbidden();
|
|
89
|
+
}
|
|
88
90
|
}
|
|
89
91
|
}
|
|
90
92
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission.js","sourceRoot":"","sources":["../../src/permission/permission.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"permission.js","sourceRoot":"","sources":["../../src/permission/permission.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,17 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skalfa/skalfa-api-core",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "Core
|
|
3
|
+
"version": "1.0.21",
|
|
4
|
+
"description": "Core and Foundational utilities for the Skalfa API Framework.",
|
|
5
|
+
"keywords": ["skalfa", "skalfa-api", "skalfa-api-core", "bun-framework", "elysia-framework"],
|
|
5
6
|
"main": "dist/index.js",
|
|
6
7
|
"types": "dist/index.d.ts",
|
|
7
8
|
"scripts": {
|
|
8
|
-
"build": "tsc
|
|
9
|
+
"build": "tsc"
|
|
9
10
|
},
|
|
10
|
-
"keywords": [
|
|
11
|
-
"aluna",
|
|
12
|
-
"core",
|
|
13
|
-
"utility"
|
|
14
|
-
],
|
|
15
11
|
"author": "",
|
|
16
12
|
"license": "MIT",
|
|
17
13
|
"dependencies": {
|
package/src/auth/auth.ts
CHANGED
|
@@ -9,7 +9,7 @@ import { revalidateUserPermissionsByRole } from './revalidate-user-permissions-b
|
|
|
9
9
|
|
|
10
10
|
export const TOKEN_PLAIN_LENGTH = 20
|
|
11
11
|
export const AUTH_PERMISSION = process.env.AUTH_PERMISSION === "true"
|
|
12
|
-
export const AUTH_CACHE = process.env.AUTH_CACHE
|
|
12
|
+
export const AUTH_CACHE = process.env.AUTH_CACHE === "true"
|
|
13
13
|
export const AUTH_CACHE_TTL = Number(process.env.AUTH_CACHE_TTL || 600)
|
|
14
14
|
|
|
15
15
|
export const auth = {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { db } from '@skalfa/skalfa-orm'
|
|
2
2
|
|
|
3
3
|
export async function getUserPermissions(userId: number): Promise<string[]> {
|
|
4
|
-
const roleIds = await db("
|
|
4
|
+
const roleIds = await db("user_has_user_roles").where("user_id", userId).pluck("user_role_id")
|
|
5
5
|
|
|
6
6
|
const query = db("user_permissions").where("user_id", userId)
|
|
7
7
|
|
|
8
8
|
if (roleIds.length > 0) {
|
|
9
|
-
query.orWhereIn("
|
|
9
|
+
query.orWhereIn("user_role_id", roleIds)
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
const rows = await query.pluck("permissions")
|
package/src/middleware/auth.ts
CHANGED
|
@@ -120,11 +120,14 @@ function createPermission(keys: KeyPermission[]) {
|
|
|
120
120
|
},
|
|
121
121
|
|
|
122
122
|
guard(c: ControllerContext) {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
123
|
+
if(process.env.AUTH_PERMISSION === "true") {
|
|
124
|
+
const permissions = new Set(c.permissions || [])
|
|
125
|
+
|
|
126
|
+
const ok = this.keys.some(k => permissions?.has(k))
|
|
127
|
+
|
|
128
|
+
if (!ok) {
|
|
129
|
+
c.responseForbidden()
|
|
130
|
+
}
|
|
128
131
|
}
|
|
129
132
|
}
|
|
130
133
|
}
|
package/tsconfig.json
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"compilerOptions": {
|
|
3
|
-
"ignoreDeprecations": "5.0",
|
|
4
3
|
"target": "ES2021",
|
|
5
4
|
"module": "ES2022",
|
|
6
|
-
"moduleResolution": "
|
|
5
|
+
"moduleResolution": "bundler",
|
|
7
6
|
"declaration": true,
|
|
8
7
|
"sourceMap": true,
|
|
9
8
|
"outDir": "./dist",
|
|
@@ -12,11 +11,10 @@
|
|
|
12
11
|
"esModuleInterop": true,
|
|
13
12
|
"skipLibCheck": true,
|
|
14
13
|
"forceConsistentCasingInFileNames": true,
|
|
15
|
-
"baseUrl": ".",
|
|
16
14
|
"types": ["bun-types", "elysia"],
|
|
17
15
|
"paths": {
|
|
18
|
-
"@utils": ["src/index.ts"],
|
|
19
|
-
"@utils/*": ["src/*"]
|
|
16
|
+
"@utils": ["./src/index.ts"],
|
|
17
|
+
"@utils/*": ["./src/*"]
|
|
20
18
|
}
|
|
21
19
|
},
|
|
22
20
|
"include": ["src/**/*"]
|