{"version":3,"file":"configurationBuilder.mjs","sources":["../../../src/configurationBuilder/configurationBuilder.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { parseAmplifyConfig } from '../utils/parseAmplifyConfig';\nimport { deepMerge } from '../utils/deepMerge';\n/**\n * Creates a configuration builder for constructing `ResourcesConfig` objects\n * programmatically.\n *\n * @example\n * ```ts\n * import outputs from './amplify_outputs.json';\n *\n * const config = createConfiguration({ from: outputs })\n *   .add('Storage', { S3: { bucket: 'my-bucket', region: 'us-east-1' } })\n *   .build();\n *\n * Amplify.configure(config);\n * ```\n */\nexport function createConfigurationBuilder(options) {\n    const config = {};\n    function mergeFrom(seed) {\n        const resolved = 'build' in seed && typeof seed.build === 'function'\n            ? seed.build()\n            : parseAmplifyConfig(seed);\n        Object.assign(config, resolved);\n    }\n    if (options?.from) {\n        mergeFrom(options.from);\n    }\n    const builder = {\n        from(existing) {\n            mergeFrom(existing);\n            return builder;\n        },\n        add(category, value) {\n            config[category] = value;\n            return builder;\n        },\n        patch(category, value) {\n            const existing = config[category];\n            config[category] = deepMerge(existing ?? {}, value);\n            return builder;\n        },\n        auth(value) {\n            return builder.add('Auth', value);\n        },\n        storage(value) {\n            return builder.add('Storage', value);\n        },\n        api(value) {\n            return builder.add('API', value);\n        },\n        analytics(value) {\n            return builder.add('Analytics', value);\n        },\n        geo(value) {\n            return builder.add('Geo', value);\n        },\n        notifications(value) {\n            return builder.add('Notifications', value);\n        },\n        interactions(value) {\n            return builder.add('Interactions', value);\n        },\n        predictions(value) {\n            return builder.add('Predictions', value);\n        },\n        build() {\n            return Object.freeze({ ...config });\n        },\n    };\n    return builder;\n}\n"],"names":[],"mappings":";;;AAAA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,0BAA0B,CAAC,OAAO,EAAE;AACpD,IAAI,MAAM,MAAM,GAAG,EAAE;AACrB,IAAI,SAAS,SAAS,CAAC,IAAI,EAAE;AAC7B,QAAQ,MAAM,QAAQ,GAAG,OAAO,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK;AAClE,cAAc,IAAI,CAAC,KAAK;AACxB,cAAc,kBAAkB,CAAC,IAAI,CAAC;AACtC,QAAQ,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC;AACvC,IAAI;AACJ,IAAI,IAAI,OAAO,EAAE,IAAI,EAAE;AACvB,QAAQ,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;AAC/B,IAAI;AACJ,IAAI,MAAM,OAAO,GAAG;AACpB,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,YAAY,SAAS,CAAC,QAAQ,CAAC;AAC/B,YAAY,OAAO,OAAO;AAC1B,QAAQ,CAAC;AACT,QAAQ,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE;AAC7B,YAAY,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK;AACpC,YAAY,OAAO,OAAO;AAC1B,QAAQ,CAAC;AACT,QAAQ,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE;AAC/B,YAAY,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC7C,YAAY,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,QAAQ,IAAI,EAAE,EAAE,KAAK,CAAC;AAC/D,YAAY,OAAO,OAAO;AAC1B,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,KAAK,EAAE;AACpB,YAAY,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;AAC7C,QAAQ,CAAC;AACT,QAAQ,OAAO,CAAC,KAAK,EAAE;AACvB,YAAY,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC;AAChD,QAAQ,CAAC;AACT,QAAQ,GAAG,CAAC,KAAK,EAAE;AACnB,YAAY,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;AAC5C,QAAQ,CAAC;AACT,QAAQ,SAAS,CAAC,KAAK,EAAE;AACzB,YAAY,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC;AAClD,QAAQ,CAAC;AACT,QAAQ,GAAG,CAAC,KAAK,EAAE;AACnB,YAAY,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;AAC5C,QAAQ,CAAC;AACT,QAAQ,aAAa,CAAC,KAAK,EAAE;AAC7B,YAAY,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC;AACtD,QAAQ,CAAC;AACT,QAAQ,YAAY,CAAC,KAAK,EAAE;AAC5B,YAAY,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC;AACrD,QAAQ,CAAC;AACT,QAAQ,WAAW,CAAC,KAAK,EAAE;AAC3B,YAAY,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC;AACpD,QAAQ,CAAC;AACT,QAAQ,KAAK,GAAG;AAChB,YAAY,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;AAC/C,QAAQ,CAAC;AACT,KAAK;AACL,IAAI,OAAO,OAAO;AAClB;;;;"}