@levrbet/shared 0.1.107 → 0.1.108
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/server/middleware/auth/cloudflare.handler.d.ts +1 -1
- package/dist/server/middleware/auth/cloudflare.handler.js +1 -1
- package/dist/server/middleware/auth/cloudflare.handler.js.map +1 -1
- package/dist/server/middleware/auth/hmac.handler.d.ts +1 -1
- package/dist/server/middleware/auth/hmac.handler.js +1 -1
- package/dist/server/middleware/auth/hmac.handler.js.map +1 -1
- package/dist/server/middleware/auth/privy.handler.d.ts +1 -1
- package/dist/server/middleware/auth/privy.handler.js +1 -1
- package/dist/server/middleware/auth/privy.handler.js.map +1 -1
- package/dist/server/middleware/multiAuth.middleware.d.ts +1 -1
- package/dist/server/middleware/multiAuth.middleware.js +1 -1
- package/dist/server/middleware/multiAuth.middleware.js.map +1 -1
- package/dist/server/services/hmac.service.d.ts +26 -12
- package/dist/server/services/hmac.service.js +65 -16
- package/dist/server/services/hmac.service.js.map +1 -1
- package/dist/server/types/index.d.ts +1 -1
- package/dist/server/types/index.js +1 -1
- package/dist/server/types/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/server/types/express.types.d.ts +0 -26
- package/dist/server/types/express.types.js +0 -3
- package/dist/server/types/express.types.js.map +0 -1
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.handleCloudflareAuth = handleCloudflareAuth;
|
|
4
4
|
const core_1 = require("../../../core");
|
|
5
5
|
const services_1 = require("../../services");
|
|
6
|
-
require("../../types/express
|
|
6
|
+
require("../../types/express");
|
|
7
7
|
/**
|
|
8
8
|
* Handles Cloudflare Access authentication
|
|
9
9
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudflare.handler.js","sourceRoot":"","sources":["../../../../src/server/middleware/auth/cloudflare.handler.ts"],"names":[],"mappings":";;AASA,oDAwBC;AAhCD,wCAAwC;AACxC,6CAAsD;AAEtD
|
|
1
|
+
{"version":3,"file":"cloudflare.handler.js","sourceRoot":"","sources":["../../../../src/server/middleware/auth/cloudflare.handler.ts"],"names":[],"mappings":";;AASA,oDAwBC;AAhCD,wCAAwC;AACxC,6CAAsD;AAEtD,+BAA4B;AAE5B;;GAEG;AACI,KAAK,UAAU,oBAAoB,CAAC,GAAY;IACnD,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,yBAAyB,CAAC,EAAE,QAAQ,EAAE,CAAA;IAE9D,IAAI,CAAC,GAAG,EAAE,CAAC;QACP,OAAO;YACH,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,wCAAwC;YAC/C,UAAU,EAAE,GAAG;SAClB,CAAA;IACL,CAAC;IAED,IAAI,CAAC;QACD,MAAM,gCAAqB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QAC1C,GAAG,CAAC,UAAU,GAAG,eAAQ,CAAC,UAAU,CAAA;QACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC5B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,MAAM,QAAQ,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACjE,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,QAAQ,CAAC,CAAA;QAC7D,OAAO;YACH,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,2BAA2B,QAAQ,EAAE;YAC5C,UAAU,EAAE,GAAG;SAClB,CAAA;IACL,CAAC;AACL,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Request } from "express";
|
|
2
2
|
import { MultiAuthOptions } from "../../../core";
|
|
3
3
|
import type { AuthResult } from "../../types/auth.types";
|
|
4
|
-
import "../../types/express
|
|
4
|
+
import "../../types/express";
|
|
5
5
|
/**
|
|
6
6
|
* Handles HMAC authentication (user API keys)
|
|
7
7
|
*/
|
|
@@ -11,7 +11,7 @@ const core_1 = require("../../../core");
|
|
|
11
11
|
const config_1 = require("../../config");
|
|
12
12
|
const repositories_1 = require("../../repositories");
|
|
13
13
|
const services_1 = require("../../services");
|
|
14
|
-
require("../../types/express
|
|
14
|
+
require("../../types/express");
|
|
15
15
|
/**
|
|
16
16
|
* Validates that the API key has all the required scopes
|
|
17
17
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hmac.handler.js","sourceRoot":"","sources":["../../../../src/server/middleware/auth/hmac.handler.ts"],"names":[],"mappings":";;;;;AAiKA,wCAEC;AAKD,sDAEC;AA1KD,oDAA2B;AAE3B,4CAAmB;AAEnB,wCAAuE;AAEvE,yCAAiD;AACjD,qDAAqD;AACrD,6CAA8C;AAE9C
|
|
1
|
+
{"version":3,"file":"hmac.handler.js","sourceRoot":"","sources":["../../../../src/server/middleware/auth/hmac.handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Request } from "express";
|
|
2
2
|
import { LevrAuth, PrivyRole } from "../../../core";
|
|
3
3
|
import type { AuthResult } from "../../types/auth.types";
|
|
4
|
-
import "../../types/express
|
|
4
|
+
import "../../types/express";
|
|
5
5
|
/**
|
|
6
6
|
* Handles Privy authentication (User or Admin)
|
|
7
7
|
*/
|
|
@@ -4,7 +4,7 @@ exports.handlePrivyAuth = handlePrivyAuth;
|
|
|
4
4
|
const viem_1 = require("viem");
|
|
5
5
|
const core_1 = require("../../../core");
|
|
6
6
|
const services_1 = require("../../services");
|
|
7
|
-
require("../../types/express
|
|
7
|
+
require("../../types/express");
|
|
8
8
|
/**
|
|
9
9
|
* Handles Privy authentication (User or Admin)
|
|
10
10
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"privy.handler.js","sourceRoot":"","sources":["../../../../src/server/middleware/auth/privy.handler.ts"],"names":[],"mappings":";;AAUA,0CAyBC;AAlCD,+BAA4C;AAC5C,wCAAyH;AACzH,6CAA6C;AAE7C
|
|
1
|
+
{"version":3,"file":"privy.handler.js","sourceRoot":"","sources":["../../../../src/server/middleware/auth/privy.handler.ts"],"names":[],"mappings":";;AAUA,0CAyBC;AAlCD,+BAA4C;AAC5C,wCAAyH;AACzH,6CAA6C;AAE7C,+BAA4B;AAE5B;;GAEG;AACI,KAAK,UAAU,eAAe,CAAC,GAAY,EAAE,IAAe,EAAE,QAAkB;IACnF,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,gCAAyB,CAAC,EAAE,QAAQ,EAAE,CAAA;IACrE,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,4BAAqB,CAAC,EAAE,QAAQ,EAAE,CAAA;IACnE,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,yBAAkB,CAAC,EAAE,QAAQ,EAAE,CAAA;IAE9D,IAAI,CAAC,UAAU,IAAI,CAAC,YAAY,EAAE,CAAC;QAC/B,OAAO;YACH,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,WAAW,gCAAyB,OAAO,4BAAqB,SAAS;YAChF,UAAU,EAAE,GAAG;SAClB,CAAA;IACL,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,uBAAY,CAAC,YAAY,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;IAEjG,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,6BAA6B,EAAE,UAAU,EAAE,GAAG,EAAE,CAAA;IACpF,CAAC;IAED,mBAAmB;IACnB,GAAG,CAAC,SAAS,GAAG,SAAS,CAAA;IACzB,GAAG,CAAC,UAAU,GAAG,UAAU,IAAI,IAAA,gBAAS,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAA,iBAAU,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,uBAAY,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAA;IACzH,GAAG,CAAC,UAAU,GAAG,QAAQ,CAAA;IAEzB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;AAC5B,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.multiAuth = multiAuth;
|
|
4
4
|
const core_1 = require("../../core");
|
|
5
|
-
require("../types/express
|
|
5
|
+
require("../types/express");
|
|
6
6
|
const auth_1 = require("./auth");
|
|
7
7
|
/**
|
|
8
8
|
* Multi-auth middleware factory
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multiAuth.middleware.js","sourceRoot":"","sources":["../../../src/server/middleware/multiAuth.middleware.ts"],"names":[],"mappings":";;AAiCA,8BA6DC;AA7FD,qCAAoF;AAEpF,
|
|
1
|
+
{"version":3,"file":"multiAuth.middleware.js","sourceRoot":"","sources":["../../../src/server/middleware/multiAuth.middleware.ts"],"names":[],"mappings":";;AAiCA,8BA6DC;AA7FD,qCAAoF;AAEpF,4BAAyB;AACzB,iCAAqG;AAErG;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,SAAgB,SAAS,CAAC,OAAyB;IAC/C,OAAO,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAiB,EAAE;QAC5E,MAAM,iBAAiB,GAAG,GAAG,CAAC,MAAM,CAAC,uBAAgB,CAAC,CAAA;QAEtD,oCAAoC;QACpC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACrB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACjB,KAAK,EAAE,WAAW,uBAAgB,SAAS;gBAC3C,gBAAgB,EAAE,OAAO,CAAC,OAAO;aACpC,CAAC,CAAA;YACF,OAAM;QACV,CAAC;QAED,4DAA4D;QAC5D,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAA6B,CAAC,EAAE,CAAC;YAC3D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACjB,KAAK,EAAE,4BAA4B,iBAAiB,EAAE;gBACtD,gBAAgB,EAAE,OAAO,CAAC,OAAO;aACpC,CAAC,CAAA;YACF,OAAM;QACV,CAAC;QAED,IAAI,MAAkB,CAAA;QAEtB,oCAAoC;QACpC,QAAQ,iBAAiB,EAAE,CAAC;YACxB,KAAK,eAAQ,CAAC,IAAI;gBACd,MAAM,GAAG,MAAM,IAAA,qBAAc,EAAC,GAAG,EAAE,OAAO,CAAC,CAAA;gBAC3C,MAAK;YAET,KAAK,eAAQ,CAAC,YAAY;gBACtB,MAAM,GAAG,MAAM,IAAA,4BAAqB,EAAC,GAAG,EAAE,OAAO,CAAC,CAAA;gBAClD,MAAK;YAET,KAAK,eAAQ,CAAC,UAAU;gBACpB,MAAM,GAAG,MAAM,IAAA,sBAAe,EAAC,GAAG,EAAE,gBAAS,CAAC,IAAI,EAAE,eAAQ,CAAC,UAAU,CAAC,CAAA;gBACxE,MAAK;YAET,KAAK,eAAQ,CAAC,WAAW;gBACrB,MAAM,GAAG,MAAM,IAAA,sBAAe,EAAC,GAAG,EAAE,gBAAS,CAAC,KAAK,EAAE,eAAQ,CAAC,WAAW,CAAC,CAAA;gBAC1E,MAAK;YAET,KAAK,eAAQ,CAAC,UAAU;gBACpB,MAAM,GAAG,MAAM,IAAA,2BAAoB,EAAC,GAAG,CAAC,CAAA;gBACxC,MAAK;YAET;gBACI,MAAM,GAAG;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,wBAAwB,iBAAiB,EAAE;oBAClD,UAAU,EAAE,GAAG;iBAClB,CAAA;QACT,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAClB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;YAClE,OAAM;QACV,CAAC;QAED,IAAI,EAAE,CAAA;IACV,CAAC,CAAA;AACL,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { AxiosInstance } from "axios";
|
|
1
2
|
interface GenerateAuthHeadersParams {
|
|
2
3
|
apiKeyId: string;
|
|
3
4
|
secretKey: string;
|
|
@@ -13,26 +14,39 @@ interface HmacAuthHeaders {
|
|
|
13
14
|
"x-request-timestamp": string;
|
|
14
15
|
"x-request-nonce": string;
|
|
15
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* Handles HMAC signing and optional Axios integration
|
|
19
|
+
*/
|
|
16
20
|
declare class HmacService {
|
|
17
21
|
private initialized;
|
|
18
22
|
private serviceApiKeyId?;
|
|
19
23
|
private serviceSecretKey?;
|
|
20
|
-
/**
|
|
21
|
-
* Initializes the HMAC service using SERVICE_API_KEY_ID and SERVICE_API_KEY_SECRET
|
|
22
|
-
* from environment. Call this on application startup if you want to use
|
|
23
|
-
* `generateServiceAuthHeaders` without passing explicit keys.
|
|
24
|
-
*/
|
|
25
24
|
init(): void;
|
|
26
|
-
/**
|
|
27
|
-
* Generates HMAC authentication headers for making authenticated requests
|
|
28
|
-
*/
|
|
29
25
|
generateAuthHeaders({ apiKeyId, secretKey, method, path, body, nonce, isService, }: GenerateAuthHeadersParams): HmacAuthHeaders;
|
|
26
|
+
generateServiceAuthHeaders(params: Omit<GenerateAuthHeadersParams, "isService" | "apiKeyId" | "secretKey"> & Partial<Pick<GenerateAuthHeadersParams, "apiKeyId" | "secretKey">>): HmacAuthHeaders;
|
|
30
27
|
/**
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
28
|
+
* Attaches an Axios request interceptor that signs requests when config.sign === true
|
|
29
|
+
*
|
|
30
|
+
* Usage example:
|
|
31
|
+
*
|
|
32
|
+
* import axios from "axios"
|
|
33
|
+
* import { hmacService } from "@levr/shared/src/server/services/hmac.service"
|
|
34
|
+
*
|
|
35
|
+
* // On startup (loads SERVICE_API_KEY_ID and SERVICE_API_KEY_SECRET from env)
|
|
36
|
+
* hmacService.init()
|
|
37
|
+
*
|
|
38
|
+
* // Create axios client and attach the interceptor
|
|
39
|
+
* const client = axios.create({ baseURL: "https://api.my-service.com" })
|
|
40
|
+
* hmacService.attachInterceptor(client)
|
|
41
|
+
*
|
|
42
|
+
* // Make a signed request by setting `sign: true`
|
|
43
|
+
* await client.post(
|
|
44
|
+
* "/v1/some/endpoint",
|
|
45
|
+
* { foo: "bar" },
|
|
46
|
+
* { sign: true }
|
|
47
|
+
* )
|
|
34
48
|
*/
|
|
35
|
-
|
|
49
|
+
attachInterceptor(client: AxiosInstance): void;
|
|
36
50
|
}
|
|
37
51
|
export declare const hmacService: HmacService;
|
|
38
52
|
export {};
|
|
@@ -8,15 +8,13 @@ const crypto_1 = __importDefault(require("crypto"));
|
|
|
8
8
|
const core_1 = require("../../core");
|
|
9
9
|
const dotenv_1 = require("../config/dotenv");
|
|
10
10
|
const crypto_service_1 = require("./crypto.service");
|
|
11
|
+
/**
|
|
12
|
+
* Handles HMAC signing and optional Axios integration
|
|
13
|
+
*/
|
|
11
14
|
class HmacService {
|
|
12
15
|
constructor() {
|
|
13
16
|
this.initialized = false;
|
|
14
17
|
}
|
|
15
|
-
/**
|
|
16
|
-
* Initializes the HMAC service using SERVICE_API_KEY_ID and SERVICE_API_KEY_SECRET
|
|
17
|
-
* from environment. Call this on application startup if you want to use
|
|
18
|
-
* `generateServiceAuthHeaders` without passing explicit keys.
|
|
19
|
-
*/
|
|
20
18
|
init() {
|
|
21
19
|
if (this.initialized)
|
|
22
20
|
return;
|
|
@@ -25,13 +23,9 @@ class HmacService {
|
|
|
25
23
|
this.serviceApiKeyId = SERVICE_API_KEY_ID;
|
|
26
24
|
this.serviceSecretKey = SERVICE_API_KEY_SECRET;
|
|
27
25
|
}
|
|
28
|
-
/**
|
|
29
|
-
* Generates HMAC authentication headers for making authenticated requests
|
|
30
|
-
*/
|
|
31
26
|
generateAuthHeaders({ apiKeyId, secretKey, method, path, body, nonce, isService = false, }) {
|
|
32
27
|
const ts = Date.now();
|
|
33
28
|
const actualNonce = nonce || crypto_1.default.randomBytes(16).toString("hex");
|
|
34
|
-
// Generate signature using the crypto service
|
|
35
29
|
const signature = crypto_service_1.cryptoService.signRequest({
|
|
36
30
|
method: method.toUpperCase(),
|
|
37
31
|
path,
|
|
@@ -40,19 +34,13 @@ class HmacService {
|
|
|
40
34
|
nonce: actualNonce,
|
|
41
35
|
secretKey,
|
|
42
36
|
});
|
|
43
|
-
|
|
37
|
+
return {
|
|
44
38
|
"x-levr-auth-type": isService ? core_1.LevrAuth.SERVICE_HMAC : core_1.LevrAuth.HMAC,
|
|
45
39
|
Authorization: `HMAC ${apiKeyId}:${signature}`,
|
|
46
40
|
"x-request-timestamp": ts.toString(),
|
|
47
41
|
"x-request-nonce": actualNonce,
|
|
48
42
|
};
|
|
49
|
-
return headers;
|
|
50
43
|
}
|
|
51
|
-
/**
|
|
52
|
-
* Generates service-to-service HMAC authentication headers.
|
|
53
|
-
* If `apiKeyId` and `secretKey` are not provided in `params`, the stored
|
|
54
|
-
* service keys (set via `init()`) will be used. Throws if keys are missing.
|
|
55
|
-
*/
|
|
56
44
|
generateServiceAuthHeaders(params) {
|
|
57
45
|
const apiKeyId = params.apiKeyId ?? this.serviceApiKeyId;
|
|
58
46
|
const secretKey = params.secretKey ?? this.serviceSecretKey;
|
|
@@ -61,6 +49,67 @@ class HmacService {
|
|
|
61
49
|
}
|
|
62
50
|
return this.generateAuthHeaders({ ...params, apiKeyId, secretKey, isService: true });
|
|
63
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Attaches an Axios request interceptor that signs requests when config.sign === true
|
|
54
|
+
*
|
|
55
|
+
* Usage example:
|
|
56
|
+
*
|
|
57
|
+
* import axios from "axios"
|
|
58
|
+
* import { hmacService } from "@levr/shared/src/server/services/hmac.service"
|
|
59
|
+
*
|
|
60
|
+
* // On startup (loads SERVICE_API_KEY_ID and SERVICE_API_KEY_SECRET from env)
|
|
61
|
+
* hmacService.init()
|
|
62
|
+
*
|
|
63
|
+
* // Create axios client and attach the interceptor
|
|
64
|
+
* const client = axios.create({ baseURL: "https://api.my-service.com" })
|
|
65
|
+
* hmacService.attachInterceptor(client)
|
|
66
|
+
*
|
|
67
|
+
* // Make a signed request by setting `sign: true`
|
|
68
|
+
* await client.post(
|
|
69
|
+
* "/v1/some/endpoint",
|
|
70
|
+
* { foo: "bar" },
|
|
71
|
+
* { sign: true }
|
|
72
|
+
* )
|
|
73
|
+
*/
|
|
74
|
+
attachInterceptor(client) {
|
|
75
|
+
client.interceptors.request.use((config) => {
|
|
76
|
+
if (!config.sign)
|
|
77
|
+
return config; // skip if not explicitly signed
|
|
78
|
+
// Determine the pathname to sign (server expects path without query string)
|
|
79
|
+
// Support both absolute URLs and relative paths.
|
|
80
|
+
const rawUrl = config.url || "/";
|
|
81
|
+
let pathname;
|
|
82
|
+
if (rawUrl.startsWith("http://") || rawUrl.startsWith("https://")) {
|
|
83
|
+
try {
|
|
84
|
+
pathname = new URL(rawUrl).pathname;
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
// Fallback to splitting if URL parsing fails
|
|
88
|
+
pathname = rawUrl.split("?", 2)[0] || "/";
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
pathname = rawUrl.split("?", 2)[0] || "/";
|
|
93
|
+
if (!pathname.startsWith("/"))
|
|
94
|
+
pathname = `/${pathname}`;
|
|
95
|
+
}
|
|
96
|
+
const headers = this.generateServiceAuthHeaders({
|
|
97
|
+
method: config.method?.toUpperCase() || "GET",
|
|
98
|
+
path: pathname,
|
|
99
|
+
body: config.data || {},
|
|
100
|
+
});
|
|
101
|
+
// Merge headers safely for both AxiosHeaders and plain object
|
|
102
|
+
const target = config.headers;
|
|
103
|
+
if (target && typeof target.set === "function") {
|
|
104
|
+
for (const [k, v] of Object.entries(headers))
|
|
105
|
+
target.set(k, v);
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
config.headers = { ...config.headers, ...headers };
|
|
109
|
+
}
|
|
110
|
+
return config;
|
|
111
|
+
});
|
|
112
|
+
}
|
|
64
113
|
}
|
|
65
114
|
exports.hmacService = new HmacService();
|
|
66
115
|
//# sourceMappingURL=hmac.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hmac.service.js","sourceRoot":"","sources":["../../../src/server/services/hmac.service.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"hmac.service.js","sourceRoot":"","sources":["../../../src/server/services/hmac.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export * from "./auth.types";
|
|
2
|
-
export * from "./express
|
|
2
|
+
export * from "./express";
|
|
@@ -15,5 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./auth.types"), exports);
|
|
18
|
-
__exportStar(require("./express
|
|
18
|
+
__exportStar(require("./express"), exports);
|
|
19
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA4B;AAC5B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA4B;AAC5B,4CAAyB"}
|
package/package.json
CHANGED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import type { User as PrivyUser } from "@privy-io/node";
|
|
2
|
-
import type { Address } from "viem";
|
|
3
|
-
import type { LevrService } from "../../core";
|
|
4
|
-
declare module "express-serve-static-core" {
|
|
5
|
-
interface Request {
|
|
6
|
-
/**
|
|
7
|
-
* Authenticated Privy user (set by PRIVY_USER or PRIVY_ADMIN auth)
|
|
8
|
-
*/
|
|
9
|
-
privyUser?: PrivyUser;
|
|
10
|
-
/**
|
|
11
|
-
* Authenticated API key user (set by HMAC or SERVICE_HMAC auth)
|
|
12
|
-
*/
|
|
13
|
-
apiUser?: {
|
|
14
|
-
id: string;
|
|
15
|
-
service?: LevrService | null;
|
|
16
|
-
};
|
|
17
|
-
/**
|
|
18
|
-
* Ethereum address associated with the authenticated user
|
|
19
|
-
*/
|
|
20
|
-
ethAddress?: Address | null;
|
|
21
|
-
/**
|
|
22
|
-
* The authentication method used for this request
|
|
23
|
-
*/
|
|
24
|
-
authMethod?: string;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"express.types.js","sourceRoot":"","sources":["../../../src/server/types/express.types.ts"],"names":[],"mappings":""}
|