{"version":3,"file":"listCallerAccessGrants.mjs","sources":["../../../../src/internals/apis/listCallerAccessGrants.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { StorageAction } from '@aws-amplify/core/internals/utils';\nimport { logger } from '../../utils';\nimport { listCallerAccessGrants as listCallerAccessGrantsClient } from '../../providers/s3/utils/client/s3control';\nimport { StorageError } from '../../errors/StorageError';\nimport { getStorageUserAgentValue } from '../../providers/s3/utils/userAgent';\nimport { MAX_PAGE_SIZE } from '../utils/constants';\n/**\n * @internal\n */\nexport const listCallerAccessGrants = async (input) => {\n    const { credentialsProvider, accountId, region, nextToken, pageSize, customEndpoint, } = input;\n    logger.debug(`listing available locations from account ${input.accountId}`);\n    if (!!pageSize && pageSize > MAX_PAGE_SIZE) {\n        logger.debug(`defaulting pageSize to ${MAX_PAGE_SIZE}.`);\n    }\n    const clientCredentialsProvider = async (options) => {\n        const { credentials } = await credentialsProvider(options);\n        return credentials;\n    };\n    const { CallerAccessGrantsList, NextToken, $metadata } = await listCallerAccessGrantsClient({\n        credentials: clientCredentialsProvider,\n        customEndpoint,\n        region,\n        userAgentValue: getStorageUserAgentValue(StorageAction.ListCallerAccessGrants),\n    }, {\n        AccountId: accountId,\n        NextToken: nextToken,\n        MaxResults: pageSize ?? MAX_PAGE_SIZE,\n        AllowedByApplication: true,\n    });\n    const accessGrants = CallerAccessGrantsList?.map(grant => {\n        assertGrantScope(grant.GrantScope, $metadata);\n        return {\n            scope: grant.GrantScope,\n            permission: grant.Permission,\n            type: parseGrantType(grant.GrantScope),\n        };\n    }) ?? [];\n    return {\n        locations: accessGrants,\n        nextToken: NextToken,\n    };\n};\nconst parseGrantType = (grantScope) => {\n    const bucketScopeReg = /^s3:\\/\\/(.*)\\/\\*$/;\n    const possibleBucketName = grantScope.match(bucketScopeReg)?.[1];\n    if (!grantScope.endsWith('*')) {\n        return 'OBJECT';\n    }\n    else if (grantScope.endsWith('/*') &&\n        possibleBucketName &&\n        possibleBucketName.indexOf('/') === -1) {\n        return 'BUCKET';\n    }\n    else {\n        return 'PREFIX';\n    }\n};\nfunction assertGrantScope(value, responseMetadata) {\n    if (typeof value !== 'string' || !value.startsWith('s3://')) {\n        throw new StorageError({\n            name: 'InvalidGrantScope',\n            message: `Expected a valid grant scope, got ${value}`,\n            metadata: responseMetadata,\n        });\n    }\n}\n"],"names":["listCallerAccessGrantsClient"],"mappings":";;;;;;;;;AAAA;AACA;AAOA;AACA;AACA;AACY,MAAC,sBAAsB,GAAG,OAAO,KAAK,KAAK;AACvD,IAAI,MAAM,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,GAAG,GAAG,KAAK;AAClG,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,yCAAyC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;AAC/E,IAAI,IAAI,CAAC,CAAC,QAAQ,IAAI,QAAQ,GAAG,aAAa,EAAE;AAChD,QAAQ,MAAM,CAAC,KAAK,CAAC,CAAC,uBAAuB,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;AAChE,IAAI;AACJ,IAAI,MAAM,yBAAyB,GAAG,OAAO,OAAO,KAAK;AACzD,QAAQ,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC;AAClE,QAAQ,OAAO,WAAW;AAC1B,IAAI,CAAC;AACL,IAAI,MAAM,EAAE,sBAAsB,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,MAAMA,wBAA4B,CAAC;AAChG,QAAQ,WAAW,EAAE,yBAAyB;AAC9C,QAAQ,cAAc;AACtB,QAAQ,MAAM;AACd,QAAQ,cAAc,EAAE,wBAAwB,CAAC,aAAa,CAAC,sBAAsB,CAAC;AACtF,KAAK,EAAE;AACP,QAAQ,SAAS,EAAE,SAAS;AAC5B,QAAQ,SAAS,EAAE,SAAS;AAC5B,QAAQ,UAAU,EAAE,QAAQ,IAAI,aAAa;AAC7C,QAAQ,oBAAoB,EAAE,IAAI;AAClC,KAAK,CAAC;AACN,IAAI,MAAM,YAAY,GAAG,sBAAsB,EAAE,GAAG,CAAC,KAAK,IAAI;AAC9D,QAAQ,gBAAgB,CAAC,KAAK,CAAC,UAAU,EAAE,SAAS,CAAC;AACrD,QAAQ,OAAO;AACf,YAAY,KAAK,EAAE,KAAK,CAAC,UAAU;AACnC,YAAY,UAAU,EAAE,KAAK,CAAC,UAAU;AACxC,YAAY,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC;AAClD,SAAS;AACT,IAAI,CAAC,CAAC,IAAI,EAAE;AACZ,IAAI,OAAO;AACX,QAAQ,SAAS,EAAE,YAAY;AAC/B,QAAQ,SAAS,EAAE,SAAS;AAC5B,KAAK;AACL;AACA,MAAM,cAAc,GAAG,CAAC,UAAU,KAAK;AACvC,IAAI,MAAM,cAAc,GAAG,mBAAmB;AAC9C,IAAI,MAAM,kBAAkB,GAAG,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AACpE,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACnC,QAAQ,OAAO,QAAQ;AACvB,IAAI;AACJ,SAAS,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;AACtC,QAAQ,kBAAkB;AAC1B,QAAQ,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE;AAChD,QAAQ,OAAO,QAAQ;AACvB,IAAI;AACJ,SAAS;AACT,QAAQ,OAAO,QAAQ;AACvB,IAAI;AACJ,CAAC;AACD,SAAS,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,EAAE;AACnD,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;AACjE,QAAQ,MAAM,IAAI,YAAY,CAAC;AAC/B,YAAY,IAAI,EAAE,mBAAmB;AACrC,YAAY,OAAO,EAAE,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;AACjE,YAAY,QAAQ,EAAE,gBAAgB;AACtC,SAAS,CAAC;AACV,IAAI;AACJ;;;;"}