@aifabrix/miso-client 4.3.1 → 4.4.1
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 +1253 -1215
- package/README.md +22 -23
- package/dist/api/applications.api.d.ts +42 -0
- package/dist/api/applications.api.d.ts.map +1 -0
- package/dist/api/applications.api.js +91 -0
- package/dist/api/applications.api.js.map +1 -0
- package/dist/api/index.d.ts +5 -0
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +2 -0
- package/dist/api/index.js.map +1 -1
- package/dist/api/types/applications.types.d.ts +58 -0
- package/dist/api/types/applications.types.d.ts.map +1 -0
- package/dist/api/types/applications.types.js +7 -0
- package/dist/api/types/applications.types.js.map +1 -0
- package/dist/api/types/encryption.types.d.ts +2 -2
- package/dist/api/types/encryption.types.d.ts.map +1 -1
- package/dist/express/client-token-endpoint.d.ts +2 -2
- package/dist/express/client-token-endpoint.d.ts.map +1 -1
- package/dist/express/client-token-endpoint.js +21 -3
- package/dist/express/client-token-endpoint.js.map +1 -1
- package/dist/express/error-handler.d.ts +8 -1
- package/dist/express/error-handler.d.ts.map +1 -1
- package/dist/express/error-handler.js +8 -1
- package/dist/express/error-handler.js.map +1 -1
- package/dist/express/error-response.d.ts +16 -4
- package/dist/express/error-response.d.ts.map +1 -1
- package/dist/express/error-response.js +16 -4
- package/dist/express/error-response.js.map +1 -1
- package/dist/express/error-types.d.ts +13 -0
- package/dist/express/error-types.d.ts.map +1 -1
- package/dist/express/error-types.js +13 -0
- package/dist/express/error-types.js.map +1 -1
- package/dist/express/index.d.ts +8 -4
- package/dist/express/index.d.ts.map +1 -1
- package/dist/express/index.js.map +1 -1
- package/dist/express/logger-context.middleware.d.ts +8 -4
- package/dist/express/logger-context.middleware.d.ts.map +1 -1
- package/dist/express/logger-context.middleware.js +9 -4
- package/dist/express/logger-context.middleware.js.map +1 -1
- package/dist/express/response-middleware.d.ts +4 -0
- package/dist/express/response-middleware.d.ts.map +1 -1
- package/dist/express/response-middleware.js +4 -0
- package/dist/express/response-middleware.js.map +1 -1
- package/dist/index.d.ts +207 -34
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +214 -36
- package/dist/index.js.map +1 -1
- package/dist/services/application-context.service.d.ts +0 -1
- package/dist/services/application-context.service.d.ts.map +1 -1
- package/dist/services/application-context.service.js +12 -7
- package/dist/services/application-context.service.js.map +1 -1
- package/dist/services/auth-cache-helpers.d.ts +22 -0
- package/dist/services/auth-cache-helpers.d.ts.map +1 -0
- package/dist/services/auth-cache-helpers.js +85 -0
- package/dist/services/auth-cache-helpers.js.map +1 -0
- package/dist/services/auth-environment-token.d.ts +20 -0
- package/dist/services/auth-environment-token.d.ts.map +1 -0
- package/dist/services/auth-environment-token.js +94 -0
- package/dist/services/auth-environment-token.js.map +1 -0
- package/dist/services/auth-error-handler.d.ts.map +1 -1
- package/dist/services/auth-error-handler.js +1 -1
- package/dist/services/auth-error-handler.js.map +1 -1
- package/dist/services/auth.service.d.ts +16 -28
- package/dist/services/auth.service.d.ts.map +1 -1
- package/dist/services/auth.service.js +112 -208
- package/dist/services/auth.service.js.map +1 -1
- package/dist/services/browser-permission.service.d.ts +3 -1
- package/dist/services/browser-permission.service.d.ts.map +1 -1
- package/dist/services/browser-permission.service.js +44 -9
- package/dist/services/browser-permission.service.js.map +1 -1
- package/dist/services/browser-role.service.d.ts +3 -1
- package/dist/services/browser-role.service.d.ts.map +1 -1
- package/dist/services/browser-role.service.js +44 -9
- package/dist/services/browser-role.service.js.map +1 -1
- package/dist/services/cache.service.d.ts.map +1 -1
- package/dist/services/cache.service.js +8 -2
- package/dist/services/cache.service.js.map +1 -1
- package/dist/services/encryption.service.d.ts +1 -1
- package/dist/services/encryption.service.js +2 -2
- package/dist/services/encryption.service.js.map +1 -1
- package/dist/services/logger/index.d.ts +6 -4
- package/dist/services/logger/index.d.ts.map +1 -1
- package/dist/services/logger/index.js +1 -4
- package/dist/services/logger/index.js.map +1 -1
- package/dist/services/logger/logger-chain.d.ts +18 -8
- package/dist/services/logger/logger-chain.d.ts.map +1 -1
- package/dist/services/logger/logger-chain.js +35 -41
- package/dist/services/logger/logger-chain.js.map +1 -1
- package/dist/services/logger/logger-context-storage.d.ts +2 -0
- package/dist/services/logger/logger-context-storage.d.ts.map +1 -1
- package/dist/services/logger/logger-context-storage.js.map +1 -1
- package/dist/services/logger/logger-context.d.ts +0 -22
- package/dist/services/logger/logger-context.d.ts.map +1 -1
- package/dist/services/logger/logger-context.js +2 -50
- package/dist/services/logger/logger-context.js.map +1 -1
- package/dist/services/logger/logger.service.d.ts +37 -14
- package/dist/services/logger/logger.service.d.ts.map +1 -1
- package/dist/services/logger/logger.service.js +157 -133
- package/dist/services/logger/logger.service.js.map +1 -1
- package/dist/services/logger/unified-logger.service.d.ts.map +1 -1
- package/dist/services/logger/unified-logger.service.js +2 -34
- package/dist/services/logger/unified-logger.service.js.map +1 -1
- package/dist/services/permission.service.d.ts +12 -5
- package/dist/services/permission.service.d.ts.map +1 -1
- package/dist/services/permission.service.js +50 -10
- package/dist/services/permission.service.js.map +1 -1
- package/dist/services/redis.service.d.ts +29 -0
- package/dist/services/redis.service.d.ts.map +1 -1
- package/dist/services/redis.service.js +48 -5
- package/dist/services/redis.service.js.map +1 -1
- package/dist/services/role.service.d.ts +12 -5
- package/dist/services/role.service.d.ts.map +1 -1
- package/dist/services/role.service.js +38 -9
- package/dist/services/role.service.js.map +1 -1
- package/dist/services/token-validation.service.d.ts +30 -0
- package/dist/services/token-validation.service.d.ts.map +1 -1
- package/dist/services/token-validation.service.js +30 -0
- package/dist/services/token-validation.service.js.map +1 -1
- package/dist/types/config.types.d.ts +38 -1
- package/dist/types/config.types.d.ts.map +1 -1
- package/dist/types/config.types.js.map +1 -1
- package/dist/utils/audit-log-queue.d.ts.map +1 -1
- package/dist/utils/audit-log-queue.js +3 -0
- package/dist/utils/audit-log-queue.js.map +1 -1
- package/dist/utils/client-token-manager.d.ts.map +1 -1
- package/dist/utils/client-token-manager.js +9 -1
- package/dist/utils/client-token-manager.js.map +1 -1
- package/dist/utils/config-loader.d.ts +3 -1
- package/dist/utils/config-loader.d.ts.map +1 -1
- package/dist/utils/config-loader.js +5 -3
- package/dist/utils/config-loader.js.map +1 -1
- package/dist/utils/data-client-audit.d.ts.map +1 -1
- package/dist/utils/data-client-audit.js +15 -2
- package/dist/utils/data-client-audit.js.map +1 -1
- package/dist/utils/data-client-auth.d.ts.map +1 -1
- package/dist/utils/data-client-auth.js +17 -9
- package/dist/utils/data-client-auth.js.map +1 -1
- package/dist/utils/data-client-auto-init.d.ts.map +1 -1
- package/dist/utils/data-client-auto-init.js +110 -119
- package/dist/utils/data-client-auto-init.js.map +1 -1
- package/dist/utils/data-client-request.d.ts +0 -3
- package/dist/utils/data-client-request.d.ts.map +1 -1
- package/dist/utils/data-client-request.js +148 -97
- package/dist/utils/data-client-request.js.map +1 -1
- package/dist/utils/data-client-response.d.ts.map +1 -1
- package/dist/utils/data-client-response.js +93 -63
- package/dist/utils/data-client-response.js.map +1 -1
- package/dist/utils/data-client-utils.d.ts +2 -1
- package/dist/utils/data-client-utils.d.ts.map +1 -1
- package/dist/utils/data-client-utils.js +2 -1
- package/dist/utils/data-client-utils.js.map +1 -1
- package/dist/utils/data-client.d.ts.map +1 -1
- package/dist/utils/data-client.js +4 -1
- package/dist/utils/data-client.js.map +1 -1
- package/dist/utils/data-masker.d.ts +3 -0
- package/dist/utils/data-masker.d.ts.map +1 -1
- package/dist/utils/data-masker.js +3 -0
- package/dist/utils/data-masker.js.map +1 -1
- package/dist/utils/filter-schema.utils.d.ts.map +1 -1
- package/dist/utils/filter-schema.utils.js +64 -46
- package/dist/utils/filter-schema.utils.js.map +1 -1
- package/dist/utils/filter.utils.d.ts.map +1 -1
- package/dist/utils/filter.utils.js +59 -75
- package/dist/utils/filter.utils.js.map +1 -1
- package/dist/utils/http-client-audit.d.ts.map +1 -1
- package/dist/utils/http-client-audit.js +31 -19
- package/dist/utils/http-client-audit.js.map +1 -1
- package/dist/utils/http-client-metadata.d.ts +2 -1
- package/dist/utils/http-client-metadata.d.ts.map +1 -1
- package/dist/utils/http-client-metadata.js +2 -1
- package/dist/utils/http-client-metadata.js.map +1 -1
- package/dist/utils/internal-http-client.d.ts.map +1 -1
- package/dist/utils/internal-http-client.js +13 -7
- package/dist/utils/internal-http-client.js.map +1 -1
- package/package.json +86 -84
package/dist/index.js
CHANGED
|
@@ -17,8 +17,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
17
17
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.autoInitializeDataClient = exports.dataClient = exports.DataClient = exports.loggerContextMiddleware = exports.hasConfig = exports.createClientTokenEndpoint = exports.sendErrorResponse = exports.getErrorTitle = exports.getErrorTypeUri = exports.handleRouteError = exports.setErrorLogger = exports.createErrorResponse = exports.createSuccessResponse = exports.AppError = exports.ValidationHelper = exports.asyncHandlerNamed = exports.asyncHandler = exports.injectResponseHelpers = exports.ResponseHelper = exports.EncryptionError = exports.EncryptionService = exports.handleApiError = exports.transformError = exports.ApiErrorException = exports.MisoClientError = exports.extractRequestContext = exports.extractLoggingContext = exports.validateUrl = exports.isBrowser = exports.resolveKeycloakUrl = exports.resolveControllerUrl = exports.extractClientTokenInfo = exports.getEnvironmentToken = exports.validateOrigin = exports.loadConfig = exports.
|
|
21
|
-
exports.TokenValidationService = exports.getCachedDataClientConfig = void 0;
|
|
20
|
+
exports.TokenValidationService = exports.getCachedDataClientConfig = exports.autoInitializeDataClient = exports.dataClient = exports.DataClient = exports.loggerContextMiddleware = exports.hasConfig = exports.createClientTokenEndpoint = exports.sendErrorResponse = exports.getErrorTitle = exports.getErrorTypeUri = exports.handleRouteError = exports.setErrorLogger = exports.createErrorResponse = exports.createSuccessResponse = exports.AppError = exports.ValidationHelper = exports.asyncHandlerNamed = exports.asyncHandler = exports.injectResponseHelpers = exports.ResponseHelper = exports.EncryptionError = exports.EncryptionService = exports.handleApiError = exports.transformError = exports.ApiErrorException = exports.MisoClientError = exports.extractRequestContext = exports.extractLoggingContext = exports.validateUrl = exports.isBrowser = exports.resolveKeycloakUrl = exports.resolveControllerUrl = exports.extractClientTokenInfo = exports.getEnvironmentToken = exports.validateOrigin = exports.loadConfig = exports.LoggerContextStorage = exports.getLogger = exports.HttpClient = exports.CacheService = exports.RedisService = exports.LoggerService = exports.BrowserRoleService = exports.BrowserPermissionService = exports.PermissionService = exports.RoleService = exports.AuthService = exports.detectAuthMethodFromHeaders = exports.MisoClient = void 0;
|
|
22
21
|
const auth_service_1 = require("./services/auth.service");
|
|
23
22
|
const role_service_1 = require("./services/role.service");
|
|
24
23
|
const permission_service_1 = require("./services/permission.service");
|
|
@@ -133,101 +132,215 @@ class MisoClient {
|
|
|
133
132
|
const origins = allowedOrigins ?? this.config.allowedOrigins;
|
|
134
133
|
return (0, origin_validator_1.validateOrigin)(req, origins);
|
|
135
134
|
}
|
|
136
|
-
/**
|
|
135
|
+
/**
|
|
136
|
+
* Get environment token using client credentials.
|
|
137
|
+
* @returns Environment token string or empty string on failure.
|
|
138
|
+
*/
|
|
137
139
|
async getEnvironmentToken() {
|
|
138
140
|
return this.auth.getEnvironmentToken();
|
|
139
141
|
}
|
|
140
|
-
/**
|
|
142
|
+
/**
|
|
143
|
+
* Initiate login flow and return login URL for browser redirect.
|
|
144
|
+
* @param params - Login parameters.
|
|
145
|
+
* @param params.redirect - Final destination URL after authentication.
|
|
146
|
+
* @param params.state - Optional CSRF protection token.
|
|
147
|
+
* @returns Login response with loginUrl and state.
|
|
148
|
+
*/
|
|
141
149
|
async login(params) {
|
|
142
150
|
return this.auth.login(params);
|
|
143
151
|
}
|
|
144
|
-
/**
|
|
152
|
+
/**
|
|
153
|
+
* Validate token with controller.
|
|
154
|
+
* @param token - User JWT token.
|
|
155
|
+
* @param authStrategy - Optional authentication strategy override.
|
|
156
|
+
* @returns True if token is valid, otherwise false.
|
|
157
|
+
*/
|
|
145
158
|
async validateToken(token, authStrategy) {
|
|
146
159
|
return this.auth.validateToken(token, authStrategy);
|
|
147
160
|
}
|
|
148
|
-
/**
|
|
161
|
+
/**
|
|
162
|
+
* Get user information from token.
|
|
163
|
+
* @param token - User JWT token.
|
|
164
|
+
* @param authStrategy - Optional authentication strategy override.
|
|
165
|
+
* @returns User info or null when not available.
|
|
166
|
+
*/
|
|
149
167
|
async getUser(token, authStrategy) {
|
|
150
168
|
return this.auth.getUser(token, authStrategy);
|
|
151
169
|
}
|
|
152
|
-
/**
|
|
170
|
+
/**
|
|
171
|
+
* Get user information from GET /api/v1/auth/user endpoint.
|
|
172
|
+
* @param token - User JWT token.
|
|
173
|
+
* @param authStrategy - Optional authentication strategy override.
|
|
174
|
+
* @returns User info or null when not available.
|
|
175
|
+
*/
|
|
153
176
|
async getUserInfo(token, authStrategy) {
|
|
154
177
|
return this.auth.getUserInfo(token, authStrategy);
|
|
155
178
|
}
|
|
156
|
-
/**
|
|
179
|
+
/**
|
|
180
|
+
* Check if user is authenticated.
|
|
181
|
+
* @param token - User JWT token.
|
|
182
|
+
* @param authStrategy - Optional authentication strategy override.
|
|
183
|
+
* @returns True if authenticated, otherwise false.
|
|
184
|
+
*/
|
|
157
185
|
async isAuthenticated(token, authStrategy) {
|
|
158
186
|
return this.auth.isAuthenticated(token, authStrategy);
|
|
159
187
|
}
|
|
160
|
-
/**
|
|
188
|
+
/**
|
|
189
|
+
* Logout user.
|
|
190
|
+
* @param params - Logout parameters.
|
|
191
|
+
* @param params.token - User JWT token.
|
|
192
|
+
* @returns Logout response.
|
|
193
|
+
*/
|
|
161
194
|
async logout(params) {
|
|
162
195
|
return this.auth.logout(params);
|
|
163
196
|
}
|
|
164
|
-
/**
|
|
197
|
+
/**
|
|
198
|
+
* Refresh user access token using refresh token.
|
|
199
|
+
* @param refreshToken - Refresh token.
|
|
200
|
+
* @param authStrategy - Optional authentication strategy override.
|
|
201
|
+
* @returns Refresh token response or null on failure.
|
|
202
|
+
*/
|
|
165
203
|
async refreshToken(refreshToken, authStrategy) {
|
|
166
204
|
return this.auth.refreshToken(refreshToken, authStrategy);
|
|
167
205
|
}
|
|
168
|
-
/**
|
|
206
|
+
/**
|
|
207
|
+
* Validate token locally using JWKS (no API call).
|
|
208
|
+
* @param token - User JWT token.
|
|
209
|
+
* @param options - Optional validation options.
|
|
210
|
+
* @returns Validation result.
|
|
211
|
+
*/
|
|
169
212
|
async validateTokenLocal(token, options) {
|
|
170
213
|
return this.tokenValidation.validateTokenLocal(token, options);
|
|
171
214
|
}
|
|
172
|
-
/**
|
|
215
|
+
/**
|
|
216
|
+
* Set or update Keycloak configuration for local validation.
|
|
217
|
+
* @param config - Keycloak configuration.
|
|
218
|
+
*/
|
|
173
219
|
setKeycloakConfig(config) {
|
|
174
220
|
this.tokenValidation.setKeycloakConfig(config);
|
|
175
221
|
}
|
|
176
|
-
/**
|
|
222
|
+
/**
|
|
223
|
+
* Clear JWKS cache.
|
|
224
|
+
* @param jwksUri - Optional JWKS URI to clear.
|
|
225
|
+
*/
|
|
177
226
|
clearJwksCache(jwksUri) {
|
|
178
227
|
this.tokenValidation.clearCache(jwksUri);
|
|
179
228
|
}
|
|
180
|
-
/**
|
|
229
|
+
/**
|
|
230
|
+
* Clear validation result cache.
|
|
231
|
+
*/
|
|
181
232
|
clearValidationCache() {
|
|
182
233
|
this.tokenValidation.clearResultCache();
|
|
183
234
|
}
|
|
184
|
-
/**
|
|
235
|
+
/**
|
|
236
|
+
* Clear all token validation caches (JWKS + results).
|
|
237
|
+
*/
|
|
185
238
|
clearAllTokenCaches() {
|
|
186
239
|
this.tokenValidation.clearAllCaches();
|
|
187
240
|
}
|
|
188
241
|
// ==================== ROLE METHODS ====================
|
|
189
|
-
/**
|
|
242
|
+
/**
|
|
243
|
+
* Get user roles (cached if Redis available).
|
|
244
|
+
* @param token - User JWT token.
|
|
245
|
+
* @param authStrategy - Optional authentication strategy override.
|
|
246
|
+
* @returns Array of roles.
|
|
247
|
+
*/
|
|
190
248
|
async getRoles(token, authStrategy) {
|
|
191
249
|
return this.roles.getRoles(token, authStrategy);
|
|
192
250
|
}
|
|
193
|
-
/**
|
|
251
|
+
/**
|
|
252
|
+
* Check if user has specific role.
|
|
253
|
+
* @param token - User JWT token.
|
|
254
|
+
* @param role - Role to check.
|
|
255
|
+
* @param authStrategy - Optional authentication strategy override.
|
|
256
|
+
* @returns True if user has the role.
|
|
257
|
+
*/
|
|
194
258
|
async hasRole(token, role, authStrategy) {
|
|
195
259
|
return this.roles.hasRole(token, role, authStrategy);
|
|
196
260
|
}
|
|
197
|
-
/**
|
|
261
|
+
/**
|
|
262
|
+
* Check if user has any of the specified roles.
|
|
263
|
+
* @param token - User JWT token.
|
|
264
|
+
* @param roles - Roles to check.
|
|
265
|
+
* @param authStrategy - Optional authentication strategy override.
|
|
266
|
+
* @returns True if user has any of the roles.
|
|
267
|
+
*/
|
|
198
268
|
async hasAnyRole(token, roles, authStrategy) {
|
|
199
269
|
return this.roles.hasAnyRole(token, roles, authStrategy);
|
|
200
270
|
}
|
|
201
|
-
/**
|
|
271
|
+
/**
|
|
272
|
+
* Check if user has all of the specified roles.
|
|
273
|
+
* @param token - User JWT token.
|
|
274
|
+
* @param roles - Roles to check.
|
|
275
|
+
* @param authStrategy - Optional authentication strategy override.
|
|
276
|
+
* @returns True if user has all roles.
|
|
277
|
+
*/
|
|
202
278
|
async hasAllRoles(token, roles, authStrategy) {
|
|
203
279
|
return this.roles.hasAllRoles(token, roles, authStrategy);
|
|
204
280
|
}
|
|
205
|
-
/**
|
|
281
|
+
/**
|
|
282
|
+
* Force refresh roles from controller (bypass cache).
|
|
283
|
+
* @param token - User JWT token.
|
|
284
|
+
* @param authStrategy - Optional authentication strategy override.
|
|
285
|
+
* @returns Array of roles.
|
|
286
|
+
*/
|
|
206
287
|
async refreshRoles(token, authStrategy) {
|
|
207
288
|
return this.roles.refreshRoles(token, authStrategy);
|
|
208
289
|
}
|
|
209
290
|
// ==================== PERMISSION METHODS ====================
|
|
210
|
-
/**
|
|
291
|
+
/**
|
|
292
|
+
* Get user permissions (cached if Redis available).
|
|
293
|
+
* @param token - User JWT token.
|
|
294
|
+
* @param authStrategy - Optional authentication strategy override.
|
|
295
|
+
* @returns Array of permissions.
|
|
296
|
+
*/
|
|
211
297
|
async getPermissions(token, authStrategy) {
|
|
212
298
|
return this.permissions.getPermissions(token, authStrategy);
|
|
213
299
|
}
|
|
214
|
-
/**
|
|
300
|
+
/**
|
|
301
|
+
* Check if user has specific permission.
|
|
302
|
+
* @param token - User JWT token.
|
|
303
|
+
* @param permission - Permission to check.
|
|
304
|
+
* @param authStrategy - Optional authentication strategy override.
|
|
305
|
+
* @returns True if user has permission.
|
|
306
|
+
*/
|
|
215
307
|
async hasPermission(token, permission, authStrategy) {
|
|
216
308
|
return this.permissions.hasPermission(token, permission, authStrategy);
|
|
217
309
|
}
|
|
218
|
-
/**
|
|
310
|
+
/**
|
|
311
|
+
* Check if user has any of the specified permissions.
|
|
312
|
+
* @param token - User JWT token.
|
|
313
|
+
* @param permissions - Permissions to check.
|
|
314
|
+
* @param authStrategy - Optional authentication strategy override.
|
|
315
|
+
* @returns True if user has any permission.
|
|
316
|
+
*/
|
|
219
317
|
async hasAnyPermission(token, permissions, authStrategy) {
|
|
220
318
|
return this.permissions.hasAnyPermission(token, permissions, authStrategy);
|
|
221
319
|
}
|
|
222
|
-
/**
|
|
320
|
+
/**
|
|
321
|
+
* Check if user has all of the specified permissions.
|
|
322
|
+
* @param token - User JWT token.
|
|
323
|
+
* @param permissions - Permissions to check.
|
|
324
|
+
* @param authStrategy - Optional authentication strategy override.
|
|
325
|
+
* @returns True if user has all permissions.
|
|
326
|
+
*/
|
|
223
327
|
async hasAllPermissions(token, permissions, authStrategy) {
|
|
224
328
|
return this.permissions.hasAllPermissions(token, permissions, authStrategy);
|
|
225
329
|
}
|
|
226
|
-
/**
|
|
330
|
+
/**
|
|
331
|
+
* Force refresh permissions from controller (bypass cache).
|
|
332
|
+
* @param token - User JWT token.
|
|
333
|
+
* @param authStrategy - Optional authentication strategy override.
|
|
334
|
+
* @returns Array of permissions.
|
|
335
|
+
*/
|
|
227
336
|
async refreshPermissions(token, authStrategy) {
|
|
228
337
|
return this.permissions.refreshPermissions(token, authStrategy);
|
|
229
338
|
}
|
|
230
|
-
/**
|
|
339
|
+
/**
|
|
340
|
+
* Clear cached permissions for a user.
|
|
341
|
+
* @param token - User JWT token.
|
|
342
|
+
* @param authStrategy - Optional authentication strategy override.
|
|
343
|
+
*/
|
|
231
344
|
async clearPermissionsCache(token, authStrategy) {
|
|
232
345
|
return this.permissions.clearPermissionsCache(token, authStrategy);
|
|
233
346
|
}
|
|
@@ -253,6 +366,54 @@ class MisoClient {
|
|
|
253
366
|
get cache() {
|
|
254
367
|
return this.cacheService;
|
|
255
368
|
}
|
|
369
|
+
// ==================== APPLICATION STATUS METHODS (server-side) ====================
|
|
370
|
+
/**
|
|
371
|
+
* Update the current application's status and URLs (server-side only).
|
|
372
|
+
* Uses client credentials or provided authStrategy.
|
|
373
|
+
* When envKey is omitted, resolves from application context (client token / clientId).
|
|
374
|
+
*
|
|
375
|
+
* @param body - Update request (status, url, internalUrl, port)
|
|
376
|
+
* @param options - Optional envKey and authStrategy; if envKey omitted, uses context (throws if context missing)
|
|
377
|
+
* @returns Update response with success and optional application data
|
|
378
|
+
*/
|
|
379
|
+
async updateMyApplicationStatus(body, options) {
|
|
380
|
+
const envKey = options?.envKey ??
|
|
381
|
+
this.logger.getApplicationContextService().getApplicationContext()
|
|
382
|
+
.environment;
|
|
383
|
+
if (!envKey) {
|
|
384
|
+
throw new Error('updateMyApplicationStatus requires envKey or application context (client token/clientId with environment). Neither was available.');
|
|
385
|
+
}
|
|
386
|
+
return this.apiClient.applications.updateSelfStatus(envKey, body, options?.authStrategy);
|
|
387
|
+
}
|
|
388
|
+
/**
|
|
389
|
+
* Get any application's status and URLs (without configuration).
|
|
390
|
+
* Uses client credentials or provided authStrategy.
|
|
391
|
+
*
|
|
392
|
+
* @param envKey - Environment key
|
|
393
|
+
* @param appKey - Application key
|
|
394
|
+
* @param authStrategy - Optional authentication strategy override
|
|
395
|
+
* @returns Application status response with metadata
|
|
396
|
+
*/
|
|
397
|
+
async getApplicationStatus(envKey, appKey, authStrategy) {
|
|
398
|
+
return this.apiClient.applications.getApplicationStatus(envKey, appKey, authStrategy);
|
|
399
|
+
}
|
|
400
|
+
/**
|
|
401
|
+
* Get the current application's status and URLs (server-side only).
|
|
402
|
+
* Uses envKey and appKey from application context when not provided.
|
|
403
|
+
*
|
|
404
|
+
* @param options - Optional envKey and appKey; if omitted, uses context
|
|
405
|
+
* @param authStrategy - Optional authentication strategy override
|
|
406
|
+
* @returns Application status response with metadata
|
|
407
|
+
*/
|
|
408
|
+
async getMyApplicationStatus(options, authStrategy) {
|
|
409
|
+
const context = this.logger.getApplicationContextService().getApplicationContext();
|
|
410
|
+
const envKey = options?.envKey ?? context.environment;
|
|
411
|
+
const appKey = options?.appKey ?? context.application;
|
|
412
|
+
if (!envKey || !appKey) {
|
|
413
|
+
throw new Error('getMyApplicationStatus requires envKey and appKey or application context (client token/clientId). Neither was fully available.');
|
|
414
|
+
}
|
|
415
|
+
return this.apiClient.applications.getApplicationStatus(envKey, appKey, authStrategy);
|
|
416
|
+
}
|
|
256
417
|
// ==================== UTILITY METHODS ====================
|
|
257
418
|
/**
|
|
258
419
|
* Get current configuration
|
|
@@ -260,19 +421,40 @@ class MisoClient {
|
|
|
260
421
|
getConfig() {
|
|
261
422
|
return { ...this.config };
|
|
262
423
|
}
|
|
263
|
-
/**
|
|
424
|
+
/**
|
|
425
|
+
* Check if Redis is connected.
|
|
426
|
+
* @returns True if Redis connection is active.
|
|
427
|
+
*/
|
|
264
428
|
isRedisConnected() {
|
|
265
429
|
return this.redis.isConnected();
|
|
266
430
|
}
|
|
267
|
-
/**
|
|
431
|
+
/**
|
|
432
|
+
* Make request with authentication strategy.
|
|
433
|
+
* @param method - HTTP method.
|
|
434
|
+
* @param url - Request URL.
|
|
435
|
+
* @param authStrategy - Authentication strategy to use.
|
|
436
|
+
* @param data - Optional request data.
|
|
437
|
+
* @param config - Optional Axios config overrides.
|
|
438
|
+
* @returns Parsed response data.
|
|
439
|
+
*/
|
|
268
440
|
async requestWithAuthStrategy(method, url, authStrategy, data, config) {
|
|
269
441
|
return this.httpClient.requestWithAuthStrategy(method, url, authStrategy, data, config);
|
|
270
442
|
}
|
|
271
|
-
/**
|
|
443
|
+
/**
|
|
444
|
+
* Create authentication strategy helper.
|
|
445
|
+
* @param methods - Auth methods in priority order.
|
|
446
|
+
* @param bearerToken - Optional bearer token.
|
|
447
|
+
* @param apiKey - Optional API key.
|
|
448
|
+
* @returns Authentication strategy.
|
|
449
|
+
*/
|
|
272
450
|
createAuthStrategy(methods, bearerToken, apiKey) {
|
|
273
451
|
return { methods, bearerToken, apiKey };
|
|
274
452
|
}
|
|
275
|
-
/**
|
|
453
|
+
/**
|
|
454
|
+
* Get default authentication strategy.
|
|
455
|
+
* @param bearerToken - Optional bearer token.
|
|
456
|
+
* @returns Default authentication strategy.
|
|
457
|
+
*/
|
|
276
458
|
getDefaultAuthStrategy(bearerToken) {
|
|
277
459
|
return auth_strategy_1.AuthStrategyHandler.getDefaultStrategy(bearerToken);
|
|
278
460
|
}
|
|
@@ -280,11 +462,8 @@ class MisoClient {
|
|
|
280
462
|
exports.MisoClient = MisoClient;
|
|
281
463
|
// Export types
|
|
282
464
|
__exportStar(require("./types/config.types"), exports);
|
|
283
|
-
// Export pagination, filter, sort types
|
|
284
|
-
__exportStar(require("./types/pagination.types"), exports);
|
|
285
465
|
__exportStar(require("./types/filter.types"), exports);
|
|
286
466
|
__exportStar(require("./types/filter-schema.types"), exports);
|
|
287
|
-
__exportStar(require("./types/sort.types"), exports);
|
|
288
467
|
// Export detectAuthMethodFromHeaders helper for advanced usage
|
|
289
468
|
var http_error_handler_1 = require("./utils/http-error-handler");
|
|
290
469
|
Object.defineProperty(exports, "detectAuthMethodFromHeaders", { enumerable: true, get: function () { return http_error_handler_1.detectAuthMethodFromHeaders; } });
|
|
@@ -310,9 +489,8 @@ Object.defineProperty(exports, "HttpClient", { enumerable: true, get: function (
|
|
|
310
489
|
// Export unified logging interface
|
|
311
490
|
var unified_logger_factory_1 = require("./services/logger/unified-logger.factory");
|
|
312
491
|
Object.defineProperty(exports, "getLogger", { enumerable: true, get: function () { return unified_logger_factory_1.getLogger; } });
|
|
313
|
-
|
|
314
|
-
Object.defineProperty(exports, "
|
|
315
|
-
Object.defineProperty(exports, "mergeLoggerContext", { enumerable: true, get: function () { return unified_logger_factory_1.mergeLoggerContext; } });
|
|
492
|
+
var logger_3 = require("./services/logger");
|
|
493
|
+
Object.defineProperty(exports, "LoggerContextStorage", { enumerable: true, get: function () { return logger_3.LoggerContextStorage; } });
|
|
316
494
|
// Export utilities
|
|
317
495
|
var config_loader_1 = require("./utils/config-loader");
|
|
318
496
|
Object.defineProperty(exports, "loadConfig", { enumerable: true, get: function () { return config_loader_1.loadConfig; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application-context.service.d.ts","sourceRoot":"","sources":["../../src/services/application-context.service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"application-context.service.d.ts","sourceRoot":"","sources":["../../src/services/application-context.service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAIlD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,aAAa,CAAmC;gBAE5C,UAAU,EAAE,UAAU;IAIlC;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAgC3B;;;OAGG;IACH,OAAO,CAAC,cAAc;IAoCtB;;;;;OAKG;IACH,qBAAqB,IAAI,kBAAkB;IAgE3C;;OAEG;IACH,UAAU,IAAI,IAAI;CAGnB"}
|
|
@@ -15,7 +15,6 @@ const data_client_utils_1 = require("../utils/data-client-utils");
|
|
|
15
15
|
class ApplicationContextService {
|
|
16
16
|
constructor(httpClient) {
|
|
17
17
|
this.cachedContext = null;
|
|
18
|
-
this.config = httpClient.config;
|
|
19
18
|
this.httpClient = httpClient;
|
|
20
19
|
}
|
|
21
20
|
/**
|
|
@@ -42,7 +41,9 @@ class ApplicationContextService {
|
|
|
42
41
|
return { environment, application };
|
|
43
42
|
}
|
|
44
43
|
catch (error) {
|
|
45
|
-
console.warn("[ApplicationContextService] Failed to parse clientId format:",
|
|
44
|
+
console.warn("[ApplicationContextService] Failed to parse clientId format:", {
|
|
45
|
+
errorMessage: error instanceof Error ? error.message : String(error),
|
|
46
|
+
});
|
|
46
47
|
return { environment: null, application: null };
|
|
47
48
|
}
|
|
48
49
|
}
|
|
@@ -53,8 +54,8 @@ class ApplicationContextService {
|
|
|
53
54
|
getClientToken() {
|
|
54
55
|
try {
|
|
55
56
|
// Try to get client token from config first (if provided)
|
|
56
|
-
if (this.config.clientToken) {
|
|
57
|
-
return this.config.clientToken;
|
|
57
|
+
if (this.httpClient.config.clientToken) {
|
|
58
|
+
return this.httpClient.config.clientToken;
|
|
58
59
|
}
|
|
59
60
|
// Try browser localStorage (for browser environments)
|
|
60
61
|
if ((0, data_client_utils_1.isBrowser)()) {
|
|
@@ -77,7 +78,9 @@ class ApplicationContextService {
|
|
|
77
78
|
return null;
|
|
78
79
|
}
|
|
79
80
|
catch (error) {
|
|
80
|
-
console.warn("[ApplicationContextService] Failed to get client token:",
|
|
81
|
+
console.warn("[ApplicationContextService] Failed to get client token:", {
|
|
82
|
+
errorMessage: error instanceof Error ? error.message : String(error),
|
|
83
|
+
});
|
|
81
84
|
return null;
|
|
82
85
|
}
|
|
83
86
|
}
|
|
@@ -114,13 +117,15 @@ class ApplicationContextService {
|
|
|
114
117
|
}
|
|
115
118
|
}
|
|
116
119
|
catch (error) {
|
|
117
|
-
console.warn("[ApplicationContextService] Failed to extract from client token:",
|
|
120
|
+
console.warn("[ApplicationContextService] Failed to extract from client token:", {
|
|
121
|
+
errorMessage: error instanceof Error ? error.message : String(error),
|
|
122
|
+
});
|
|
118
123
|
}
|
|
119
124
|
}
|
|
120
125
|
// Step 2: Fall back to parsing clientId format
|
|
121
126
|
// Only use parsed values if not already set from client token
|
|
122
127
|
if (!environment || !application) {
|
|
123
|
-
const parsed = this.parseClientIdFormat(this.config.clientId);
|
|
128
|
+
const parsed = this.parseClientIdFormat(this.httpClient.config.clientId);
|
|
124
129
|
if (!environment && parsed.environment) {
|
|
125
130
|
environment = parsed.environment;
|
|
126
131
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application-context.service.js","sourceRoot":"","sources":["../../src/services/application-context.service.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;
|
|
1
|
+
{"version":3,"file":"application-context.service.js","sourceRoot":"","sources":["../../src/services/application-context.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { CacheService } from "./cache.service";
|
|
2
|
+
/**
|
|
3
|
+
* Extract userId from JWT token without verification.
|
|
4
|
+
*/
|
|
5
|
+
export declare function extractUserIdFromToken(token: string): string | null;
|
|
6
|
+
/**
|
|
7
|
+
* Generate cache key using SHA-256 hash of token.
|
|
8
|
+
*/
|
|
9
|
+
export declare function getTokenCacheKey(token: string): string;
|
|
10
|
+
/**
|
|
11
|
+
* Calculate smart TTL based on token expiration.
|
|
12
|
+
*/
|
|
13
|
+
export declare function getCacheTtlFromToken(token: string, tokenValidationTTL: number, minValidationTTL: number): number;
|
|
14
|
+
/**
|
|
15
|
+
* Clear cached token validation result.
|
|
16
|
+
*/
|
|
17
|
+
export declare function clearTokenCache(cache: CacheService, token: string): void;
|
|
18
|
+
/**
|
|
19
|
+
* Clear cached user info for a token.
|
|
20
|
+
*/
|
|
21
|
+
export declare function clearUserCache(cache: CacheService, token: string): void;
|
|
22
|
+
//# sourceMappingURL=auth-cache-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-cache-helpers.d.ts","sourceRoot":"","sources":["../../src/services/auth-cache-helpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWnE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGtD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,kBAAkB,EAAE,MAAM,EAC1B,gBAAgB,EAAE,MAAM,GACvB,MAAM,CAkBR;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CASxE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAWvE"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.extractUserIdFromToken = extractUserIdFromToken;
|
|
7
|
+
exports.getTokenCacheKey = getTokenCacheKey;
|
|
8
|
+
exports.getCacheTtlFromToken = getCacheTtlFromToken;
|
|
9
|
+
exports.clearTokenCache = clearTokenCache;
|
|
10
|
+
exports.clearUserCache = clearUserCache;
|
|
11
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
12
|
+
const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
|
|
13
|
+
/**
|
|
14
|
+
* Extract userId from JWT token without verification.
|
|
15
|
+
*/
|
|
16
|
+
function extractUserIdFromToken(token) {
|
|
17
|
+
try {
|
|
18
|
+
const decoded = jsonwebtoken_1.default.decode(token);
|
|
19
|
+
if (!decoded)
|
|
20
|
+
return null;
|
|
21
|
+
return (decoded.sub ||
|
|
22
|
+
decoded.userId ||
|
|
23
|
+
decoded.user_id ||
|
|
24
|
+
decoded.id);
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Generate cache key using SHA-256 hash of token.
|
|
32
|
+
*/
|
|
33
|
+
function getTokenCacheKey(token) {
|
|
34
|
+
const hash = crypto_1.default.createHash("sha256").update(token).digest("hex");
|
|
35
|
+
return `token_validation:${hash}`;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Calculate smart TTL based on token expiration.
|
|
39
|
+
*/
|
|
40
|
+
function getCacheTtlFromToken(token, tokenValidationTTL, minValidationTTL) {
|
|
41
|
+
const BUFFER_SECONDS = 30;
|
|
42
|
+
try {
|
|
43
|
+
const decoded = jsonwebtoken_1.default.decode(token);
|
|
44
|
+
if (!decoded || typeof decoded.exp !== "number") {
|
|
45
|
+
return tokenValidationTTL;
|
|
46
|
+
}
|
|
47
|
+
const now = Math.floor(Date.now() / 1000);
|
|
48
|
+
const tokenTtl = decoded.exp - now - BUFFER_SECONDS;
|
|
49
|
+
return Math.max(minValidationTTL, Math.min(tokenTtl, tokenValidationTTL));
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
return tokenValidationTTL;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Clear cached token validation result.
|
|
57
|
+
*/
|
|
58
|
+
function clearTokenCache(cache, token) {
|
|
59
|
+
try {
|
|
60
|
+
const cacheKey = getTokenCacheKey(token);
|
|
61
|
+
void cache.delete(cacheKey);
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
console.warn("Failed to clear token cache:", {
|
|
65
|
+
errorMessage: error instanceof Error ? error.message : String(error),
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Clear cached user info for a token.
|
|
71
|
+
*/
|
|
72
|
+
function clearUserCache(cache, token) {
|
|
73
|
+
try {
|
|
74
|
+
const userId = extractUserIdFromToken(token);
|
|
75
|
+
if (userId) {
|
|
76
|
+
void cache.delete(`user:${userId}`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
console.warn("Failed to clear user cache:", {
|
|
81
|
+
errorMessage: error instanceof Error ? error.message : String(error),
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=auth-cache-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-cache-helpers.js","sourceRoot":"","sources":["../../src/services/auth-cache-helpers.ts"],"names":[],"mappings":";;;;;AAOA,wDAWC;AAKD,4CAGC;AAKD,oDAsBC;AAKD,0CASC;AAKD,wCAWC;AAnFD,oDAA4B;AAC5B,gEAA+B;AAG/B;;GAEG;AACH,SAAgB,sBAAsB,CAAC,KAAa;IAClD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,sBAAG,CAAC,MAAM,CAAC,KAAK,CAAmC,CAAC;QACpE,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC1B,OAAO,CAAC,OAAO,CAAC,GAAG;YACjB,OAAO,CAAC,MAAM;YACd,OAAO,CAAC,OAAO;YACf,OAAO,CAAC,EAAE,CAAkB,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,KAAa;IAC5C,MAAM,IAAI,GAAG,gBAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrE,OAAO,oBAAoB,IAAI,EAAE,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAClC,KAAa,EACb,kBAA0B,EAC1B,gBAAwB;IAExB,MAAM,cAAc,GAAG,EAAE,CAAC;IAC1B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,sBAAG,CAAC,MAAM,CAAC,KAAK,CAAmC,CAAC;QACpE,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YAChD,OAAO,kBAAkB,CAAC;QAC5B,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,GAAG,GAAG,GAAG,cAAc,CAAC;QAEpD,OAAO,IAAI,CAAC,GAAG,CACb,gBAAgB,EAChB,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CACvC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,kBAAkB,CAAC;IAC5B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,KAAmB,EAAE,KAAa;IAChE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACzC,KAAK,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,8BAA8B,EAAE;YAC3C,YAAY,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SACrE,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,KAAmB,EAAE,KAAa;IAC/D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,KAAK,CAAC,MAAM,CAAC,QAAQ,MAAM,EAAE,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,6BAA6B,EAAE;YAC1C,YAAY,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SACrE,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
|