{"version":3,"file":"index.mjs","sources":["../../../../../src/lib/auth/active-directory/presets/index.ts"],"sourcesContent":["/**\n * Active Directory Group Mapping - Predefined Presets\n *\n * Common group naming conventions and their mappings.\n *\n * @module auth/active-directory/presets\n */\n\nimport type { ADGroupRoleMapping } from '../types';\nimport type { Role } from '../../types';\n\n/**\n * Common group naming conventions and their mappings.\n */\nexport const GROUP_MAPPING_PRESETS = {\n  /**\n   * Azure AD standard security group naming convention.\n   * Groups named like: sg-app-admins, sg-app-managers, sg-app-users\n   */\n  azureSecurityGroups: (appPrefix: string): ADGroupRoleMapping[] => [\n    {\n      groupIdentifier: `sg-${appPrefix}-admins`,\n      matchType: 'exact',\n      role: 'admin' as Role,\n      additionalPermissions: ['admin:*', 'manage:*'],\n      priority: 100,\n      enabled: true,\n    },\n    {\n      groupIdentifier: `sg-${appPrefix}-managers`,\n      matchType: 'exact',\n      role: 'manager' as Role,\n      additionalPermissions: ['manage:team', 'reports:view'],\n      priority: 50,\n      enabled: true,\n    },\n    {\n      groupIdentifier: `sg-${appPrefix}-users`,\n      matchType: 'exact',\n      role: 'user' as Role,\n      additionalPermissions: ['app:access'],\n      priority: 10,\n      enabled: true,\n    },\n    {\n      groupIdentifier: `sg-${appPrefix}-*`,\n      matchType: 'pattern',\n      role: 'guest' as Role,\n      additionalPermissions: [],\n      priority: 1,\n      enabled: true,\n    },\n  ],\n\n  /**\n   * On-premises AD naming convention.\n   * Groups named like: APP_AdminGroup, APP_UserGroup\n   */\n  onPremisesGroups: (appPrefix: string): ADGroupRoleMapping[] => [\n    {\n      groupIdentifier: `${appPrefix}_AdminGroup`,\n      matchType: 'exact',\n      role: 'admin' as Role,\n      additionalPermissions: ['admin:*'],\n      priority: 100,\n      enabled: true,\n    },\n    {\n      groupIdentifier: `${appPrefix}_ManagerGroup`,\n      matchType: 'exact',\n      role: 'manager' as Role,\n      additionalPermissions: ['manage:*'],\n      priority: 50,\n      enabled: true,\n    },\n    {\n      groupIdentifier: `${appPrefix}_UserGroup`,\n      matchType: 'exact',\n      role: 'user' as Role,\n      additionalPermissions: [],\n      priority: 10,\n      enabled: true,\n    },\n  ],\n\n  /**\n   * Azure AD role-based groups (mapped from Azure AD roles).\n   */\n  azureDirectoryRoles: (): ADGroupRoleMapping[] => [\n    {\n      groupIdentifier: 'Global Administrator',\n      matchType: 'exact',\n      role: 'admin' as Role,\n      additionalPermissions: ['*'],\n      priority: 1000,\n      enabled: true,\n    },\n    {\n      groupIdentifier: 'Application Administrator',\n      matchType: 'exact',\n      role: 'admin' as Role,\n      additionalPermissions: ['app:manage'],\n      priority: 500,\n      enabled: true,\n    },\n    {\n      groupIdentifier: 'Cloud Application Administrator',\n      matchType: 'exact',\n      role: 'manager' as Role,\n      additionalPermissions: ['app:configure'],\n      priority: 400,\n      enabled: true,\n    },\n  ],\n\n  /**\n   * Department-based access control.\n   */\n  departmentBasedAccess: (): ADGroupRoleMapping[] => [\n    {\n      groupIdentifier: 'Department-IT',\n      matchType: 'prefix',\n      role: 'admin' as Role,\n      additionalPermissions: ['it:admin'],\n      priority: 100,\n      enabled: true,\n    },\n    {\n      groupIdentifier: 'Department-HR',\n      matchType: 'prefix',\n      role: 'manager' as Role,\n      additionalPermissions: ['hr:access'],\n      priority: 50,\n      enabled: true,\n    },\n    {\n      groupIdentifier: 'Department-*',\n      matchType: 'pattern',\n      role: 'user' as Role,\n      additionalPermissions: [],\n      priority: 10,\n      enabled: true,\n    },\n  ],\n} as const;\n"],"names":["GROUP_MAPPING_PRESETS","appPrefix"],"mappings":"AAcO,MAAMA,IAAwB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKnC,qBAAqB,CAACC,MAA4C;AAAA,IAChE;AAAA,MACE,iBAAiB,MAAMA,CAAS;AAAA,MAChC,WAAW;AAAA,MACX,MAAM;AAAA,MACN,uBAAuB,CAAC,WAAW,UAAU;AAAA,MAC7C,UAAU;AAAA,MACV,SAAS;AAAA,IAAA;AAAA,IAEX;AAAA,MACE,iBAAiB,MAAMA,CAAS;AAAA,MAChC,WAAW;AAAA,MACX,MAAM;AAAA,MACN,uBAAuB,CAAC,eAAe,cAAc;AAAA,MACrD,UAAU;AAAA,MACV,SAAS;AAAA,IAAA;AAAA,IAEX;AAAA,MACE,iBAAiB,MAAMA,CAAS;AAAA,MAChC,WAAW;AAAA,MACX,MAAM;AAAA,MACN,uBAAuB,CAAC,YAAY;AAAA,MACpC,UAAU;AAAA,MACV,SAAS;AAAA,IAAA;AAAA,IAEX;AAAA,MACE,iBAAiB,MAAMA,CAAS;AAAA,MAChC,WAAW;AAAA,MACX,MAAM;AAAA,MACN,uBAAuB,CAAA;AAAA,MACvB,UAAU;AAAA,MACV,SAAS;AAAA,IAAA;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAOF,kBAAkB,CAACA,MAA4C;AAAA,IAC7D;AAAA,MACE,iBAAiB,GAAGA,CAAS;AAAA,MAC7B,WAAW;AAAA,MACX,MAAM;AAAA,MACN,uBAAuB,CAAC,SAAS;AAAA,MACjC,UAAU;AAAA,MACV,SAAS;AAAA,IAAA;AAAA,IAEX;AAAA,MACE,iBAAiB,GAAGA,CAAS;AAAA,MAC7B,WAAW;AAAA,MACX,MAAM;AAAA,MACN,uBAAuB,CAAC,UAAU;AAAA,MAClC,UAAU;AAAA,MACV,SAAS;AAAA,IAAA;AAAA,IAEX;AAAA,MACE,iBAAiB,GAAGA,CAAS;AAAA,MAC7B,WAAW;AAAA,MACX,MAAM;AAAA,MACN,uBAAuB,CAAA;AAAA,MACvB,UAAU;AAAA,MACV,SAAS;AAAA,IAAA;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAMF,qBAAqB,MAA4B;AAAA,IAC/C;AAAA,MACE,iBAAiB;AAAA,MACjB,WAAW;AAAA,MACX,MAAM;AAAA,MACN,uBAAuB,CAAC,GAAG;AAAA,MAC3B,UAAU;AAAA,MACV,SAAS;AAAA,IAAA;AAAA,IAEX;AAAA,MACE,iBAAiB;AAAA,MACjB,WAAW;AAAA,MACX,MAAM;AAAA,MACN,uBAAuB,CAAC,YAAY;AAAA,MACpC,UAAU;AAAA,MACV,SAAS;AAAA,IAAA;AAAA,IAEX;AAAA,MACE,iBAAiB;AAAA,MACjB,WAAW;AAAA,MACX,MAAM;AAAA,MACN,uBAAuB,CAAC,eAAe;AAAA,MACvC,UAAU;AAAA,MACV,SAAS;AAAA,IAAA;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAMF,uBAAuB,MAA4B;AAAA,IACjD;AAAA,MACE,iBAAiB;AAAA,MACjB,WAAW;AAAA,MACX,MAAM;AAAA,MACN,uBAAuB,CAAC,UAAU;AAAA,MAClC,UAAU;AAAA,MACV,SAAS;AAAA,IAAA;AAAA,IAEX;AAAA,MACE,iBAAiB;AAAA,MACjB,WAAW;AAAA,MACX,MAAM;AAAA,MACN,uBAAuB,CAAC,WAAW;AAAA,MACnC,UAAU;AAAA,MACV,SAAS;AAAA,IAAA;AAAA,IAEX;AAAA,MACE,iBAAiB;AAAA,MACjB,WAAW;AAAA,MACX,MAAM;AAAA,MACN,uBAAuB,CAAA;AAAA,MACvB,UAAU;AAAA,MACV,SAAS;AAAA,IAAA;AAAA,EACX;AAEJ;"}