@skalfa/skalfa-api-core 1.0.23 → 1.0.25

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.
@@ -31,7 +31,23 @@ export async function verifyAccessToken(token, req) {
31
31
  if (!valid)
32
32
  return null;
33
33
  await db("user_access_tokens").where("id", tokenRecord.id).update({ last_used_at: new Date(), last_used_ip: ip });
34
- const user = await db("users").where("id", tokenRecord.user_id).first();
34
+ const rows = await db("users")
35
+ .leftJoin("user_has_user_roles", "users.id", "user_has_user_roles.user_id")
36
+ .leftJoin("user_roles", "user_has_user_roles.user_role_id", "user_roles.id")
37
+ .where("users.id", tokenRecord.user_id)
38
+ .select("users.id", "users.username", "users.name", "user_roles.id as role_id", "user_roles.name as role_name");
39
+ if (!rows || rows.length === 0)
40
+ return null;
41
+ const firstRow = rows[0];
42
+ const user = {
43
+ id: firstRow.id,
44
+ username: firstRow.username,
45
+ name: firstRow.name,
46
+ roles: rows?.filter((row) => row && row.role_id != null)?.map((row) => ({
47
+ id: row.role_id,
48
+ name: row.role_name
49
+ })) || [],
50
+ };
35
51
  if (AUTH_CACHE) {
36
52
  const redis = registry.get('redis');
37
53
  if (redis) {
@@ -1 +1 @@
1
- {"version":3,"file":"verify-access-token.js","sourceRoot":"","sources":["../../src/auth/verify-access-token.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAEzD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,KAAa,EAAE,GAAa;IAClE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAA;IAErC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAK,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IAC9C,MAAM,KAAK,GAAgB,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC1D,MAAM,EAAE,GAAmB,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAEvD,MAAM,QAAQ,GAAG,cAAc,OAAO,EAAE,CAAA;IAExC,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACnC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YACxC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;gBAClC,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK;oBAAE,OAAO,IAAI,CAAA;gBACxC,OAAO,OAAO,CAAA;YAChB,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,CAAA;IAE/E,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAA;IAC7B,IAAI,WAAW,CAAC,KAAK,KAAK,KAAK;QAAE,OAAO,IAAI,CAAA;IAE5C,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,CAAA;IAC5D,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IAEvB,MAAM,EAAE,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,IAAI,IAAI,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAA;IAEjH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAA;IAEvE,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACnC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,KAAK,CAAC,KAAK,CACf,QAAQ,EACR,cAAc,EACd,IAAI,CAAC,SAAS,CAAC;gBACb,IAAI,EAAY,IAAI;gBACpB,KAAK,EAAW,WAAW,CAAC,KAAK;gBACjC,WAAW,EAAK,WAAW,CAAC,UAAU;aACvC,CAAC,CACH,CAAA;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,UAAU,EAAE,CAAA;AAC1E,CAAC"}
1
+ {"version":3,"file":"verify-access-token.js","sourceRoot":"","sources":["../../src/auth/verify-access-token.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { Command } from "commander";
2
2
  export declare function runCli(): void;
3
+ export declare const langCommand: Command;
3
4
  export declare const devCommand: Command;
4
5
  export declare const watchCommand: Command;
5
6
  export declare const startCommand: Command;
@@ -2,6 +2,7 @@ import fs from "fs";
2
2
  import path from "path";
3
3
  import { Command } from "commander";
4
4
  import { spawn } from "child_process";
5
+ import { runBuild as runBuildLang, startDev as startDevLang } from "@skalfa/skalfa-lang/compiler";
5
6
  import { makeControllerCommand } from "./make/basic-controller";
6
7
  import { makeSkalfaControllerCommand } from "./make/skalfa-controller";
7
8
  import { barrelsCommand, watchBarrelsCommand } from "./runner/barrels";
@@ -70,6 +71,7 @@ export function runCli() {
70
71
  program.addCommand(startCommand);
71
72
  program.addCommand(testCommand);
72
73
  program.addCommand(lintCommand);
74
+ program.addCommand(langCommand);
73
75
  program.parse(process.argv);
74
76
  }
75
77
  function getPackageManager() {
@@ -88,11 +90,30 @@ function executeCommand(commandLine) {
88
90
  process.exit(code || 0);
89
91
  });
90
92
  }
93
+ export const langCommand = new Command("lang")
94
+ .description("Manage and compile type-safe translation resources for @skalfa/lang.")
95
+ .argument("<action>", "action to perform: build, dev")
96
+ .option("-q, --quiet", "Run in quiet mode (suppress verbose logs)")
97
+ .action(async (action, options) => {
98
+ if (action === "build") {
99
+ const success = await runBuildLang(process.cwd(), false, !!options.quiet);
100
+ if (!success)
101
+ process.exit(1);
102
+ process.exit(0);
103
+ }
104
+ else if (action === "dev") {
105
+ await startDevLang(process.cwd(), !!options.quiet);
106
+ }
107
+ else {
108
+ console.error(`Unknown action "${action}". Use "build" or "dev".`);
109
+ process.exit(1);
110
+ }
111
+ });
91
112
  export const devCommand = new Command("dev")
92
113
  .description("Start development server")
93
114
  .action(() => {
94
115
  const pm = getPackageManager();
95
- executeCommand(`concurrently --raw "${pm} run watch" "${pm} run skalfa watch:barrels" "skalfa lang dev --quiet"`);
116
+ executeCommand(`concurrently --raw "${pm} run watch" "${pm} run skalfa watch:barrels" "${pm} run skalfa lang dev --quiet"`);
96
117
  });
97
118
  export const watchCommand = new Command("watch")
98
119
  .description("Start app watcher")
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/commands/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/commands/cli.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skalfa/skalfa-api-core",
3
- "version": "1.0.23",
3
+ "version": "1.0.25",
4
4
  "description": "Core and Foundational utilities for the Skalfa API Framework.",
5
5
  "keywords": [
6
6
  "skalfa",
@@ -18,14 +18,14 @@
18
18
  "license": "MIT",
19
19
  "dependencies": {
20
20
  "@skalfa/skalfa-orm": "*",
21
+ "@skalfa/skalfa-lang": "*",
21
22
  "knex": "^3.1.0",
22
23
  "bcrypt": "^6.0.0",
23
24
  "commander": "^12.1.0",
24
25
  "dotenv": "^17.2.2",
25
26
  "elysia": "^1.2.0",
26
27
  "nodemailer": "^7.0.9",
27
- "validator": "^13.15.15",
28
- "@skalfa/skalfa-lang": "*"
28
+ "validator": "^13.15.15"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@types/bcrypt": "^6.0.0",
@@ -35,7 +35,30 @@ export async function verifyAccessToken(token: string, req?: Request) {
35
35
 
36
36
  await db("user_access_tokens").where("id", tokenRecord.id).update({ last_used_at: new Date(), last_used_ip: ip })
37
37
 
38
- const user = await db("users").where("id", tokenRecord.user_id).first()
38
+ const rows = await db("users")
39
+ .leftJoin("user_has_user_roles", "users.id", "user_has_user_roles.user_id")
40
+ .leftJoin("user_roles", "user_has_user_roles.user_role_id", "user_roles.id")
41
+ .where("users.id", tokenRecord.user_id)
42
+ .select(
43
+ "users.id",
44
+ "users.username",
45
+ "users.name",
46
+ "user_roles.id as role_id",
47
+ "user_roles.name as role_name"
48
+ )
49
+
50
+ if (!rows || rows.length === 0) return null
51
+
52
+ const firstRow = rows[0]
53
+ const user = {
54
+ id : firstRow.id,
55
+ username : firstRow.username,
56
+ name : firstRow.name,
57
+ roles : rows?.filter((row: any) => row && row.role_id != null)?.map((row: any) => ({
58
+ id : row.role_id,
59
+ name : row.role_name
60
+ })) || [],
61
+ }
39
62
 
40
63
  if (AUTH_CACHE) {
41
64
  const redis = registry.get('redis')
@@ -2,6 +2,7 @@ import fs from "fs";
2
2
  import path from "path";
3
3
  import { Command } from "commander";
4
4
  import { spawn } from "child_process";
5
+ import { runBuild as runBuildLang, startDev as startDevLang } from "@skalfa/skalfa-lang/compiler";
5
6
 
6
7
  import { makeControllerCommand } from "./make/basic-controller";
7
8
  import { makeSkalfaControllerCommand } from "./make/skalfa-controller";
@@ -81,6 +82,7 @@ export function runCli() {
81
82
  program.addCommand(startCommand);
82
83
  program.addCommand(testCommand);
83
84
  program.addCommand(lintCommand);
85
+ program.addCommand(langCommand);
84
86
 
85
87
  program.parse(process.argv);
86
88
  }
@@ -100,11 +102,30 @@ function executeCommand(commandLine: string): void {
100
102
  });
101
103
  }
102
104
 
105
+
106
+
107
+ export const langCommand = new Command("lang")
108
+ .description("Manage and compile type-safe translation resources for @skalfa/lang.")
109
+ .argument("<action>", "action to perform: build, dev")
110
+ .option("-q, --quiet", "Run in quiet mode (suppress verbose logs)")
111
+ .action(async (action: string, options: { quiet?: boolean }) => {
112
+ if (action === "build") {
113
+ const success = await runBuildLang(process.cwd(), false, !!options.quiet);
114
+ if (!success) process.exit(1);
115
+ process.exit(0);
116
+ } else if (action === "dev") {
117
+ await startDevLang(process.cwd(), !!options.quiet);
118
+ } else {
119
+ console.error(`Unknown action "${action}". Use "build" or "dev".`);
120
+ process.exit(1);
121
+ }
122
+ });
123
+
103
124
  export const devCommand = new Command("dev")
104
125
  .description("Start development server")
105
126
  .action(() => {
106
127
  const pm = getPackageManager();
107
- executeCommand(`concurrently --raw "${pm} run watch" "${pm} run skalfa watch:barrels" "skalfa lang dev --quiet"`);
128
+ executeCommand(`concurrently --raw "${pm} run watch" "${pm} run skalfa watch:barrels" "${pm} run skalfa lang dev --quiet"`);
108
129
  });
109
130
 
110
131
  export const watchCommand = new Command("watch")