UNPKG

@aws-amplify/core

Version:
1 lines 3.94 kB
{"version":3,"file":"record.mjs","sources":["../../../../../src/providers/pinpoint/apis/record.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { amplifyUuid } from '../../../utils/amplifyUuid';\nimport { resolveEndpointId } from '../utils';\nimport { SESSION_START_EVENT, SESSION_STOP_EVENT, } from '../../../utils/sessionListener';\nimport { BUFFER_SIZE, FLUSH_INTERVAL, FLUSH_SIZE, RESEND_LIMIT, } from '../utils/constants';\nimport { getEventBuffer } from '../utils/getEventBuffer';\nlet session;\n/**\n * @internal\n */\nexport const record = async ({ appId, category, channelType, credentials, event, identityId, region, userAgentValue, bufferSize, flushInterval, flushSize, resendLimit, }) => {\n let eventSession = session;\n const currentTime = new Date();\n const timestampISOString = currentTime.toISOString();\n const eventId = amplifyUuid();\n // Prepare event buffer if required\n const buffer = getEventBuffer({\n appId,\n region,\n credentials,\n bufferSize: bufferSize ?? BUFFER_SIZE,\n flushInterval: flushInterval ?? FLUSH_INTERVAL,\n flushSize: flushSize ?? FLUSH_SIZE,\n resendLimit: resendLimit ?? RESEND_LIMIT,\n identityId,\n userAgentValue,\n });\n const endpointId = await resolveEndpointId({\n appId,\n category,\n channelType,\n credentials,\n identityId,\n region,\n userAgentValue,\n });\n // Generate session if required\n if (!eventSession || event.name === SESSION_START_EVENT) {\n const sessionId = amplifyUuid();\n session = {\n Id: sessionId,\n StartTimestamp: timestampISOString,\n };\n eventSession = session;\n }\n // Terminate session when required\n if (session && event.name === SESSION_STOP_EVENT) {\n eventSession = {\n ...session,\n StopTimestamp: timestampISOString,\n Duration: currentTime.getTime() - new Date(session.StartTimestamp).getTime(),\n };\n session = undefined;\n }\n // Push event to buffer\n buffer.push({\n eventId,\n endpointId,\n event,\n session: eventSession,\n timestamp: timestampISOString,\n resendLimit: resendLimit ?? RESEND_LIMIT,\n });\n};\n"],"names":[],"mappings":";;;;;;;;AAAA;AACA;AAMA,IAAI,OAAO;AACX;AACA;AACA;AACY,MAAC,MAAM,GAAG,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,GAAG,KAAK;AAC9K,IAAI,IAAI,YAAY,GAAG,OAAO;AAC9B,IAAI,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE;AAClC,IAAI,MAAM,kBAAkB,GAAG,WAAW,CAAC,WAAW,EAAE;AACxD,IAAI,MAAM,OAAO,GAAG,WAAW,EAAE;AACjC;AACA,IAAI,MAAM,MAAM,GAAG,cAAc,CAAC;AAClC,QAAQ,KAAK;AACb,QAAQ,MAAM;AACd,QAAQ,WAAW;AACnB,QAAQ,UAAU,EAAE,UAAU,IAAI,WAAW;AAC7C,QAAQ,aAAa,EAAE,aAAa,IAAI,cAAc;AACtD,QAAQ,SAAS,EAAE,SAAS,IAAI,UAAU;AAC1C,QAAQ,WAAW,EAAE,WAAW,IAAI,YAAY;AAChD,QAAQ,UAAU;AAClB,QAAQ,cAAc;AACtB,KAAK,CAAC;AACN,IAAI,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC;AAC/C,QAAQ,KAAK;AACb,QAAQ,QAAQ;AAChB,QAAQ,WAAW;AACnB,QAAQ,WAAW;AACnB,QAAQ,UAAU;AAClB,QAAQ,MAAM;AACd,QAAQ,cAAc;AACtB,KAAK,CAAC;AACN;AACA,IAAI,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,EAAE;AAC7D,QAAQ,MAAM,SAAS,GAAG,WAAW,EAAE;AACvC,QAAQ,OAAO,GAAG;AAClB,YAAY,EAAE,EAAE,SAAS;AACzB,YAAY,cAAc,EAAE,kBAAkB;AAC9C,SAAS;AACT,QAAQ,YAAY,GAAG,OAAO;AAC9B;AACA;AACA,IAAI,IAAI,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE;AACtD,QAAQ,YAAY,GAAG;AACvB,YAAY,GAAG,OAAO;AACtB,YAAY,aAAa,EAAE,kBAAkB;AAC7C,YAAY,QAAQ,EAAE,WAAW,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE;AACxF,SAAS;AACT,QAAQ,OAAO,GAAG,SAAS;AAC3B;AACA;AACA,IAAI,MAAM,CAAC,IAAI,CAAC;AAChB,QAAQ,OAAO;AACf,QAAQ,UAAU;AAClB,QAAQ,KAAK;AACb,QAAQ,OAAO,EAAE,YAAY;AAC7B,QAAQ,SAAS,EAAE,kBAAkB;AACrC,QAAQ,WAAW,EAAE,WAAW,IAAI,YAAY;AAChD,KAAK,CAAC;AACN;;;;"}