node-opcua-role-set-server 2.183.0 → 2.184.0
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/audit.d.ts +1 -0
- package/dist/audit.d.ts.map +1 -0
- package/dist/audit.js +5 -8
- package/dist/audit.js.map +1 -1
- package/dist/bind_restriction_methods.d.ts +1 -0
- package/dist/bind_restriction_methods.d.ts.map +1 -0
- package/dist/bind_restriction_methods.js +20 -26
- package/dist/bind_restriction_methods.js.map +1 -1
- package/dist/bind_role_methods.d.ts +1 -0
- package/dist/bind_role_methods.d.ts.map +1 -0
- package/dist/bind_role_methods.js +26 -30
- package/dist/bind_role_methods.js.map +1 -1
- package/dist/bind_user_management.d.ts +1 -0
- package/dist/bind_user_management.d.ts.map +1 -0
- package/dist/bind_user_management.js +40 -46
- package/dist/bind_user_management.js.map +1 -1
- package/dist/harden.d.ts +1 -0
- package/dist/harden.d.ts.map +1 -0
- package/dist/harden.js +7 -11
- package/dist/harden.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -31
- package/dist/index.js.map +1 -1
- package/dist/install_role_based_security.d.ts +1 -0
- package/dist/install_role_based_security.d.ts.map +1 -0
- package/dist/install_role_based_security.js +17 -20
- package/dist/install_role_based_security.js.map +1 -1
- package/dist/install_role_set.d.ts +1 -0
- package/dist/install_role_set.d.ts.map +1 -0
- package/dist/install_role_set.js +80 -83
- package/dist/install_role_set.js.map +1 -1
- package/dist/install_user_management.d.ts +1 -0
- package/dist/install_user_management.d.ts.map +1 -0
- package/dist/install_user_management.js +30 -33
- package/dist/install_user_management.js.map +1 -1
- package/dist/role_set_resolver.d.ts +1 -0
- package/dist/role_set_resolver.d.ts.map +1 -0
- package/dist/role_set_resolver.js +1 -5
- package/dist/role_set_resolver.js.map +1 -1
- package/dist/security_checks.d.ts +1 -0
- package/dist/security_checks.d.ts.map +1 -0
- package/dist/security_checks.js +10 -14
- package/dist/security_checks.js.map +1 -1
- package/dist/user_management_user_manager.d.ts +1 -0
- package/dist/user_management_user_manager.d.ts.map +1 -0
- package/dist/user_management_user_manager.js +10 -13
- package/dist/user_management_user_manager.js.map +1 -1
- package/dist/variant_args.d.ts +1 -0
- package/dist/variant_args.d.ts.map +1 -0
- package/dist/variant_args.js +3 -8
- package/dist/variant_args.js.map +1 -1
- package/package.json +17 -16
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAChF,OAAO,EACH,KAAK,6BAA6B,EAClC,yBAAyB,EACzB,sBAAsB,EACtB,4BAA4B,EAC5B,yBAAyB,EAC5B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACH,KAAK,sBAAsB,EAC3B,sBAAsB,EACtB,yBAAyB,EACzB,KAAK,2BAA2B,EACnC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACH,KAAK,yBAAyB,EAC9B,kBAAkB,EAClB,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EACrB,KAAK,mBAAmB,EAC3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACH,KAAK,8BAA8B,EACnC,uBAAuB,EACvB,KAAK,+BAA+B,EACpC,KAAK,iBAAiB,EACtB,KAAK,aAAa,EACrB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACH,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,cAAc,EACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACH,KAAK,4BAA4B,EACjC,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,EAC7B,qBAAqB,EACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,KAAK,mBAAmB,EAAE,MAAM,mCAAmC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,35 +1,14 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* @module node-opcua-role-set-server
|
|
4
3
|
*/
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
Object.defineProperty(exports, "makeAddIdentityHandler", { enumerable: true, get: function () { return bind_role_methods_js_1.makeAddIdentityHandler; } });
|
|
16
|
-
Object.defineProperty(exports, "makeRemoveIdentityHandler", { enumerable: true, get: function () { return bind_role_methods_js_1.makeRemoveIdentityHandler; } });
|
|
17
|
-
var bind_user_management_js_1 = require("./bind_user_management.js");
|
|
18
|
-
Object.defineProperty(exports, "makeAddUserHandler", { enumerable: true, get: function () { return bind_user_management_js_1.makeAddUserHandler; } });
|
|
19
|
-
Object.defineProperty(exports, "makeChangePasswordHandler", { enumerable: true, get: function () { return bind_user_management_js_1.makeChangePasswordHandler; } });
|
|
20
|
-
Object.defineProperty(exports, "makeModifyUserHandler", { enumerable: true, get: function () { return bind_user_management_js_1.makeModifyUserHandler; } });
|
|
21
|
-
Object.defineProperty(exports, "makeRemoveUserHandler", { enumerable: true, get: function () { return bind_user_management_js_1.makeRemoveUserHandler; } });
|
|
22
|
-
var install_role_based_security_js_1 = require("./install_role_based_security.js");
|
|
23
|
-
Object.defineProperty(exports, "createRoleBasedSecurity", { enumerable: true, get: function () { return install_role_based_security_js_1.createRoleBasedSecurity; } });
|
|
24
|
-
var install_role_set_js_1 = require("./install_role_set.js");
|
|
25
|
-
Object.defineProperty(exports, "installRoleSet", { enumerable: true, get: function () { return install_role_set_js_1.installRoleSet; } });
|
|
26
|
-
var install_user_management_js_1 = require("./install_user_management.js");
|
|
27
|
-
Object.defineProperty(exports, "installUserManagement", { enumerable: true, get: function () { return install_user_management_js_1.installUserManagement; } });
|
|
28
|
-
var role_set_resolver_js_1 = require("./role_set_resolver.js");
|
|
29
|
-
Object.defineProperty(exports, "RoleSetResolver", { enumerable: true, get: function () { return role_set_resolver_js_1.RoleSetResolver; } });
|
|
30
|
-
var security_checks_js_1 = require("./security_checks.js");
|
|
31
|
-
Object.defineProperty(exports, "checkEncryptedChannel", { enumerable: true, get: function () { return security_checks_js_1.checkEncryptedChannel; } });
|
|
32
|
-
Object.defineProperty(exports, "checkSecurityAdminAccess", { enumerable: true, get: function () { return security_checks_js_1.checkSecurityAdminAccess; } });
|
|
33
|
-
var user_management_user_manager_js_1 = require("./user_management_user_manager.js");
|
|
34
|
-
Object.defineProperty(exports, "createUserManager", { enumerable: true, get: function () { return user_management_user_manager_js_1.createUserManager; } });
|
|
4
|
+
export { raiseAuditMethodEvent } from "./audit.js";
|
|
5
|
+
export { makeAddApplicationHandler, makeAddEndpointHandler, makeRemoveApplicationHandler, makeRemoveEndpointHandler } from "./bind_restriction_methods.js";
|
|
6
|
+
export { makeAddIdentityHandler, makeRemoveIdentityHandler } from "./bind_role_methods.js";
|
|
7
|
+
export { makeAddUserHandler, makeChangePasswordHandler, makeModifyUserHandler, makeRemoveUserHandler } from "./bind_user_management.js";
|
|
8
|
+
export { createRoleBasedSecurity } from "./install_role_based_security.js";
|
|
9
|
+
export { installRoleSet } from "./install_role_set.js";
|
|
10
|
+
export { installUserManagement } from "./install_user_management.js";
|
|
11
|
+
export { RoleSetResolver } from "./role_set_resolver.js";
|
|
12
|
+
export { checkEncryptedChannel, checkSecurityAdminAccess } from "./security_checks.js";
|
|
13
|
+
export { createUserManager } from "./user_management_user_manager.js";
|
|
35
14
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAA+B,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAChF,OAAO,EAEH,yBAAyB,EACzB,sBAAsB,EACtB,4BAA4B,EAC5B,yBAAyB,EAC5B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAEH,sBAAsB,EACtB,yBAAyB,EAE5B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEH,kBAAkB,EAClB,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EAExB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEH,uBAAuB,EAI1B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAIH,cAAc,EACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAIH,qBAAqB,EACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAA4B,MAAM,mCAAmC,CAAC"}
|
|
@@ -88,3 +88,4 @@ export interface RoleBasedSecurity {
|
|
|
88
88
|
* then call {@link RoleBasedSecurity.install} after `server.start()`.
|
|
89
89
|
*/
|
|
90
90
|
export declare function createRoleBasedSecurity(options?: CreateRoleBasedSecurityOptions): Promise<RoleBasedSecurity>;
|
|
91
|
+
//# sourceMappingURL=install_role_based_security.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install_role_based_security.d.ts","sourceRoot":"","sources":["../source/install_role_based_security.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACH,YAAY,EACZ,KAAK,cAAc,EACnB,4BAA4B,EAC5B,2BAA2B,EAC3B,KAAK,cAAc,EACnB,KAAK,oBAAoB,EAE5B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAiD,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACxG,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,iBAAiB,EAAkB,MAAM,uBAAuB,CAAC;AAC1G,OAAO,EACH,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,EAEhC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAqB,KAAK,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAIhG;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,iBAAiB,CAAC,EAAE,qBAAqB,CAAC;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,8BAA8B;IAC3C,kDAAkD;IAClD,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,wEAAwE;IACxE,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC7B;AAED,MAAM,WAAW,+BAA+B;IAC5C,uFAAuF;IACvF,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,+DAA+D;IAC/D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gFAAgF;IAChF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;;;;;;;;;;;OAgBG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,8EAA8E;AAC9E,MAAM,WAAW,iBAAiB;IAC9B,0DAA0D;IAC1D,SAAS,EAAE,2BAA2B,CAAC;IACvC,6DAA6D;IAC7D,aAAa,EAAE,4BAA4B,CAAC;IAC5C,yEAAyE;IACzE,WAAW,EAAE,mBAAmB,CAAC;IACjC;;;OAGG;IACH,OAAO,CACH,MAAM,EAAE,iBAAiB,GAAG,wBAAwB,EACpD,OAAO,CAAC,EAAE,+BAA+B,GAC1C,OAAO,CAAC;QACP,OAAO,EAAE,oBAAoB,CAAC;QAC9B,wEAAwE;QACxE,cAAc,CAAC,EAAE,2BAA2B,CAAC;KAChD,CAAC,CAAC;CACN;AAKD;;;;GAIG;AACH,wBAAsB,uBAAuB,CAAC,OAAO,CAAC,EAAE,8BAA8B,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA+FlH"}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createRoleBasedSecurity = createRoleBasedSecurity;
|
|
4
1
|
/**
|
|
5
2
|
* @module node-opcua-role-set-server
|
|
6
3
|
*
|
|
@@ -27,22 +24,22 @@ exports.createRoleBasedSecurity = createRoleBasedSecurity;
|
|
|
27
24
|
* Methods, persistence) is backed by the same two stores, so the "legacy"
|
|
28
25
|
* (userManager) and "modern" (RoleSet Methods) views can never drift apart.
|
|
29
26
|
*/
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
const errorLog =
|
|
37
|
-
const userNameRule = (userName) => new
|
|
27
|
+
import { make_errorLog } from "node-opcua-debug";
|
|
28
|
+
import { ArchiveStore, InMemoryIdentityMappingStore, InMemoryUserManagementStore, validateUserConfiguration } from "node-opcua-role-set-common";
|
|
29
|
+
import { IdentityCriteriaType, IdentityMappingRuleType, UserConfigurationMask } from "node-opcua-types";
|
|
30
|
+
import { installRoleSet } from "./install_role_set.js";
|
|
31
|
+
import { installUserManagement } from "./install_user_management.js";
|
|
32
|
+
import { createUserManager } from "./user_management_user_manager.js";
|
|
33
|
+
const errorLog = make_errorLog("RoleBasedSecurity");
|
|
34
|
+
const userNameRule = (userName) => new IdentityMappingRuleType({ criteriaType: IdentityCriteriaType.UserName, criteria: userName });
|
|
38
35
|
/**
|
|
39
36
|
* Create the shared stores and the `userManager` bridge, seeding any initial
|
|
40
37
|
* users and their Roles. Pass `userManager` to the `OPCUAServer` constructor,
|
|
41
38
|
* then call {@link RoleBasedSecurity.install} after `server.start()`.
|
|
42
39
|
*/
|
|
43
|
-
async function createRoleBasedSecurity(options) {
|
|
44
|
-
const userStore = new
|
|
45
|
-
const identityStore = new
|
|
40
|
+
export async function createRoleBasedSecurity(options) {
|
|
41
|
+
const userStore = new InMemoryUserManagementStore(options?.policy, options?.registry ? { registry: options.registry } : undefined);
|
|
42
|
+
const identityStore = new InMemoryIdentityMappingStore();
|
|
46
43
|
for (const user of options?.users ?? []) {
|
|
47
44
|
// Exactly one of password / passwordHash — reject the ambiguous case up
|
|
48
45
|
// front rather than silently preferring one (the docstring says "never
|
|
@@ -58,7 +55,7 @@ async function createRoleBasedSecurity(options) {
|
|
|
58
55
|
// importUsers bypasses addUser's validation, so apply the same
|
|
59
56
|
// UserConfigurationMask check here (e.g. MustChangePassword +
|
|
60
57
|
// NoChangeByUser is an illegal combination — §5.2.3).
|
|
61
|
-
const configError =
|
|
58
|
+
const configError = validateUserConfiguration(userConfiguration);
|
|
62
59
|
if (configError) {
|
|
63
60
|
throw new Error(`RoleBasedUser "${user.userName}": invalid userConfiguration (${configError.name}).`);
|
|
64
61
|
}
|
|
@@ -72,7 +69,7 @@ async function createRoleBasedSecurity(options) {
|
|
|
72
69
|
]);
|
|
73
70
|
}
|
|
74
71
|
else if (user.password !== undefined) {
|
|
75
|
-
await userStore.addUser(user.userName, user.password, user.userConfiguration ??
|
|
72
|
+
await userStore.addUser(user.userName, user.password, user.userConfiguration ?? UserConfigurationMask.None, user.description ?? "");
|
|
76
73
|
}
|
|
77
74
|
else {
|
|
78
75
|
throw new Error(`RoleBasedUser "${user.userName}": provide either "password" (clear text) or "passwordHash" (pre-hashed record).`);
|
|
@@ -81,7 +78,7 @@ async function createRoleBasedSecurity(options) {
|
|
|
81
78
|
identityStore.addIdentity(role, userNameRule(user.userName));
|
|
82
79
|
}
|
|
83
80
|
}
|
|
84
|
-
const userManager =
|
|
81
|
+
const userManager = createUserManager(userStore, identityStore);
|
|
85
82
|
return {
|
|
86
83
|
userStore,
|
|
87
84
|
identityStore,
|
|
@@ -90,7 +87,7 @@ async function createRoleBasedSecurity(options) {
|
|
|
90
87
|
// one coordinator shared by both installers (so users + roles land in one file)
|
|
91
88
|
const persistence = installOptions?.persistence ??
|
|
92
89
|
(installOptions?.persistencePath
|
|
93
|
-
? new
|
|
90
|
+
? new ArchiveStore(installOptions.persistencePath, { secret: installOptions.persistenceSecret })
|
|
94
91
|
: undefined);
|
|
95
92
|
// Persist upgrade-on-login re-hashes (e.g. bcrypt → scrypt) so the
|
|
96
93
|
// migration sticks across restarts.
|
|
@@ -106,13 +103,13 @@ async function createRoleBasedSecurity(options) {
|
|
|
106
103
|
});
|
|
107
104
|
});
|
|
108
105
|
}
|
|
109
|
-
const roleSet = await
|
|
106
|
+
const roleSet = await installRoleSet(server, { store: identityStore, persistence });
|
|
110
107
|
if (installOptions?.userManagement === false) {
|
|
111
108
|
// Deliberately no UserManagement Object. Credentials still work:
|
|
112
109
|
// the userManager bridge authenticates from userStore either way.
|
|
113
110
|
return { roleSet };
|
|
114
111
|
}
|
|
115
|
-
const userManagement = await
|
|
112
|
+
const userManagement = await installUserManagement(server, { store: userStore, persistence });
|
|
116
113
|
return { roleSet, userManagement };
|
|
117
114
|
}
|
|
118
115
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install_role_based_security.js","sourceRoot":"","sources":["../source/install_role_based_security.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"install_role_based_security.js","sourceRoot":"","sources":["../source/install_role_based_security.ts"],"names":[],"mappings":"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"}
|
|
@@ -71,3 +71,4 @@ export interface IServerForRoleSet {
|
|
|
71
71
|
* `server.start()` so the address space is available.
|
|
72
72
|
*/
|
|
73
73
|
export declare function installRoleSet(server: IServerForRoleSet, options?: InstallRoleSetOptions): Promise<InstallRoleSetResult>;
|
|
74
|
+
//# sourceMappingURL=install_role_set.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install_role_set.d.ts","sourceRoot":"","sources":["../source/install_role_set.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,aAAa,EAA0D,MAAM,0BAA0B,CAAC;AAItH,OAAO,EACH,YAAY,EAEZ,KAAK,qBAAqB,EAG1B,KAAK,qBAAqB,EAM7B,MAAM,4BAA4B,CAAC;AAoBpC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AA+BzD,MAAM,WAAW,qBAAqB;IAClC;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,qBAAqB,CAAC;CACjC;AAED,MAAM,WAAW,oBAAoB;IACjC,uDAAuD;IACvD,KAAK,EAAE,qBAAqB,CAAC;IAC7B,oEAAoE;IACpE,gBAAgB,EAAE,qBAAqB,CAAC;IACxC,uDAAuD;IACvD,QAAQ,EAAE,eAAe,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAC9B,aAAa,EAAE,KAAK,CAAC;QAAE,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,EAAE,CAAA;KAAE,CAAC,CAAC;IAClE,MAAM,EAAE;QACJ,YAAY,EAAE,aAAa,GAAG,IAAI,CAAC;KACtC,CAAC;CACL;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAmT9H"}
|
package/dist/install_role_set.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* @module node-opcua-role-set-server
|
|
4
3
|
*
|
|
@@ -14,28 +13,26 @@
|
|
|
14
13
|
* as `ns=1;g=<uuid>` instances of RoleType (collision-proof, stable when
|
|
15
14
|
* persisted); well-known Roles cannot be removed.
|
|
16
15
|
*/
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
const security_checks_js_1 = require("./security_checks.js");
|
|
33
|
-
const variant_args_js_1 = require("./variant_args.js");
|
|
16
|
+
import { randomUUID } from "node:crypto";
|
|
17
|
+
import { ObjectIds } from "node-opcua-constants";
|
|
18
|
+
import { NodeClass } from "node-opcua-data-model";
|
|
19
|
+
import { NodeId, NodeIdType, resolveNodeId, sameNodeId } from "node-opcua-nodeid";
|
|
20
|
+
import { ArchiveStore, deserializeRestrictions, InMemoryIdentityMappingStore, InMemoryRoleRestrictionStore, identitiesFromBase64, identitiesToBase64, serializeRestrictions, WellKnownRoles } from "node-opcua-role-set-common";
|
|
21
|
+
import { StatusCodes } from "node-opcua-status-code";
|
|
22
|
+
import { EndpointType } from "node-opcua-types";
|
|
23
|
+
import { DataType, Variant, VariantArrayType } from "node-opcua-variant";
|
|
24
|
+
import { raiseAuditMethodEvent } from "./audit.js";
|
|
25
|
+
import { makeAddApplicationHandler, makeAddEndpointHandler, makeRemoveApplicationHandler, makeRemoveEndpointHandler } from "./bind_restriction_methods.js";
|
|
26
|
+
import { makeAddIdentityHandler, makeRemoveIdentityHandler } from "./bind_role_methods.js";
|
|
27
|
+
import { hardenAdminOnly } from "./harden.js";
|
|
28
|
+
import { RoleSetResolver } from "./role_set_resolver.js";
|
|
29
|
+
import { checkEncryptedChannel, checkSecurityAdminAccess } from "./security_checks.js";
|
|
30
|
+
import { asString } from "./variant_args.js";
|
|
34
31
|
const UA_NAMESPACE_URI = "http://opcfoundation.org/UA/";
|
|
35
32
|
/** Iterate the Role components of a RoleSet (UAObjects of type RoleType). */
|
|
36
33
|
function forEachRole(roleSet, fn) {
|
|
37
34
|
for (const c of roleSet.getComponents()) {
|
|
38
|
-
if (c.nodeClass !==
|
|
35
|
+
if (c.nodeClass !== NodeClass.Object)
|
|
39
36
|
continue;
|
|
40
37
|
const obj = c;
|
|
41
38
|
if (obj.typeDefinitionObj.browseName.name !== "RoleType")
|
|
@@ -45,40 +42,40 @@ function forEachRole(roleSet, fn) {
|
|
|
45
42
|
}
|
|
46
43
|
/** True for the standard well-known Roles (ns=0 numeric NodeIds, OPC 10000-3). */
|
|
47
44
|
function isWellKnownRoleNodeId(nodeId) {
|
|
48
|
-
if (nodeId.namespace !== 0 || nodeId.identifierType !==
|
|
45
|
+
if (nodeId.namespace !== 0 || nodeId.identifierType !== NodeIdType.NUMERIC) {
|
|
49
46
|
return false;
|
|
50
47
|
}
|
|
51
|
-
const values = Object.values(
|
|
48
|
+
const values = Object.values(WellKnownRoles).filter((v) => typeof v === "number");
|
|
52
49
|
return values.includes(nodeId.value);
|
|
53
50
|
}
|
|
54
51
|
/** The BrowseNames of the standard well-known Roles (OPC 10000-3). */
|
|
55
|
-
const WELL_KNOWN_ROLE_NAMES = new Set(Object.keys(
|
|
52
|
+
const WELL_KNOWN_ROLE_NAMES = new Set(Object.keys(WellKnownRoles).filter((k) => Number.isNaN(Number(k))));
|
|
56
53
|
/**
|
|
57
54
|
* Install RoleSet management on an OPC UA server. Call this **after**
|
|
58
55
|
* `server.start()` so the address space is available.
|
|
59
56
|
*/
|
|
60
|
-
async function installRoleSet(server, options) {
|
|
57
|
+
export async function installRoleSet(server, options) {
|
|
61
58
|
const addressSpace = server.engine.addressSpace;
|
|
62
59
|
if (!addressSpace) {
|
|
63
60
|
throw new Error("installRoleSet: address space is not available. Call this after server.start().");
|
|
64
61
|
}
|
|
65
|
-
const roleSet = addressSpace.findNode(
|
|
62
|
+
const roleSet = addressSpace.findNode(ObjectIds.Server_ServerCapabilities_RoleSet);
|
|
66
63
|
if (!roleSet) {
|
|
67
64
|
throw new Error("installRoleSet: RoleSet node (i=15606) not found in address space.");
|
|
68
65
|
}
|
|
69
66
|
// The consolidated archive is owned either by a shared coordinator (when also
|
|
70
67
|
// installing user management into the same file) or created from the path here.
|
|
71
68
|
const persistence = options?.persistence ??
|
|
72
|
-
(options?.persistencePath ? new
|
|
69
|
+
(options?.persistencePath ? new ArchiveStore(options.persistencePath, { secret: options.persistenceSecret }) : undefined);
|
|
73
70
|
// Load the whole configuration from the single consolidated archive (if any).
|
|
74
71
|
const archive = persistence ? await persistence.load() : undefined;
|
|
75
|
-
const store = options?.store ?? new
|
|
76
|
-
|
|
77
|
-
const restrictionStore = new
|
|
72
|
+
const store = options?.store ?? new InMemoryIdentityMappingStore();
|
|
73
|
+
identitiesFromBase64(store, archive?.identities);
|
|
74
|
+
const restrictionStore = new InMemoryRoleRestrictionStore();
|
|
78
75
|
if (archive?.restrictions) {
|
|
79
|
-
|
|
76
|
+
deserializeRestrictions(restrictionStore, archive.restrictions);
|
|
80
77
|
}
|
|
81
|
-
const resolver = new
|
|
78
|
+
const resolver = new RoleSetResolver(store, restrictionStore);
|
|
82
79
|
server.roleResolvers ??= [];
|
|
83
80
|
server.roleResolvers.push(resolver);
|
|
84
81
|
/**
|
|
@@ -96,46 +93,46 @@ async function installRoleSet(server, options) {
|
|
|
96
93
|
*/
|
|
97
94
|
function bindIdentitiesToStore(role) {
|
|
98
95
|
role.identities.bindVariable({
|
|
99
|
-
get: () => new
|
|
100
|
-
dataType:
|
|
101
|
-
arrayType:
|
|
96
|
+
get: () => new Variant({
|
|
97
|
+
dataType: DataType.ExtensionObject,
|
|
98
|
+
arrayType: VariantArrayType.Array,
|
|
102
99
|
value: store.getIdentitiesForRole(role.nodeId)
|
|
103
100
|
})
|
|
104
101
|
}, true);
|
|
105
102
|
}
|
|
106
103
|
function refreshIdentities(role) {
|
|
107
104
|
role.identities.setValueFromSource({
|
|
108
|
-
dataType:
|
|
105
|
+
dataType: DataType.ExtensionObject,
|
|
109
106
|
value: store.getIdentitiesForRole(role.nodeId)
|
|
110
107
|
});
|
|
111
108
|
}
|
|
112
109
|
/** Refresh a Role's Applications/Endpoints restriction variables from the store. */
|
|
113
110
|
function refreshRestrictions(role) {
|
|
114
111
|
role.applications?.setValueFromSource({
|
|
115
|
-
dataType:
|
|
116
|
-
arrayType:
|
|
112
|
+
dataType: DataType.String,
|
|
113
|
+
arrayType: VariantArrayType.Array,
|
|
117
114
|
value: restrictionStore.getApplications(role.nodeId)
|
|
118
115
|
});
|
|
119
116
|
role.applicationsExclude?.setValueFromSource({
|
|
120
|
-
dataType:
|
|
117
|
+
dataType: DataType.Boolean,
|
|
121
118
|
value: restrictionStore.getApplicationsExclude(role.nodeId)
|
|
122
119
|
});
|
|
123
120
|
role.endpoints?.setValueFromSource({
|
|
124
|
-
dataType:
|
|
125
|
-
arrayType:
|
|
126
|
-
value: restrictionStore.getEndpoints(role.nodeId).map((e) => new
|
|
121
|
+
dataType: DataType.ExtensionObject,
|
|
122
|
+
arrayType: VariantArrayType.Array,
|
|
123
|
+
value: restrictionStore.getEndpoints(role.nodeId).map((e) => new EndpointType(e))
|
|
127
124
|
});
|
|
128
125
|
role.endpointsExclude?.setValueFromSource({
|
|
129
|
-
dataType:
|
|
126
|
+
dataType: DataType.Boolean,
|
|
130
127
|
value: restrictionStore.getEndpointsExclude(role.nodeId)
|
|
131
128
|
});
|
|
132
129
|
}
|
|
133
130
|
const customRoles = [];
|
|
134
131
|
// Register the sections we own; the coordinator gathers these (plus any users
|
|
135
132
|
// registered by installUserManagement) and rewrites the one file atomically.
|
|
136
|
-
persistence?.setIdentitiesProvider(() =>
|
|
133
|
+
persistence?.setIdentitiesProvider(() => identitiesToBase64(store));
|
|
137
134
|
persistence?.setRolesProvider(() => customRoles);
|
|
138
|
-
persistence?.setRestrictionsProvider(() =>
|
|
135
|
+
persistence?.setRestrictionsProvider(() => serializeRestrictions(restrictionStore));
|
|
139
136
|
/** Snapshot every store into the single consolidated archive (atomic write). */
|
|
140
137
|
async function persist() {
|
|
141
138
|
await persistence?.save();
|
|
@@ -152,28 +149,28 @@ async function installRoleSet(server, options) {
|
|
|
152
149
|
// The IdentityMappingRule carries no secret, so it is included.
|
|
153
150
|
const serverObject = addressSpace.rootFolder?.objects?.server;
|
|
154
151
|
const raiseRoleMappingAudit = (audit) => {
|
|
155
|
-
|
|
152
|
+
raiseAuditMethodEvent(serverObject, "RoleMappingRuleChangedAuditEventType", {
|
|
156
153
|
sourceNode: audit.roleNodeId,
|
|
157
154
|
sourceName: `Method/${audit.method}`,
|
|
158
155
|
methodId: audit.methodNodeId,
|
|
159
156
|
clientUserId: audit.userName,
|
|
160
|
-
status: audit.statusCode ===
|
|
157
|
+
status: audit.statusCode === StatusCodes.Good,
|
|
161
158
|
message: `${audit.method} on role ${audit.roleNodeId.toString()} by '${audit.userName}' → ${audit.statusCode.name}`,
|
|
162
159
|
inputArguments: audit.inputArguments
|
|
163
160
|
});
|
|
164
161
|
};
|
|
165
162
|
const methodOptions = { store, onMutation: afterMutation, onAudit: raiseRoleMappingAudit };
|
|
166
|
-
const addIdentityHandler =
|
|
167
|
-
const removeIdentityHandler =
|
|
163
|
+
const addIdentityHandler = makeAddIdentityHandler(methodOptions);
|
|
164
|
+
const removeIdentityHandler = makeRemoveIdentityHandler(methodOptions);
|
|
168
165
|
const restrictionMethodOptions = {
|
|
169
166
|
restrictionStore,
|
|
170
167
|
onMutation: afterMutation,
|
|
171
168
|
onAudit: raiseRoleMappingAudit
|
|
172
169
|
};
|
|
173
|
-
const addApplicationHandler =
|
|
174
|
-
const removeApplicationHandler =
|
|
175
|
-
const addEndpointHandler =
|
|
176
|
-
const removeEndpointHandler =
|
|
170
|
+
const addApplicationHandler = makeAddApplicationHandler(restrictionMethodOptions);
|
|
171
|
+
const removeApplicationHandler = makeRemoveApplicationHandler(restrictionMethodOptions);
|
|
172
|
+
const addEndpointHandler = makeAddEndpointHandler(restrictionMethodOptions);
|
|
173
|
+
const removeEndpointHandler = makeRemoveEndpointHandler(restrictionMethodOptions);
|
|
177
174
|
/** Bind the identity + restriction Methods on a Role and seed its variables. */
|
|
178
175
|
function bindRoleMethods(role) {
|
|
179
176
|
bindIdentitiesToStore(role);
|
|
@@ -193,17 +190,17 @@ async function installRoleSet(server, options) {
|
|
|
193
190
|
* itself stays browsable so the RoleSet hierarchy remains visible.
|
|
194
191
|
*/
|
|
195
192
|
function hardenRole(role) {
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
193
|
+
hardenAdminOnly(role.identities);
|
|
194
|
+
hardenAdminOnly(role.applications);
|
|
195
|
+
hardenAdminOnly(role.applicationsExclude);
|
|
196
|
+
hardenAdminOnly(role.endpoints);
|
|
197
|
+
hardenAdminOnly(role.endpointsExclude);
|
|
198
|
+
hardenAdminOnly(role.addIdentity);
|
|
199
|
+
hardenAdminOnly(role.removeIdentity);
|
|
200
|
+
hardenAdminOnly(role.addApplication);
|
|
201
|
+
hardenAdminOnly(role.removeApplication);
|
|
202
|
+
hardenAdminOnly(role.addEndpoint);
|
|
203
|
+
hardenAdminOnly(role.removeEndpoint);
|
|
207
204
|
}
|
|
208
205
|
/** Create a RoleType instance (with the configuration Methods) and bind it. */
|
|
209
206
|
const createRoleNode = (roleName, browseNameNamespace, nodeId) => {
|
|
@@ -233,7 +230,7 @@ async function installRoleSet(server, options) {
|
|
|
233
230
|
};
|
|
234
231
|
// Recreate persisted custom Roles before binding the standard ones.
|
|
235
232
|
for (const def of archive?.roles ?? []) {
|
|
236
|
-
const nodeId =
|
|
233
|
+
const nodeId = resolveNodeId(def.nodeId);
|
|
237
234
|
const nsIndex = def.namespaceUri ? ensureNamespace(addressSpace, def.namespaceUri) : addressSpace.getOwnNamespace().index;
|
|
238
235
|
if (!addressSpace.findNode(nodeId)) {
|
|
239
236
|
createRoleNode(def.roleName, nsIndex, nodeId);
|
|
@@ -244,22 +241,22 @@ async function installRoleSet(server, options) {
|
|
|
244
241
|
forEachRole(roleSet, bindRoleMethods);
|
|
245
242
|
// AddRole (§4.2.2)
|
|
246
243
|
const addRoleHandler = async function (inputArguments, context) {
|
|
247
|
-
const insecure =
|
|
244
|
+
const insecure = checkEncryptedChannel(context);
|
|
248
245
|
if (insecure)
|
|
249
246
|
return insecure;
|
|
250
|
-
const denied =
|
|
247
|
+
const denied = checkSecurityAdminAccess(context);
|
|
251
248
|
if (denied)
|
|
252
249
|
return denied;
|
|
253
|
-
const roleName =
|
|
250
|
+
const roleName = asString(inputArguments[0]);
|
|
254
251
|
if (!roleName) {
|
|
255
|
-
return { statusCode:
|
|
252
|
+
return { statusCode: StatusCodes.BadInvalidArgument };
|
|
256
253
|
}
|
|
257
254
|
// A custom Role must not impersonate a well-known Role (which already
|
|
258
255
|
// exists in ns=0); reject the name in any namespace (§4.2.2).
|
|
259
256
|
if (WELL_KNOWN_ROLE_NAMES.has(roleName)) {
|
|
260
|
-
return { statusCode:
|
|
257
|
+
return { statusCode: StatusCodes.BadAlreadyExists };
|
|
261
258
|
}
|
|
262
|
-
const namespaceUri =
|
|
259
|
+
const namespaceUri = asString(inputArguments[1]) ?? "";
|
|
263
260
|
const browseNameNamespace = namespaceUri && namespaceUri !== UA_NAMESPACE_URI
|
|
264
261
|
? ensureNamespace(addressSpace, namespaceUri)
|
|
265
262
|
: namespaceUri === UA_NAMESPACE_URI
|
|
@@ -270,56 +267,56 @@ async function installRoleSet(server, options) {
|
|
|
270
267
|
// can never duplicate the name of any existing Role — well-known or custom.
|
|
271
268
|
const exists = roleSet.getComponents().some((c) => c.browseName.name === roleName);
|
|
272
269
|
if (exists) {
|
|
273
|
-
return { statusCode:
|
|
270
|
+
return { statusCode: StatusCodes.BadAlreadyExists };
|
|
274
271
|
}
|
|
275
272
|
// GUID NodeId in the server's own namespace (collision-proof, persisted)
|
|
276
|
-
const nodeId = new
|
|
273
|
+
const nodeId = new NodeId(NodeIdType.GUID, randomUUID().toUpperCase(), addressSpace.getOwnNamespace().index);
|
|
277
274
|
createRoleNode(roleName, browseNameNamespace, nodeId);
|
|
278
275
|
customRoles.push({ nodeId: nodeId.toString(), roleName, namespaceUri });
|
|
279
276
|
await persist();
|
|
280
277
|
return {
|
|
281
|
-
statusCode:
|
|
282
|
-
outputArguments: [{ dataType:
|
|
278
|
+
statusCode: StatusCodes.Good,
|
|
279
|
+
outputArguments: [{ dataType: DataType.NodeId, value: nodeId }]
|
|
283
280
|
};
|
|
284
281
|
};
|
|
285
282
|
// RemoveRole (§4.2.3)
|
|
286
283
|
const removeRoleHandler = async function (inputArguments, context) {
|
|
287
|
-
const insecure =
|
|
284
|
+
const insecure = checkEncryptedChannel(context);
|
|
288
285
|
if (insecure)
|
|
289
286
|
return insecure;
|
|
290
|
-
const denied =
|
|
287
|
+
const denied = checkSecurityAdminAccess(context);
|
|
291
288
|
if (denied)
|
|
292
289
|
return denied;
|
|
293
290
|
const roleNodeId = inputArguments[0]?.value;
|
|
294
|
-
if (!(roleNodeId instanceof
|
|
295
|
-
return { statusCode:
|
|
291
|
+
if (!(roleNodeId instanceof NodeId)) {
|
|
292
|
+
return { statusCode: StatusCodes.BadInvalidArgument };
|
|
296
293
|
}
|
|
297
294
|
// Well-known Roles are required by the Server and cannot be removed (§4.3)
|
|
298
295
|
if (isWellKnownRoleNodeId(roleNodeId)) {
|
|
299
|
-
return { statusCode:
|
|
296
|
+
return { statusCode: StatusCodes.BadRequestNotAllowed };
|
|
300
297
|
}
|
|
301
298
|
const node = addressSpace.findNode(roleNodeId);
|
|
302
299
|
if (node?.typeDefinitionObj?.browseName.name !== "RoleType") {
|
|
303
|
-
return { statusCode:
|
|
300
|
+
return { statusCode: StatusCodes.BadNodeIdUnknown };
|
|
304
301
|
}
|
|
305
302
|
// remove the node, its identity mappings and the persisted definition
|
|
306
303
|
for (const rule of store.getIdentitiesForRole(roleNodeId)) {
|
|
307
304
|
store.removeIdentity(roleNodeId, rule);
|
|
308
305
|
}
|
|
309
306
|
addressSpace.deleteNode(roleNodeId);
|
|
310
|
-
const idx = customRoles.findIndex((r) =>
|
|
307
|
+
const idx = customRoles.findIndex((r) => sameNodeId(resolveNodeId(r.nodeId), roleNodeId));
|
|
311
308
|
if (idx >= 0)
|
|
312
309
|
customRoles.splice(idx, 1);
|
|
313
310
|
await persist();
|
|
314
|
-
return { statusCode:
|
|
311
|
+
return { statusCode: StatusCodes.Good };
|
|
315
312
|
};
|
|
316
313
|
if (roleSet.addRole) {
|
|
317
314
|
roleSet.addRole.bindMethod(addRoleHandler);
|
|
318
|
-
|
|
315
|
+
hardenAdminOnly(roleSet.addRole);
|
|
319
316
|
}
|
|
320
317
|
if (roleSet.removeRole) {
|
|
321
318
|
roleSet.removeRole.bindMethod(removeRoleHandler);
|
|
322
|
-
|
|
319
|
+
hardenAdminOnly(roleSet.removeRole);
|
|
323
320
|
}
|
|
324
321
|
return { store, restrictionStore, resolver };
|
|
325
322
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install_role_set.js","sourceRoot":"","sources":["../source/install_role_set.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"install_role_set.js","sourceRoot":"","sources":["../source/install_role_set.ts"],"names":[],"mappings":"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"}
|
|
@@ -66,3 +66,4 @@ export interface IServerForUserManagement {
|
|
|
66
66
|
* Object exists).
|
|
67
67
|
*/
|
|
68
68
|
export declare function installUserManagement(server: IServerForUserManagement, options?: InstallUserManagementOptions): Promise<InstallUserManagementResult>;
|
|
69
|
+
//# sourceMappingURL=install_user_management.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install_user_management.d.ts","sourceRoot":"","sources":["../source/install_user_management.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,aAAa,EAAkC,MAAM,0BAA0B,CAAC;AAE9F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACH,YAAY,EAEZ,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACtB,MAAM,4BAA4B,CAAC;AAsBpC,MAAM,WAAW,4BAA4B;IACzC,gGAAgG;IAChG,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,uFAAuF;IACvF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2FAA2F;IAC3F,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,2BAA2B;IACxC,KAAK,EAAE,oBAAoB,CAAC;CAC/B;AAED,oGAAoG;AACpG,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,+FAA+F;IAC/F,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CACxC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,wBAAwB;IACrC,MAAM,EAAE;QACJ,YAAY,EAAE,aAAa,GAAG,IAAI,CAAC;QACnC,WAAW,CAAC,IAAI,cAAc,EAAE,CAAC;QACjC,YAAY,CAAC,CAAC,mBAAmB,EAAE,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;KAClG,CAAC;CACL;AAiCD;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACvC,MAAM,EAAE,wBAAwB,EAChC,OAAO,CAAC,EAAE,4BAA4B,GACvC,OAAO,CAAC,2BAA2B,CAAC,CA2GtC"}
|