@rodit/rodit-auth-be 9.11.14
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 +54 -0
- package/README.md +3543 -0
- package/index.js +1884 -0
- package/lib/auth/authentication.js +1971 -0
- package/lib/auth/roditmanager.js +627 -0
- package/lib/auth/sessionmanager.js +1302 -0
- package/lib/auth/tokenservice.js +2418 -0
- package/lib/blockchain/blockchainservice.js +1715 -0
- package/lib/blockchain/statemanager.js +1614 -0
- package/lib/middleware/authenticationmw.js +2301 -0
- package/lib/middleware/environcredentialstoremw.js +176 -0
- package/lib/middleware/filecredentialstoremw.js +158 -0
- package/lib/middleware/loggingmw.js +82 -0
- package/lib/middleware/performanceexamplemw.js +58 -0
- package/lib/middleware/performancemw.js +172 -0
- package/lib/middleware/ratelimitmw.js +171 -0
- package/lib/middleware/validatepermissionsmw.js +439 -0
- package/lib/middleware/vaultcredentialstoremw.js +617 -0
- package/lib/middleware/versioningmw.js +142 -0
- package/lib/middleware/webhookhandlermw.js +1388 -0
- package/package.json +57 -0
- package/services/configsdk.js +588 -0
- package/services/env.js +34 -0
- package/services/error-response.js +29 -0
- package/services/logger.js +160 -0
- package/services/performanceservice.js +568 -0
- package/services/utils.js +1024 -0
- package/services/versionmanager.js +81 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Version Manager for RODiT SDK
|
|
3
|
+
*
|
|
4
|
+
* Handles API versioning for client-side requests, ensuring proper version headers
|
|
5
|
+
* are included in all API calls.
|
|
6
|
+
*
|
|
7
|
+
* Copyright (c) 2026 Discernible IO. All rights reserved.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
const config = require('./configsdk');
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Version Manager class for handling API versioning in client requests
|
|
14
|
+
*/
|
|
15
|
+
class VersionManager {
|
|
16
|
+
/**
|
|
17
|
+
* Create a new VersionManager instance
|
|
18
|
+
* @param {Object} versioning - Configuration versioning
|
|
19
|
+
* @param {string} [versioning.version] - API version to use
|
|
20
|
+
*/
|
|
21
|
+
constructor(versioning = {}) {
|
|
22
|
+
this.version = versioning.version || config.get('API_VERSION');
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Set the API version to use for requests
|
|
27
|
+
* @param {string} version - API version in format X.Y.Z
|
|
28
|
+
* @returns {VersionManager} This instance for chaining
|
|
29
|
+
*/
|
|
30
|
+
setVersion(version) {
|
|
31
|
+
if (!version || typeof version !== 'string') {
|
|
32
|
+
throw new Error('Version must be a valid string in format X.Y.Z');
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// Validate version format
|
|
36
|
+
if (!version.match(/^\d+\.\d+\.\d+$/)) {
|
|
37
|
+
throw new Error('Version must be in format X.Y.Z (e.g., 1.0.0)');
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
this.version = version;
|
|
41
|
+
return this;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Apply version headers to a request versioning object
|
|
47
|
+
* @param {Object} versioning - Request versioning object (e.g., for fetch or axios)
|
|
48
|
+
* @returns {Object} Updated versioning with version headers
|
|
49
|
+
*/
|
|
50
|
+
applyVersionHeaders(versioning = {}) {
|
|
51
|
+
if (!versioning.headers) {
|
|
52
|
+
versioning.headers = {};
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// Always apply version header
|
|
56
|
+
versioning.headers['X-API-Version'] = this.version;
|
|
57
|
+
|
|
58
|
+
return versioning;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Create a headers object with version headers
|
|
63
|
+
* @returns {Object} Headers object with version headers
|
|
64
|
+
*/
|
|
65
|
+
getVersionHeaders() {
|
|
66
|
+
const headers = {};
|
|
67
|
+
|
|
68
|
+
// Always include version header
|
|
69
|
+
headers['X-API-Version'] = this.version;
|
|
70
|
+
|
|
71
|
+
return headers;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// Create a singleton instance
|
|
76
|
+
const versionManager = new VersionManager();
|
|
77
|
+
|
|
78
|
+
module.exports = {
|
|
79
|
+
VersionManager,
|
|
80
|
+
versionManager
|
|
81
|
+
};
|