export declare const modulePermissionResolutionQuery = "\n WITH m,\n coalesce(apoc.convert.fromJsonList(m.permissions), []) AS defaultPermissions,\n collect(perm) AS perms\n WITH m, defaultPermissions,\n apoc.coll.flatten([p IN perms | coalesce(apoc.convert.fromJsonList(p.permissions), [])]) AS rolePerms\n WITH m,\n head([x IN defaultPermissions WHERE x.type = 'create' | x.value]) AS defaultCreate,\n head([x IN defaultPermissions WHERE x.type = 'read' | x.value]) AS defaultRead,\n head([x IN defaultPermissions WHERE x.type = 'update' | x.value]) AS defaultUpdate,\n head([x IN defaultPermissions WHERE x.type = 'delete' | x.value]) AS defaultDelete,\n rolePerms\n WITH m,\n [defaultCreate] + [x IN rolePerms WHERE x.type = 'create' | x.value] AS createValues,\n [defaultRead] + [x IN rolePerms WHERE x.type = 'read' | x.value] AS readValues,\n [defaultUpdate] + [x IN rolePerms WHERE x.type = 'update' | x.value] AS updateValues,\n [defaultDelete] + [x IN rolePerms WHERE x.type = 'delete' | x.value] AS deleteValues\n WITH m,\n CASE\n WHEN any(x IN createValues WHERE x = true) THEN true\n WHEN any(x IN createValues WHERE x IS NOT NULL AND x <> false AND x <> true)\n THEN head([x IN createValues WHERE x IS NOT NULL AND x <> false AND x <> true])\n ELSE coalesce(head(createValues), false)\n END AS effectiveCreate,\n CASE\n WHEN any(x IN readValues WHERE x = true) THEN true\n WHEN any(x IN readValues WHERE x IS NOT NULL AND x <> false AND x <> true)\n THEN head([x IN readValues WHERE x IS NOT NULL AND x <> false AND x <> true])\n ELSE coalesce(head(readValues), false)\n END AS effectiveRead,\n CASE\n WHEN any(x IN updateValues WHERE x = true) THEN true\n WHEN any(x IN updateValues WHERE x IS NOT NULL AND x <> false AND x <> true)\n THEN head([x IN updateValues WHERE x IS NOT NULL AND x <> false AND x <> true])\n ELSE coalesce(head(updateValues), false)\n END AS effectiveUpdate,\n CASE\n WHEN any(x IN deleteValues WHERE x = true) THEN true\n WHEN any(x IN deleteValues WHERE x IS NOT NULL AND x <> false AND x <> true)\n THEN head([x IN deleteValues WHERE x IS NOT NULL AND x <> false AND x <> true])\n ELSE coalesce(head(deleteValues), false)\n END AS effectiveDelete\n WITH m, apoc.convert.toJson([\n { type: \"create\", value: effectiveCreate },\n { type: \"read\", value: effectiveRead },\n { type: \"update\", value: effectiveUpdate },\n { type: \"delete\", value: effectiveDelete }\n ]) AS newPermissions\n CALL apoc.create.vNode(\n labels(m),\n apoc.map.merge(properties(m), { permissions: newPermissions })\n ) YIELD node AS module\n\n RETURN module\n"; export declare const featureModuleQuery = "\n OPTIONAL MATCH (user)-[:HAS_MEMBERSHIP]->(fm_ms:Membership)\n WHERE (fm_ms)-[:IN_COMPANY]->(company) OR NOT (fm_ms)-[:IN_COMPANY]->(:Company)\n OPTIONAL MATCH (fm_ms)-[:HAS_ROLE]->(role:Role)\n OPTIONAL MATCH (feature:Feature)\n WHERE exists((company)-[:HAS_FEATURE]->(feature))\n OR feature.isCore = true\n MATCH (m:Module)-[:IN_FEATURE]->(feature)\n OPTIONAL MATCH (role)-[perm:HAS_PERMISSIONS]->(m)\n \n WITH m,\n coalesce(apoc.convert.fromJsonList(m.permissions), []) AS defaultPermissions,\n collect(perm) AS perms\n WITH m, defaultPermissions,\n apoc.coll.flatten([p IN perms | coalesce(apoc.convert.fromJsonList(p.permissions), [])]) AS rolePerms\n WITH m,\n head([x IN defaultPermissions WHERE x.type = 'create' | x.value]) AS defaultCreate,\n head([x IN defaultPermissions WHERE x.type = 'read' | x.value]) AS defaultRead,\n head([x IN defaultPermissions WHERE x.type = 'update' | x.value]) AS defaultUpdate,\n head([x IN defaultPermissions WHERE x.type = 'delete' | x.value]) AS defaultDelete,\n rolePerms\n WITH m,\n [defaultCreate] + [x IN rolePerms WHERE x.type = 'create' | x.value] AS createValues,\n [defaultRead] + [x IN rolePerms WHERE x.type = 'read' | x.value] AS readValues,\n [defaultUpdate] + [x IN rolePerms WHERE x.type = 'update' | x.value] AS updateValues,\n [defaultDelete] + [x IN rolePerms WHERE x.type = 'delete' | x.value] AS deleteValues\n WITH m,\n CASE\n WHEN any(x IN createValues WHERE x = true) THEN true\n WHEN any(x IN createValues WHERE x IS NOT NULL AND x <> false AND x <> true)\n THEN head([x IN createValues WHERE x IS NOT NULL AND x <> false AND x <> true])\n ELSE coalesce(head(createValues), false)\n END AS effectiveCreate,\n CASE\n WHEN any(x IN readValues WHERE x = true) THEN true\n WHEN any(x IN readValues WHERE x IS NOT NULL AND x <> false AND x <> true)\n THEN head([x IN readValues WHERE x IS NOT NULL AND x <> false AND x <> true])\n ELSE coalesce(head(readValues), false)\n END AS effectiveRead,\n CASE\n WHEN any(x IN updateValues WHERE x = true) THEN true\n WHEN any(x IN updateValues WHERE x IS NOT NULL AND x <> false AND x <> true)\n THEN head([x IN updateValues WHERE x IS NOT NULL AND x <> false AND x <> true])\n ELSE coalesce(head(updateValues), false)\n END AS effectiveUpdate,\n CASE\n WHEN any(x IN deleteValues WHERE x = true) THEN true\n WHEN any(x IN deleteValues WHERE x IS NOT NULL AND x <> false AND x <> true)\n THEN head([x IN deleteValues WHERE x IS NOT NULL AND x <> false AND x <> true])\n ELSE coalesce(head(deleteValues), false)\n END AS effectiveDelete\n WITH m, apoc.convert.toJson([\n { type: \"create\", value: effectiveCreate },\n { type: \"read\", value: effectiveRead },\n { type: \"update\", value: effectiveUpdate },\n { type: \"delete\", value: effectiveDelete }\n ]) AS newPermissions\n CALL apoc.create.vNode(\n labels(m),\n apoc.map.merge(properties(m), { permissions: newPermissions })\n ) YIELD node AS module\n\n RETURN module\n\n"; export declare const adminModuleQuery = "\n MATCH (user:User {id: $searchValue})-[:HAS_MEMBERSHIP]->(am_ms:Membership)\n WHERE NOT (am_ms)-[:IN_COMPANY]->(:Company)\n MATCH (am_ms)-[:HAS_ROLE]->(role:Role)\n MATCH (role)-[perm:HAS_PERMISSIONS]->(m:Module)\n \n WITH m,\n coalesce(apoc.convert.fromJsonList(m.permissions), []) AS defaultPermissions,\n collect(perm) AS perms\n WITH m, defaultPermissions,\n apoc.coll.flatten([p IN perms | coalesce(apoc.convert.fromJsonList(p.permissions), [])]) AS rolePerms\n WITH m,\n head([x IN defaultPermissions WHERE x.type = 'create' | x.value]) AS defaultCreate,\n head([x IN defaultPermissions WHERE x.type = 'read' | x.value]) AS defaultRead,\n head([x IN defaultPermissions WHERE x.type = 'update' | x.value]) AS defaultUpdate,\n head([x IN defaultPermissions WHERE x.type = 'delete' | x.value]) AS defaultDelete,\n rolePerms\n WITH m,\n [defaultCreate] + [x IN rolePerms WHERE x.type = 'create' | x.value] AS createValues,\n [defaultRead] + [x IN rolePerms WHERE x.type = 'read' | x.value] AS readValues,\n [defaultUpdate] + [x IN rolePerms WHERE x.type = 'update' | x.value] AS updateValues,\n [defaultDelete] + [x IN rolePerms WHERE x.type = 'delete' | x.value] AS deleteValues\n WITH m,\n CASE\n WHEN any(x IN createValues WHERE x = true) THEN true\n WHEN any(x IN createValues WHERE x IS NOT NULL AND x <> false AND x <> true)\n THEN head([x IN createValues WHERE x IS NOT NULL AND x <> false AND x <> true])\n ELSE coalesce(head(createValues), false)\n END AS effectiveCreate,\n CASE\n WHEN any(x IN readValues WHERE x = true) THEN true\n WHEN any(x IN readValues WHERE x IS NOT NULL AND x <> false AND x <> true)\n THEN head([x IN readValues WHERE x IS NOT NULL AND x <> false AND x <> true])\n ELSE coalesce(head(readValues), false)\n END AS effectiveRead,\n CASE\n WHEN any(x IN updateValues WHERE x = true) THEN true\n WHEN any(x IN updateValues WHERE x IS NOT NULL AND x <> false AND x <> true)\n THEN head([x IN updateValues WHERE x IS NOT NULL AND x <> false AND x <> true])\n ELSE coalesce(head(updateValues), false)\n END AS effectiveUpdate,\n CASE\n WHEN any(x IN deleteValues WHERE x = true) THEN true\n WHEN any(x IN deleteValues WHERE x IS NOT NULL AND x <> false AND x <> true)\n THEN head([x IN deleteValues WHERE x IS NOT NULL AND x <> false AND x <> true])\n ELSE coalesce(head(deleteValues), false)\n END AS effectiveDelete\n WITH m, apoc.convert.toJson([\n { type: \"create\", value: effectiveCreate },\n { type: \"read\", value: effectiveRead },\n { type: \"update\", value: effectiveUpdate },\n { type: \"delete\", value: effectiveDelete }\n ]) AS newPermissions\n CALL apoc.create.vNode(\n labels(m),\n apoc.map.merge(properties(m), { permissions: newPermissions })\n ) YIELD node AS module\n\n RETURN module\n\n"; //# sourceMappingURL=feature.module.query.d.ts.map