import assert from "node:assert/strict"; import { readFileSync } from "node:fs"; import { resolve } from "node:path"; const root = resolve(import.meta.dirname, ".."); const read = (path) => readFileSync(resolve(root, path), "utf8"); const adminPage = read("src/features/admin/AdminPage.tsx"); const users = read("src/features/admin/UsersPanel.tsx"); const groups = read("src/features/admin/GroupsPanel.tsx"); const roles = read("src/features/admin/RolesPanel.tsx"); const systemUsers = read("src/features/admin/SystemUsersPanel.tsx"); const systemRoles = read("src/features/admin/SystemRolesPanel.tsx"); const apiKeys = read("src/features/admin/ApiKeysPanel.tsx"); const mappings = read("src/features/admin/ExternalFunctionRoleMappingsPanel.tsx"); const credentials = read("src/features/admin/CredentialEnvelopesPanel.tsx"); const files = read("src/features/admin/FileConnectorsPanel.tsx"); const mail = read("src/features/admin/MailProfilesPanel.tsx"); const moduleSource = read("src/module.ts"); const surfaces = [users, groups, roles, systemUsers, systemRoles, apiKeys, mappings]; const allAdminSource = [adminPage, credentials, files, mail, ...surfaces].join("\n"); assert.match(adminPage, /TreeSubnav/); assert.match(adminPage, /ActionBlockerHint/); assert.match(adminPage, /ACCESS_WORKFLOW_DOCUMENTATION/); for (const source of surfaces) { assert.match(source, /AdminPageLayout/); assert.match(source, /DataGrid/); assert.match(source, /DocumentationHelpLink/); assert.match(source, /disabledReason/); } for (const source of [users, groups, roles, systemUsers, systemRoles, apiKeys, mappings]) { assert.match(source, /ConfirmDialog/); } assert.match(credentials, /CredentialEnvelopeManager/); assert.match(credentials, /DocumentationHelpLink/); assert.match(files, /usePlatformUiCapability/); assert.match(files, /ActionBlockerHint/); assert.match(mail, /usePlatformUiCapability/); assert.match(mail, /ActionBlockerHint/); assert.match(moduleSource, /translations,/); assert.match(moduleSource, /version: "0\.1\.11"/); assert.doesNotMatch(allAdminSource, /window\.(alert|confirm|prompt)\s*\(/); assert.doesNotMatch(allAdminSource, /@govoplan\/(files|mail|organizations|idm)-webui\//); console.log("Access interface pattern-language checks passed.");