{"version":3,"file":"clientUtils.mjs","sources":["../../../../src/runtime/internals/clientUtils.ts"],"sourcesContent":["import { graphQLOperationsInfo } from './APIClient';\nconst attributeIsSecondaryIndex = (attr) => {\n    return (attr.type === 'key' &&\n        // presence of `name` property distinguishes GSI from primary index\n        attr.properties?.name &&\n        attr.properties?.queryField &&\n        attr.properties?.fields.length > 0);\n};\nexport const getSecondaryIndexesFromSchemaModel = (model) => {\n    const idxs = model.attributes\n        ?.filter(attributeIsSecondaryIndex)\n        .map((attr) => {\n        const queryField = attr.properties.queryField;\n        const [pk, ...sk] = attr.properties.fields;\n        return {\n            queryField,\n            pk,\n            sk,\n        };\n    });\n    return idxs || [];\n};\n/**\n * returns graphQLOperationsInfo, but filters out operations that were disabled via model().disableOperations([...])\n */\nexport const excludeDisabledOps = (mis, modelName) => {\n    /* Example model attributes in MIS {\n      \"type\": \"model\",\n      \"properties\": {\n        \"subscriptions\": null,\n        \"mutations\": { \"delete\": null }\n        \"timestamps\": null\n      } }*/\n    const modelAttrs = mis.models[modelName].attributes?.find((attr) => attr.type === 'model');\n    const coarseToFineDict = {\n        queries: ['list', 'get', 'observeQuery'],\n        mutations: ['create', 'update', 'delete'],\n        subscriptions: ['onCreate', 'onUpdate', 'onDelete'],\n    };\n    const disabledOps = [];\n    if (!modelAttrs) {\n        return graphQLOperationsInfo;\n    }\n    if (modelAttrs.properties) {\n        for (const [key, value] of Object.entries(modelAttrs.properties)) {\n            // model.properties can contain other values that are not relevant to disabling ops, e.g. timestamps\n            if (!(key in coarseToFineDict)) {\n                continue;\n            }\n            if (value === null) {\n                // coarse-grained disable, e.g. \"subscriptions\": null,\n                disabledOps.push(...coarseToFineDict[key]);\n            }\n            else if (value instanceof Object) {\n                // fine-grained, e.g. \"mutations\": { \"delete\": null }\n                disabledOps.push(...Object.keys(value));\n            }\n        }\n    }\n    // observeQuery only exists on the client side, so can't be explicitly disabled via schema builder.\n    // It's unusable without `list`\n    if (disabledOps.includes('list')) {\n        disabledOps.push('observeQuery');\n    }\n    // graphQLOperationsInfo keys are in caps\n    const disabledOpsUpper = disabledOps.map((op) => op.toUpperCase());\n    const filteredGraphQLOperations = Object.fromEntries(Object.entries(graphQLOperationsInfo).filter(([key]) => !disabledOpsUpper.includes(key)));\n    return filteredGraphQLOperations;\n};\n"],"names":[],"mappings":"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"}