{"version":3,"file":"record.mjs","sources":["../../../../../src/providers/kinesis/apis/record.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { fromUtf8 } from '@smithy/util-utf8';\nimport { AnalyticsAction } from '@aws-amplify/core/internals/utils';\nimport { ConsoleLogger } from '@aws-amplify/core';\nimport { getEventBuffer } from '../utils/getEventBuffer';\nimport { resolveConfig } from '../utils/resolveConfig';\nimport { getAnalyticsUserAgentString, isAnalyticsEnabled, resolveCredentials, } from '../../../utils';\nconst logger = new ConsoleLogger('Kinesis');\n/**\n * Record one analytic event and send it to Kinesis. Events will be buffered and periodically sent to\n * Kinesis.\n *\n * @param params The input object used to construct the request.\n *\n * @throws validation: {@link AnalyticsValidationErrorCode} - Thrown when the provided parameters or library\n *  configuration is incorrect.\n *\n * @example\n * ```ts\n * record({\n *     streamName: 'myKinesisStream',\n *     partitionKey: 'myPartitionKey',\n *     data: { } // The data blob to put into the record\n * });\n * ```\n * @param input - The event to record.\n *\n * @returns void\n */\nexport const record = ({ streamName, partitionKey, data, }) => {\n    if (!isAnalyticsEnabled()) {\n        logger.debug('Analytics is disabled, event will not be recorded.');\n        return;\n    }\n    const timestamp = Date.now();\n    const { region, bufferSize, flushSize, flushInterval, resendLimit } = resolveConfig();\n    resolveCredentials()\n        .then(({ credentials, identityId }) => {\n        const buffer = getEventBuffer({\n            region,\n            bufferSize,\n            flushSize,\n            flushInterval,\n            credentials,\n            identityId,\n            resendLimit,\n            userAgentValue: getAnalyticsUserAgentString(AnalyticsAction.Record),\n        });\n        buffer.append({\n            region,\n            streamName,\n            partitionKey,\n            event: ArrayBuffer.isView(data) ? data : fromUtf8(JSON.stringify(data)),\n            timestamp,\n            retryCount: 0,\n        });\n    })\n        .catch(e => {\n        // An error occured while fetching credentials or persisting the event to the buffer\n        logger.warn('Failed to record event.', e);\n    });\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA;AACA;AAOA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,SAAS,CAAC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,MAAM,GAAG,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,GAAG,KAAK;AAC/D,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE;AAC/B,QAAQ,MAAM,CAAC,KAAK,CAAC,oDAAoD,CAAC;AAC1E,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE;AAChC,IAAI,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,aAAa,EAAE;AACzF,IAAI,kBAAkB;AACtB,SAAS,IAAI,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK;AAC/C,QAAQ,MAAM,MAAM,GAAG,cAAc,CAAC;AACtC,YAAY,MAAM;AAClB,YAAY,UAAU;AACtB,YAAY,SAAS;AACrB,YAAY,aAAa;AACzB,YAAY,WAAW;AACvB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB,YAAY,cAAc,EAAE,2BAA2B,CAAC,eAAe,CAAC,MAAM,CAAC;AAC/E,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,MAAM,CAAC;AACtB,YAAY,MAAM;AAClB,YAAY,UAAU;AACtB,YAAY,YAAY;AACxB,YAAY,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACnF,YAAY,SAAS;AACrB,YAAY,UAAU,EAAE,CAAC;AACzB,SAAS,CAAC;AACV,IAAI,CAAC;AACL,SAAS,KAAK,CAAC,CAAC,IAAI;AACpB;AACA,QAAQ,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC;AACjD,IAAI,CAAC,CAAC;AACN;;;;"}