@aws-amplify/notifications 2.0.41-unstable.e28d538.0 → 2.0.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sources":["../../../../../../src/inAppMessaging/providers/pinpoint/utils/helpers.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mapOSPlatform = exports.extractMetadata = exports.extractContent = exports.interpretLayout = exports.clearMemo = exports.isQuietTime = exports.isBeforeEndDate = exports.getComparator = exports.matchesMetrics = exports.matchesAttributes = exports.matchesEventType = exports.getStartOfDay = exports.recordAnalyticsEvent = exports.logger = void 0;\nconst tslib_1 = require(\"tslib\");\nconst core_1 = require(\"@aws-amplify/core\");\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nconst isEmpty_js_1 = tslib_1.__importDefault(require(\"lodash/isEmpty.js\"));\nconst pinpoint_1 = require(\"@aws-amplify/core/internals/providers/pinpoint\");\nconst resolveConfig_1 = require(\"./resolveConfig\");\nconst resolveCredentials_1 = require(\"./resolveCredentials\");\nconst constants_1 = require(\"./constants\");\nconst userAgent_1 = require(\"./userAgent\");\nconst DELIVERY_TYPE = 'IN_APP_MESSAGE';\nlet eventNameMemo = {};\nlet eventAttributesMemo = {};\nlet eventMetricsMemo = {};\nexports.logger = new core_1.ConsoleLogger('InAppMessaging.Pinpoint.Utils');\nconst recordAnalyticsEvent = (event, message) => {\n const { appId, region } = (0, resolveConfig_1.resolveConfig)();\n const { id, metadata } = message;\n (0, resolveCredentials_1.resolveCredentials)()\n .then(({ credentials, identityId }) => {\n (0, pinpoint_1.record)({\n appId,\n category: constants_1.CATEGORY,\n credentials,\n event: {\n name: event,\n attributes: {\n // only include campaign_id field if we have one\n ...(id && { campaign_id: id }),\n delivery_type: DELIVERY_TYPE,\n treatment_id: metadata?.treatmentId,\n },\n },\n identityId,\n region,\n userAgentValue: (0, userAgent_1.getInAppMessagingUserAgentString)(utils_1.InAppMessagingAction.NotifyMessageInteraction),\n });\n })\n .catch(e => {\n // An error occured while fetching credentials or persisting the event to the buffer\n exports.logger.warn('Failed to record event.', e);\n });\n};\nexports.recordAnalyticsEvent = recordAnalyticsEvent;\nconst getStartOfDay = () => {\n const now = new Date();\n now.setHours(0, 0, 0, 0);\n return now.toISOString();\n};\nexports.getStartOfDay = getStartOfDay;\nconst matchesEventType = ({ CampaignId, Schedule }, { name: eventType }) => {\n const { EventType } = Schedule?.EventFilter?.Dimensions ?? {};\n const memoKey = `${CampaignId}:${eventType}`;\n if (!Object.prototype.hasOwnProperty.call(eventNameMemo, memoKey)) {\n eventNameMemo[memoKey] = !!EventType?.Values?.includes(eventType);\n }\n return eventNameMemo[memoKey];\n};\nexports.matchesEventType = matchesEventType;\nconst matchesAttributes = ({ CampaignId, Schedule }, { attributes = {} }) => {\n const { Attributes } = Schedule?.EventFilter?.Dimensions ?? {};\n if ((0, isEmpty_js_1.default)(Attributes)) {\n // if message does not have attributes defined it does not matter what attributes are on the event\n return true;\n }\n if ((0, isEmpty_js_1.default)(attributes)) {\n // if message does have attributes but the event does not then it always fails the check\n return false;\n }\n const memoKey = `${CampaignId}:${JSON.stringify(attributes)}`;\n if (!Object.prototype.hasOwnProperty.call(eventAttributesMemo, memoKey)) {\n eventAttributesMemo[memoKey] =\n !Attributes ||\n Object.entries(Attributes).every(([key, { Values }]) => Values?.includes(attributes[key]));\n }\n return eventAttributesMemo[memoKey];\n};\nexports.matchesAttributes = matchesAttributes;\nconst matchesMetrics = ({ CampaignId, Schedule }, { metrics = {} }) => {\n const { Metrics } = Schedule?.EventFilter?.Dimensions ?? {};\n if ((0, isEmpty_js_1.default)(Metrics)) {\n // if message does not have metrics defined it does not matter what metrics are on the event\n return true;\n }\n if ((0, isEmpty_js_1.default)(metrics)) {\n // if message does have metrics but the event does not then it always fails the check\n return false;\n }\n const memoKey = `${CampaignId}:${JSON.stringify(metrics)}`;\n if (!Object.prototype.hasOwnProperty.call(eventMetricsMemo, memoKey)) {\n eventMetricsMemo[memoKey] =\n !Metrics ||\n Object.entries(Metrics).every(([key, { ComparisonOperator, Value }]) => {\n const compare = (0, exports.getComparator)(ComparisonOperator);\n // if there is some unknown comparison operator, treat as a comparison failure\n return compare && !!Value ? compare(Value, metrics[key]) : false;\n });\n }\n return eventMetricsMemo[memoKey];\n};\nexports.matchesMetrics = matchesMetrics;\nconst getComparator = (operator) => {\n switch (operator) {\n case 'EQUAL':\n return (metricsVal, eventVal) => metricsVal === eventVal;\n case 'GREATER_THAN':\n return (metricsVal, eventVal) => metricsVal < eventVal;\n case 'GREATER_THAN_OR_EQUAL':\n return (metricsVal, eventVal) => metricsVal <= eventVal;\n case 'LESS_THAN':\n return (metricsVal, eventVal) => metricsVal > eventVal;\n case 'LESS_THAN_OR_EQUAL':\n return (metricsVal, eventVal) => metricsVal >= eventVal;\n default:\n return undefined;\n }\n};\nexports.getComparator = getComparator;\nconst isBeforeEndDate = ({ Schedule, }) => {\n if (!Schedule?.EndDate) {\n return true;\n }\n return new Date() < new Date(Schedule.EndDate);\n};\nexports.isBeforeEndDate = isBeforeEndDate;\nconst isQuietTime = (message) => {\n const { Schedule } = message;\n if (!Schedule?.QuietTime) {\n return false;\n }\n const pattern = /^[0-2]\\d:[0-5]\\d$/; // basic sanity check, not a fully featured HH:MM validation\n const { Start, End } = Schedule.QuietTime;\n if (!Start ||\n !End ||\n Start === End ||\n !pattern.test(Start) ||\n !pattern.test(End)) {\n return false;\n }\n const now = new Date();\n const start = new Date(now);\n const end = new Date(now);\n const [startHours, startMinutes] = Start.split(':');\n const [endHours, endMinutes] = End.split(':');\n start.setHours(Number.parseInt(startHours, 10), Number.parseInt(startMinutes, 10), 0, 0);\n end.setHours(Number.parseInt(endHours, 10), Number.parseInt(endMinutes, 10), 0, 0);\n // if quiet time includes midnight, bump the end time to the next day\n if (start > end) {\n end.setDate(end.getDate() + 1);\n }\n const isDuringQuietTime = now >= start && now <= end;\n if (isDuringQuietTime) {\n exports.logger.debug('message filtered due to quiet time', message);\n }\n return isDuringQuietTime;\n};\nexports.isQuietTime = isQuietTime;\nconst clearMemo = () => {\n eventNameMemo = {};\n eventAttributesMemo = {};\n eventMetricsMemo = {};\n};\nexports.clearMemo = clearMemo;\n// in the pinpoint console when a message is created with a Modal or Full Screen layout,\n// it is assigned a layout value of MOBILE_FEED or OVERLAYS respectively in the message payload.\n// In the future, Pinpoint will be updating the layout values in the aforementioned scenario\n// to MODAL and FULL_SCREEN.\n//\n// This utility acts as a safeguard to ensure that:\n// - 1. the usage of MOBILE_FEED and OVERLAYS as values for message layouts are not leaked\n// outside the Pinpoint provider\n// - 2. Amplify correctly handles the legacy layout values from Pinpoint after they are updated\nconst interpretLayout = (layout) => {\n if (layout === 'MOBILE_FEED') {\n return 'MODAL';\n }\n if (layout === 'OVERLAYS') {\n return 'FULL_SCREEN';\n }\n // cast as PinpointInAppMessage['InAppMessage']['Layout'] allows `string` as a value\n return layout;\n};\nexports.interpretLayout = interpretLayout;\nconst extractContent = ({ InAppMessage: message, }) => {\n const clientInfo = (0, utils_1.getClientInfo)();\n const configPlatform = (0, exports.mapOSPlatform)(clientInfo?.platform);\n return (message?.Content?.map(content => {\n const { BackgroundColor, BodyConfig, HeaderConfig, ImageUrl, PrimaryBtn, SecondaryBtn, } = content;\n const defaultPrimaryButton = getButtonConfig(configPlatform, PrimaryBtn);\n const defaultSecondaryButton = getButtonConfig(configPlatform, SecondaryBtn);\n const extractedContent = {};\n if (BackgroundColor) {\n extractedContent.container = {\n style: {\n backgroundColor: BackgroundColor,\n },\n };\n }\n if (HeaderConfig) {\n extractedContent.header = {\n // Default to empty string in rare cases we don't have a Header value\n content: HeaderConfig.Header ?? '',\n style: {\n color: HeaderConfig.TextColor,\n textAlign: HeaderConfig.Alignment?.toLowerCase(),\n },\n };\n }\n if (BodyConfig) {\n extractedContent.body = {\n // Default to empty string in rare cases we don't have a Body value\n content: BodyConfig.Body ?? '',\n style: {\n color: BodyConfig.TextColor,\n textAlign: BodyConfig.Alignment?.toLowerCase(),\n },\n };\n }\n if (ImageUrl) {\n extractedContent.image = {\n src: ImageUrl,\n };\n }\n if (defaultPrimaryButton) {\n extractedContent.primaryButton = {\n // Default to empty string in rare cases we don't have a Text value\n title: defaultPrimaryButton.Text ?? '',\n action: defaultPrimaryButton.ButtonAction,\n url: defaultPrimaryButton.Link,\n style: {\n backgroundColor: defaultPrimaryButton.BackgroundColor,\n borderRadius: defaultPrimaryButton.BorderRadius,\n color: defaultPrimaryButton.TextColor,\n },\n };\n }\n if (defaultSecondaryButton) {\n extractedContent.secondaryButton = {\n // Default to empty string in rare cases we don't have a Text value\n title: defaultSecondaryButton.Text ?? '',\n action: defaultSecondaryButton.ButtonAction,\n url: defaultSecondaryButton.Link,\n style: {\n backgroundColor: defaultSecondaryButton.BackgroundColor,\n borderRadius: defaultSecondaryButton.BorderRadius,\n color: defaultSecondaryButton.TextColor,\n },\n };\n }\n return extractedContent;\n }) ?? []);\n};\nexports.extractContent = extractContent;\nconst extractMetadata = ({ InAppMessage: inAppMessage, Priority, Schedule, TreatmentId, }) => ({\n customData: inAppMessage?.CustomConfig,\n endDate: Schedule?.EndDate,\n priority: Priority,\n treatmentId: TreatmentId,\n});\nexports.extractMetadata = extractMetadata;\nconst mapOSPlatform = (os) => {\n if (!os)\n return 'DefaultConfig';\n // Check if running in a web browser\n if (typeof window !== 'undefined' && typeof window.document !== 'undefined') {\n return 'Web';\n }\n // Native environment checks\n switch (os) {\n case 'android':\n return 'Android';\n case 'ios':\n return 'IOS';\n default:\n return 'DefaultConfig';\n }\n};\nexports.mapOSPlatform = mapOSPlatform;\nconst getButtonConfig = (configPlatform, button) => {\n if (!button?.DefaultConfig) {\n return;\n }\n if (!configPlatform || !button?.[configPlatform]) {\n return button?.DefaultConfig;\n }\n return {\n ...button.DefaultConfig,\n ...button[configPlatform],\n };\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helpers.js","sources":["../../../../../../src/inAppMessaging/providers/pinpoint/utils/helpers.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mapOSPlatform = exports.extractMetadata = exports.extractContent = exports.interpretLayout = exports.clearMemo = exports.isQuietTime = exports.isBeforeEndDate = exports.getComparator = exports.matchesMetrics = exports.matchesAttributes = exports.matchesEventType = exports.getStartOfDay = exports.recordAnalyticsEvent = exports.logger = void 0;\nconst tslib_1 = require(\"tslib\");\nconst core_1 = require(\"@aws-amplify/core\");\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nconst isEmpty_js_1 = tslib_1.__importDefault(require(\"lodash/isEmpty.js\"));\nconst pinpoint_1 = require(\"@aws-amplify/core/internals/providers/pinpoint\");\nconst resolveConfig_1 = require(\"./resolveConfig\");\nconst resolveCredentials_1 = require(\"./resolveCredentials\");\nconst constants_1 = require(\"./constants\");\nconst userAgent_1 = require(\"./userAgent\");\nconst DELIVERY_TYPE = 'IN_APP_MESSAGE';\nlet eventNameMemo = {};\nlet eventAttributesMemo = {};\nlet eventMetricsMemo = {};\nexports.logger = new core_1.ConsoleLogger('InAppMessaging.Pinpoint.Utils');\nconst recordAnalyticsEvent = (event, message) => {\n const { appId, region } = (0, resolveConfig_1.resolveConfig)();\n const { id, metadata } = message;\n (0, resolveCredentials_1.resolveCredentials)()\n .then(({ credentials, identityId }) => {\n (0, pinpoint_1.record)({\n appId,\n category: constants_1.CATEGORY,\n credentials,\n event: {\n name: event,\n attributes: {\n // only include campaign_id field if we have one\n ...(id && { campaign_id: id }),\n delivery_type: DELIVERY_TYPE,\n treatment_id: metadata?.treatmentId,\n },\n },\n identityId,\n region,\n userAgentValue: (0, userAgent_1.getInAppMessagingUserAgentString)(utils_1.InAppMessagingAction.NotifyMessageInteraction),\n });\n })\n .catch(e => {\n // An error occured while fetching credentials or persisting the event to the buffer\n exports.logger.warn('Failed to record event.', e);\n });\n};\nexports.recordAnalyticsEvent = recordAnalyticsEvent;\nconst getStartOfDay = () => {\n const now = new Date();\n now.setHours(0, 0, 0, 0);\n return now.toISOString();\n};\nexports.getStartOfDay = getStartOfDay;\nconst matchesEventType = ({ CampaignId, Schedule }, { name: eventType }) => {\n const { EventType } = Schedule?.EventFilter?.Dimensions ?? {};\n const memoKey = `${CampaignId}:${eventType}`;\n if (!Object.prototype.hasOwnProperty.call(eventNameMemo, memoKey)) {\n eventNameMemo[memoKey] = !!EventType?.Values?.includes(eventType);\n }\n return eventNameMemo[memoKey];\n};\nexports.matchesEventType = matchesEventType;\nconst matchesAttributes = ({ CampaignId, Schedule }, { attributes = {} }) => {\n const { Attributes } = Schedule?.EventFilter?.Dimensions ?? {};\n if ((0, isEmpty_js_1.default)(Attributes)) {\n // if message does not have attributes defined it does not matter what attributes are on the event\n return true;\n }\n if ((0, isEmpty_js_1.default)(attributes)) {\n // if message does have attributes but the event does not then it always fails the check\n return false;\n }\n const memoKey = `${CampaignId}:${JSON.stringify(attributes)}`;\n if (!Object.prototype.hasOwnProperty.call(eventAttributesMemo, memoKey)) {\n eventAttributesMemo[memoKey] =\n !Attributes ||\n Object.entries(Attributes).every(([key, { Values }]) => Values?.includes(attributes[key]));\n }\n return eventAttributesMemo[memoKey];\n};\nexports.matchesAttributes = matchesAttributes;\nconst matchesMetrics = ({ CampaignId, Schedule }, { metrics = {} }) => {\n const { Metrics } = Schedule?.EventFilter?.Dimensions ?? {};\n if ((0, isEmpty_js_1.default)(Metrics)) {\n // if message does not have metrics defined it does not matter what metrics are on the event\n return true;\n }\n if ((0, isEmpty_js_1.default)(metrics)) {\n // if message does have metrics but the event does not then it always fails the check\n return false;\n }\n const memoKey = `${CampaignId}:${JSON.stringify(metrics)}`;\n if (!Object.prototype.hasOwnProperty.call(eventMetricsMemo, memoKey)) {\n eventMetricsMemo[memoKey] =\n !Metrics ||\n Object.entries(Metrics).every(([key, { ComparisonOperator, Value }]) => {\n const compare = (0, exports.getComparator)(ComparisonOperator);\n // if there is some unknown comparison operator, treat as a comparison failure\n return compare && !!Value ? compare(Value, metrics[key]) : false;\n });\n }\n return eventMetricsMemo[memoKey];\n};\nexports.matchesMetrics = matchesMetrics;\nconst getComparator = (operator) => {\n switch (operator) {\n case 'EQUAL':\n return (metricsVal, eventVal) => metricsVal === eventVal;\n case 'GREATER_THAN':\n return (metricsVal, eventVal) => metricsVal < eventVal;\n case 'GREATER_THAN_OR_EQUAL':\n return (metricsVal, eventVal) => metricsVal <= eventVal;\n case 'LESS_THAN':\n return (metricsVal, eventVal) => metricsVal > eventVal;\n case 'LESS_THAN_OR_EQUAL':\n return (metricsVal, eventVal) => metricsVal >= eventVal;\n default:\n return undefined;\n }\n};\nexports.getComparator = getComparator;\nconst isBeforeEndDate = ({ Schedule, }) => {\n if (!Schedule?.EndDate) {\n return true;\n }\n return new Date() < new Date(Schedule.EndDate);\n};\nexports.isBeforeEndDate = isBeforeEndDate;\nconst isQuietTime = (message) => {\n const { Schedule } = message;\n if (!Schedule?.QuietTime) {\n return false;\n }\n const pattern = /^[0-2]\\d:[0-5]\\d$/; // basic sanity check, not a fully featured HH:MM validation\n const { Start, End } = Schedule.QuietTime;\n if (!Start ||\n !End ||\n Start === End ||\n !pattern.test(Start) ||\n !pattern.test(End)) {\n return false;\n }\n const now = new Date();\n const start = new Date(now);\n const end = new Date(now);\n const [startHours, startMinutes] = Start.split(':');\n const [endHours, endMinutes] = End.split(':');\n start.setHours(Number.parseInt(startHours, 10), Number.parseInt(startMinutes, 10), 0, 0);\n end.setHours(Number.parseInt(endHours, 10), Number.parseInt(endMinutes, 10), 0, 0);\n // if quiet time includes midnight, bump the end time to the next day\n if (start > end) {\n end.setDate(end.getDate() + 1);\n }\n const isDuringQuietTime = now >= start && now <= end;\n if (isDuringQuietTime) {\n exports.logger.debug('message filtered due to quiet time', message);\n }\n return isDuringQuietTime;\n};\nexports.isQuietTime = isQuietTime;\nconst clearMemo = () => {\n eventNameMemo = {};\n eventAttributesMemo = {};\n eventMetricsMemo = {};\n};\nexports.clearMemo = clearMemo;\n// in the pinpoint console when a message is created with a Modal or Full Screen layout,\n// it is assigned a layout value of MOBILE_FEED or OVERLAYS respectively in the message payload.\n// In the future, Pinpoint will be updating the layout values in the aforementioned scenario\n// to MODAL and FULL_SCREEN.\n//\n// This utility acts as a safeguard to ensure that:\n// - 1. the usage of MOBILE_FEED and OVERLAYS as values for message layouts are not leaked\n// outside the Pinpoint provider\n// - 2. Amplify correctly handles the legacy layout values from Pinpoint after they are updated\nconst interpretLayout = (layout) => {\n if (layout === 'MOBILE_FEED') {\n return 'MODAL';\n }\n if (layout === 'OVERLAYS') {\n return 'FULL_SCREEN';\n }\n // cast as PinpointInAppMessage['InAppMessage']['Layout'] allows `string` as a value\n return layout;\n};\nexports.interpretLayout = interpretLayout;\nconst extractContent = ({ InAppMessage: message, }) => {\n const clientInfo = (0, utils_1.getClientInfo)();\n const configPlatform = (0, exports.mapOSPlatform)(clientInfo?.platform);\n return (message?.Content?.map(content => {\n const { BackgroundColor, BodyConfig, HeaderConfig, ImageUrl, PrimaryBtn, SecondaryBtn, } = content;\n const defaultPrimaryButton = getButtonConfig(configPlatform, PrimaryBtn);\n const defaultSecondaryButton = getButtonConfig(configPlatform, SecondaryBtn);\n const extractedContent = {};\n if (BackgroundColor) {\n extractedContent.container = {\n style: {\n backgroundColor: BackgroundColor,\n },\n };\n }\n if (HeaderConfig) {\n extractedContent.header = {\n // Default to empty string in rare cases we don't have a Header value\n content: HeaderConfig.Header ?? '',\n style: {\n color: HeaderConfig.TextColor,\n textAlign: HeaderConfig.Alignment?.toLowerCase(),\n },\n };\n }\n if (BodyConfig) {\n extractedContent.body = {\n // Default to empty string in rare cases we don't have a Body value\n content: BodyConfig.Body ?? '',\n style: {\n color: BodyConfig.TextColor,\n textAlign: BodyConfig.Alignment?.toLowerCase(),\n },\n };\n }\n if (ImageUrl) {\n extractedContent.image = {\n src: ImageUrl,\n };\n }\n if (defaultPrimaryButton) {\n extractedContent.primaryButton = {\n // Default to empty string in rare cases we don't have a Text value\n title: defaultPrimaryButton.Text ?? '',\n action: defaultPrimaryButton.ButtonAction,\n url: defaultPrimaryButton.Link,\n style: {\n backgroundColor: defaultPrimaryButton.BackgroundColor,\n borderRadius: defaultPrimaryButton.BorderRadius,\n color: defaultPrimaryButton.TextColor,\n },\n };\n }\n if (defaultSecondaryButton) {\n extractedContent.secondaryButton = {\n // Default to empty string in rare cases we don't have a Text value\n title: defaultSecondaryButton.Text ?? '',\n action: defaultSecondaryButton.ButtonAction,\n url: defaultSecondaryButton.Link,\n style: {\n backgroundColor: defaultSecondaryButton.BackgroundColor,\n borderRadius: defaultSecondaryButton.BorderRadius,\n color: defaultSecondaryButton.TextColor,\n },\n };\n }\n return extractedContent;\n }) ?? []);\n};\nexports.extractContent = extractContent;\nconst extractMetadata = ({ InAppMessage: inAppMessage, Priority, Schedule, TreatmentId, }) => ({\n customData: inAppMessage?.CustomConfig,\n endDate: Schedule?.EndDate,\n priority: Priority,\n treatmentId: TreatmentId,\n});\nexports.extractMetadata = extractMetadata;\nconst mapOSPlatform = (os) => {\n if (!os)\n return 'DefaultConfig';\n // Check if running in a web browser\n if (typeof window !== 'undefined' && typeof window.document !== 'undefined') {\n return 'Web';\n }\n // Native environment checks\n switch (os) {\n case 'android':\n return 'Android';\n case 'ios':\n return 'IOS';\n default:\n return 'DefaultConfig';\n }\n};\nexports.mapOSPlatform = mapOSPlatform;\nconst getButtonConfig = (configPlatform, button) => {\n if (!button?.DefaultConfig) {\n return;\n }\n if (!configPlatform || !button?.[configPlatform]) {\n return button?.DefaultConfig;\n }\n return {\n ...button.DefaultConfig,\n ...button[configPlatform],\n };\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.mjs","sources":["../../../../../../src/inAppMessaging/providers/pinpoint/utils/helpers.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { ConsoleLogger } from '@aws-amplify/core';\nimport { InAppMessagingAction, getClientInfo, } from '@aws-amplify/core/internals/utils';\nimport isEmpty from 'lodash/isEmpty.js';\nimport { record as recordCore } from '@aws-amplify/core/internals/providers/pinpoint';\nimport { resolveConfig } from './resolveConfig';\nimport { resolveCredentials } from './resolveCredentials';\nimport { CATEGORY } from './constants';\nimport { getInAppMessagingUserAgentString } from './userAgent';\nconst DELIVERY_TYPE = 'IN_APP_MESSAGE';\nlet eventNameMemo = {};\nlet eventAttributesMemo = {};\nlet eventMetricsMemo = {};\nexport const logger = new ConsoleLogger('InAppMessaging.Pinpoint.Utils');\nexport const recordAnalyticsEvent = (event, message) => {\n const { appId, region } = resolveConfig();\n const { id, metadata } = message;\n resolveCredentials()\n .then(({ credentials, identityId }) => {\n recordCore({\n appId,\n category: CATEGORY,\n credentials,\n event: {\n name: event,\n attributes: {\n // only include campaign_id field if we have one\n ...(id && { campaign_id: id }),\n delivery_type: DELIVERY_TYPE,\n treatment_id: metadata?.treatmentId,\n },\n },\n identityId,\n region,\n userAgentValue: getInAppMessagingUserAgentString(InAppMessagingAction.NotifyMessageInteraction),\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};\nexport const getStartOfDay = () => {\n const now = new Date();\n now.setHours(0, 0, 0, 0);\n return now.toISOString();\n};\nexport const matchesEventType = ({ CampaignId, Schedule }, { name: eventType }) => {\n const { EventType } = Schedule?.EventFilter?.Dimensions ?? {};\n const memoKey = `${CampaignId}:${eventType}`;\n if (!Object.prototype.hasOwnProperty.call(eventNameMemo, memoKey)) {\n eventNameMemo[memoKey] = !!EventType?.Values?.includes(eventType);\n }\n return eventNameMemo[memoKey];\n};\nexport const matchesAttributes = ({ CampaignId, Schedule }, { attributes = {} }) => {\n const { Attributes } = Schedule?.EventFilter?.Dimensions ?? {};\n if (isEmpty(Attributes)) {\n // if message does not have attributes defined it does not matter what attributes are on the event\n return true;\n }\n if (isEmpty(attributes)) {\n // if message does have attributes but the event does not then it always fails the check\n return false;\n }\n const memoKey = `${CampaignId}:${JSON.stringify(attributes)}`;\n if (!Object.prototype.hasOwnProperty.call(eventAttributesMemo, memoKey)) {\n eventAttributesMemo[memoKey] =\n !Attributes ||\n Object.entries(Attributes).every(([key, { Values }]) => Values?.includes(attributes[key]));\n }\n return eventAttributesMemo[memoKey];\n};\nexport const matchesMetrics = ({ CampaignId, Schedule }, { metrics = {} }) => {\n const { Metrics } = Schedule?.EventFilter?.Dimensions ?? {};\n if (isEmpty(Metrics)) {\n // if message does not have metrics defined it does not matter what metrics are on the event\n return true;\n }\n if (isEmpty(metrics)) {\n // if message does have metrics but the event does not then it always fails the check\n return false;\n }\n const memoKey = `${CampaignId}:${JSON.stringify(metrics)}`;\n if (!Object.prototype.hasOwnProperty.call(eventMetricsMemo, memoKey)) {\n eventMetricsMemo[memoKey] =\n !Metrics ||\n Object.entries(Metrics).every(([key, { ComparisonOperator, Value }]) => {\n const compare = getComparator(ComparisonOperator);\n // if there is some unknown comparison operator, treat as a comparison failure\n return compare && !!Value ? compare(Value, metrics[key]) : false;\n });\n }\n return eventMetricsMemo[memoKey];\n};\nexport const getComparator = (operator) => {\n switch (operator) {\n case 'EQUAL':\n return (metricsVal, eventVal) => metricsVal === eventVal;\n case 'GREATER_THAN':\n return (metricsVal, eventVal) => metricsVal < eventVal;\n case 'GREATER_THAN_OR_EQUAL':\n return (metricsVal, eventVal) => metricsVal <= eventVal;\n case 'LESS_THAN':\n return (metricsVal, eventVal) => metricsVal > eventVal;\n case 'LESS_THAN_OR_EQUAL':\n return (metricsVal, eventVal) => metricsVal >= eventVal;\n default:\n return undefined;\n }\n};\nexport const isBeforeEndDate = ({ Schedule, }) => {\n if (!Schedule?.EndDate) {\n return true;\n }\n return new Date() < new Date(Schedule.EndDate);\n};\nexport const isQuietTime = (message) => {\n const { Schedule } = message;\n if (!Schedule?.QuietTime) {\n return false;\n }\n const pattern = /^[0-2]\\d:[0-5]\\d$/; // basic sanity check, not a fully featured HH:MM validation\n const { Start, End } = Schedule.QuietTime;\n if (!Start ||\n !End ||\n Start === End ||\n !pattern.test(Start) ||\n !pattern.test(End)) {\n return false;\n }\n const now = new Date();\n const start = new Date(now);\n const end = new Date(now);\n const [startHours, startMinutes] = Start.split(':');\n const [endHours, endMinutes] = End.split(':');\n start.setHours(Number.parseInt(startHours, 10), Number.parseInt(startMinutes, 10), 0, 0);\n end.setHours(Number.parseInt(endHours, 10), Number.parseInt(endMinutes, 10), 0, 0);\n // if quiet time includes midnight, bump the end time to the next day\n if (start > end) {\n end.setDate(end.getDate() + 1);\n }\n const isDuringQuietTime = now >= start && now <= end;\n if (isDuringQuietTime) {\n logger.debug('message filtered due to quiet time', message);\n }\n return isDuringQuietTime;\n};\nexport const clearMemo = () => {\n eventNameMemo = {};\n eventAttributesMemo = {};\n eventMetricsMemo = {};\n};\n// in the pinpoint console when a message is created with a Modal or Full Screen layout,\n// it is assigned a layout value of MOBILE_FEED or OVERLAYS respectively in the message payload.\n// In the future, Pinpoint will be updating the layout values in the aforementioned scenario\n// to MODAL and FULL_SCREEN.\n//\n// This utility acts as a safeguard to ensure that:\n// - 1. the usage of MOBILE_FEED and OVERLAYS as values for message layouts are not leaked\n// outside the Pinpoint provider\n// - 2. Amplify correctly handles the legacy layout values from Pinpoint after they are updated\nexport const interpretLayout = (layout) => {\n if (layout === 'MOBILE_FEED') {\n return 'MODAL';\n }\n if (layout === 'OVERLAYS') {\n return 'FULL_SCREEN';\n }\n // cast as PinpointInAppMessage['InAppMessage']['Layout'] allows `string` as a value\n return layout;\n};\nexport const extractContent = ({ InAppMessage: message, }) => {\n const clientInfo = getClientInfo();\n const configPlatform = mapOSPlatform(clientInfo?.platform);\n return (message?.Content?.map(content => {\n const { BackgroundColor, BodyConfig, HeaderConfig, ImageUrl, PrimaryBtn, SecondaryBtn, } = content;\n const defaultPrimaryButton = getButtonConfig(configPlatform, PrimaryBtn);\n const defaultSecondaryButton = getButtonConfig(configPlatform, SecondaryBtn);\n const extractedContent = {};\n if (BackgroundColor) {\n extractedContent.container = {\n style: {\n backgroundColor: BackgroundColor,\n },\n };\n }\n if (HeaderConfig) {\n extractedContent.header = {\n // Default to empty string in rare cases we don't have a Header value\n content: HeaderConfig.Header ?? '',\n style: {\n color: HeaderConfig.TextColor,\n textAlign: HeaderConfig.Alignment?.toLowerCase(),\n },\n };\n }\n if (BodyConfig) {\n extractedContent.body = {\n // Default to empty string in rare cases we don't have a Body value\n content: BodyConfig.Body ?? '',\n style: {\n color: BodyConfig.TextColor,\n textAlign: BodyConfig.Alignment?.toLowerCase(),\n },\n };\n }\n if (ImageUrl) {\n extractedContent.image = {\n src: ImageUrl,\n };\n }\n if (defaultPrimaryButton) {\n extractedContent.primaryButton = {\n // Default to empty string in rare cases we don't have a Text value\n title: defaultPrimaryButton.Text ?? '',\n action: defaultPrimaryButton.ButtonAction,\n url: defaultPrimaryButton.Link,\n style: {\n backgroundColor: defaultPrimaryButton.BackgroundColor,\n borderRadius: defaultPrimaryButton.BorderRadius,\n color: defaultPrimaryButton.TextColor,\n },\n };\n }\n if (defaultSecondaryButton) {\n extractedContent.secondaryButton = {\n // Default to empty string in rare cases we don't have a Text value\n title: defaultSecondaryButton.Text ?? '',\n action: defaultSecondaryButton.ButtonAction,\n url: defaultSecondaryButton.Link,\n style: {\n backgroundColor: defaultSecondaryButton.BackgroundColor,\n borderRadius: defaultSecondaryButton.BorderRadius,\n color: defaultSecondaryButton.TextColor,\n },\n };\n }\n return extractedContent;\n }) ?? []);\n};\nexport const extractMetadata = ({ InAppMessage: inAppMessage, Priority, Schedule, TreatmentId, }) => ({\n customData: inAppMessage?.CustomConfig,\n endDate: Schedule?.EndDate,\n priority: Priority,\n treatmentId: TreatmentId,\n});\nexport const mapOSPlatform = (os) => {\n if (!os)\n return 'DefaultConfig';\n // Check if running in a web browser\n if (typeof window !== 'undefined' && typeof window.document !== 'undefined') {\n return 'Web';\n }\n // Native environment checks\n switch (os) {\n case 'android':\n return 'Android';\n case 'ios':\n return 'IOS';\n default:\n return 'DefaultConfig';\n }\n};\nconst getButtonConfig = (configPlatform, button) => {\n if (!button?.DefaultConfig) {\n return;\n }\n if (!configPlatform || !button?.[configPlatform]) {\n return button?.DefaultConfig;\n }\n return {\n ...button.DefaultConfig,\n ...button[configPlatform],\n };\n};\n"],"names":["recordCore"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helpers.mjs","sources":["../../../../../../src/inAppMessaging/providers/pinpoint/utils/helpers.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { ConsoleLogger } from '@aws-amplify/core';\nimport { InAppMessagingAction, getClientInfo, } from '@aws-amplify/core/internals/utils';\nimport isEmpty from 'lodash/isEmpty.js';\nimport { record as recordCore } from '@aws-amplify/core/internals/providers/pinpoint';\nimport { resolveConfig } from './resolveConfig';\nimport { resolveCredentials } from './resolveCredentials';\nimport { CATEGORY } from './constants';\nimport { getInAppMessagingUserAgentString } from './userAgent';\nconst DELIVERY_TYPE = 'IN_APP_MESSAGE';\nlet eventNameMemo = {};\nlet eventAttributesMemo = {};\nlet eventMetricsMemo = {};\nexport const logger = new ConsoleLogger('InAppMessaging.Pinpoint.Utils');\nexport const recordAnalyticsEvent = (event, message) => {\n const { appId, region } = resolveConfig();\n const { id, metadata } = message;\n resolveCredentials()\n .then(({ credentials, identityId }) => {\n recordCore({\n appId,\n category: CATEGORY,\n credentials,\n event: {\n name: event,\n attributes: {\n // only include campaign_id field if we have one\n ...(id && { campaign_id: id }),\n delivery_type: DELIVERY_TYPE,\n treatment_id: metadata?.treatmentId,\n },\n },\n identityId,\n region,\n userAgentValue: getInAppMessagingUserAgentString(InAppMessagingAction.NotifyMessageInteraction),\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};\nexport const getStartOfDay = () => {\n const now = new Date();\n now.setHours(0, 0, 0, 0);\n return now.toISOString();\n};\nexport const matchesEventType = ({ CampaignId, Schedule }, { name: eventType }) => {\n const { EventType } = Schedule?.EventFilter?.Dimensions ?? {};\n const memoKey = `${CampaignId}:${eventType}`;\n if (!Object.prototype.hasOwnProperty.call(eventNameMemo, memoKey)) {\n eventNameMemo[memoKey] = !!EventType?.Values?.includes(eventType);\n }\n return eventNameMemo[memoKey];\n};\nexport const matchesAttributes = ({ CampaignId, Schedule }, { attributes = {} }) => {\n const { Attributes } = Schedule?.EventFilter?.Dimensions ?? {};\n if (isEmpty(Attributes)) {\n // if message does not have attributes defined it does not matter what attributes are on the event\n return true;\n }\n if (isEmpty(attributes)) {\n // if message does have attributes but the event does not then it always fails the check\n return false;\n }\n const memoKey = `${CampaignId}:${JSON.stringify(attributes)}`;\n if (!Object.prototype.hasOwnProperty.call(eventAttributesMemo, memoKey)) {\n eventAttributesMemo[memoKey] =\n !Attributes ||\n Object.entries(Attributes).every(([key, { Values }]) => Values?.includes(attributes[key]));\n }\n return eventAttributesMemo[memoKey];\n};\nexport const matchesMetrics = ({ CampaignId, Schedule }, { metrics = {} }) => {\n const { Metrics } = Schedule?.EventFilter?.Dimensions ?? {};\n if (isEmpty(Metrics)) {\n // if message does not have metrics defined it does not matter what metrics are on the event\n return true;\n }\n if (isEmpty(metrics)) {\n // if message does have metrics but the event does not then it always fails the check\n return false;\n }\n const memoKey = `${CampaignId}:${JSON.stringify(metrics)}`;\n if (!Object.prototype.hasOwnProperty.call(eventMetricsMemo, memoKey)) {\n eventMetricsMemo[memoKey] =\n !Metrics ||\n Object.entries(Metrics).every(([key, { ComparisonOperator, Value }]) => {\n const compare = getComparator(ComparisonOperator);\n // if there is some unknown comparison operator, treat as a comparison failure\n return compare && !!Value ? compare(Value, metrics[key]) : false;\n });\n }\n return eventMetricsMemo[memoKey];\n};\nexport const getComparator = (operator) => {\n switch (operator) {\n case 'EQUAL':\n return (metricsVal, eventVal) => metricsVal === eventVal;\n case 'GREATER_THAN':\n return (metricsVal, eventVal) => metricsVal < eventVal;\n case 'GREATER_THAN_OR_EQUAL':\n return (metricsVal, eventVal) => metricsVal <= eventVal;\n case 'LESS_THAN':\n return (metricsVal, eventVal) => metricsVal > eventVal;\n case 'LESS_THAN_OR_EQUAL':\n return (metricsVal, eventVal) => metricsVal >= eventVal;\n default:\n return undefined;\n }\n};\nexport const isBeforeEndDate = ({ Schedule, }) => {\n if (!Schedule?.EndDate) {\n return true;\n }\n return new Date() < new Date(Schedule.EndDate);\n};\nexport const isQuietTime = (message) => {\n const { Schedule } = message;\n if (!Schedule?.QuietTime) {\n return false;\n }\n const pattern = /^[0-2]\\d:[0-5]\\d$/; // basic sanity check, not a fully featured HH:MM validation\n const { Start, End } = Schedule.QuietTime;\n if (!Start ||\n !End ||\n Start === End ||\n !pattern.test(Start) ||\n !pattern.test(End)) {\n return false;\n }\n const now = new Date();\n const start = new Date(now);\n const end = new Date(now);\n const [startHours, startMinutes] = Start.split(':');\n const [endHours, endMinutes] = End.split(':');\n start.setHours(Number.parseInt(startHours, 10), Number.parseInt(startMinutes, 10), 0, 0);\n end.setHours(Number.parseInt(endHours, 10), Number.parseInt(endMinutes, 10), 0, 0);\n // if quiet time includes midnight, bump the end time to the next day\n if (start > end) {\n end.setDate(end.getDate() + 1);\n }\n const isDuringQuietTime = now >= start && now <= end;\n if (isDuringQuietTime) {\n logger.debug('message filtered due to quiet time', message);\n }\n return isDuringQuietTime;\n};\nexport const clearMemo = () => {\n eventNameMemo = {};\n eventAttributesMemo = {};\n eventMetricsMemo = {};\n};\n// in the pinpoint console when a message is created with a Modal or Full Screen layout,\n// it is assigned a layout value of MOBILE_FEED or OVERLAYS respectively in the message payload.\n// In the future, Pinpoint will be updating the layout values in the aforementioned scenario\n// to MODAL and FULL_SCREEN.\n//\n// This utility acts as a safeguard to ensure that:\n// - 1. the usage of MOBILE_FEED and OVERLAYS as values for message layouts are not leaked\n// outside the Pinpoint provider\n// - 2. Amplify correctly handles the legacy layout values from Pinpoint after they are updated\nexport const interpretLayout = (layout) => {\n if (layout === 'MOBILE_FEED') {\n return 'MODAL';\n }\n if (layout === 'OVERLAYS') {\n return 'FULL_SCREEN';\n }\n // cast as PinpointInAppMessage['InAppMessage']['Layout'] allows `string` as a value\n return layout;\n};\nexport const extractContent = ({ InAppMessage: message, }) => {\n const clientInfo = getClientInfo();\n const configPlatform = mapOSPlatform(clientInfo?.platform);\n return (message?.Content?.map(content => {\n const { BackgroundColor, BodyConfig, HeaderConfig, ImageUrl, PrimaryBtn, SecondaryBtn, } = content;\n const defaultPrimaryButton = getButtonConfig(configPlatform, PrimaryBtn);\n const defaultSecondaryButton = getButtonConfig(configPlatform, SecondaryBtn);\n const extractedContent = {};\n if (BackgroundColor) {\n extractedContent.container = {\n style: {\n backgroundColor: BackgroundColor,\n },\n };\n }\n if (HeaderConfig) {\n extractedContent.header = {\n // Default to empty string in rare cases we don't have a Header value\n content: HeaderConfig.Header ?? '',\n style: {\n color: HeaderConfig.TextColor,\n textAlign: HeaderConfig.Alignment?.toLowerCase(),\n },\n };\n }\n if (BodyConfig) {\n extractedContent.body = {\n // Default to empty string in rare cases we don't have a Body value\n content: BodyConfig.Body ?? '',\n style: {\n color: BodyConfig.TextColor,\n textAlign: BodyConfig.Alignment?.toLowerCase(),\n },\n };\n }\n if (ImageUrl) {\n extractedContent.image = {\n src: ImageUrl,\n };\n }\n if (defaultPrimaryButton) {\n extractedContent.primaryButton = {\n // Default to empty string in rare cases we don't have a Text value\n title: defaultPrimaryButton.Text ?? '',\n action: defaultPrimaryButton.ButtonAction,\n url: defaultPrimaryButton.Link,\n style: {\n backgroundColor: defaultPrimaryButton.BackgroundColor,\n borderRadius: defaultPrimaryButton.BorderRadius,\n color: defaultPrimaryButton.TextColor,\n },\n };\n }\n if (defaultSecondaryButton) {\n extractedContent.secondaryButton = {\n // Default to empty string in rare cases we don't have a Text value\n title: defaultSecondaryButton.Text ?? '',\n action: defaultSecondaryButton.ButtonAction,\n url: defaultSecondaryButton.Link,\n style: {\n backgroundColor: defaultSecondaryButton.BackgroundColor,\n borderRadius: defaultSecondaryButton.BorderRadius,\n color: defaultSecondaryButton.TextColor,\n },\n };\n }\n return extractedContent;\n }) ?? []);\n};\nexport const extractMetadata = ({ InAppMessage: inAppMessage, Priority, Schedule, TreatmentId, }) => ({\n customData: inAppMessage?.CustomConfig,\n endDate: Schedule?.EndDate,\n priority: Priority,\n treatmentId: TreatmentId,\n});\nexport const mapOSPlatform = (os) => {\n if (!os)\n return 'DefaultConfig';\n // Check if running in a web browser\n if (typeof window !== 'undefined' && typeof window.document !== 'undefined') {\n return 'Web';\n }\n // Native environment checks\n switch (os) {\n case 'android':\n return 'Android';\n case 'ios':\n return 'IOS';\n default:\n return 'DefaultConfig';\n }\n};\nconst getButtonConfig = (configPlatform, button) => {\n if (!button?.DefaultConfig) {\n return;\n }\n if (!configPlatform || !button?.[configPlatform]) {\n return button?.DefaultConfig;\n }\n return {\n ...button.DefaultConfig,\n ...button[configPlatform],\n };\n};\n"],"names":["recordCore"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,106 +1,106 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
2
|
+
"name": "@aws-amplify/notifications",
|
|
3
|
+
"version": "2.0.41",
|
|
4
|
+
"description": "Notifications category of aws-amplify",
|
|
5
|
+
"main": "./dist/cjs/index.js",
|
|
6
|
+
"module": "./dist/esm/index.mjs",
|
|
7
|
+
"react-native": "./src/index.ts",
|
|
8
|
+
"typings": "./dist/esm/index.d.ts",
|
|
9
|
+
"sideEffects": false,
|
|
10
|
+
"publishConfig": {
|
|
11
|
+
"access": "public"
|
|
12
|
+
},
|
|
13
|
+
"scripts": {
|
|
14
|
+
"test": "npm run lint && jest -w 1 --coverage --logHeapUsage",
|
|
15
|
+
"test:watch": "jest -w 1 --watch",
|
|
16
|
+
"build-with-test": "npm run clean && npm run build",
|
|
17
|
+
"build:umd": "webpack && webpack --config ./webpack.config.dev.js",
|
|
18
|
+
"build:esm-cjs": "rollup --forceExit -c rollup.config.mjs",
|
|
19
|
+
"build:watch": "npm run build:esm-cjs -- --watch",
|
|
20
|
+
"build": "npm run clean && npm run build:esm-cjs && npm run build:umd",
|
|
21
|
+
"clean": "npm run clean:size && rimraf dist lib lib-esm",
|
|
22
|
+
"clean:size": "rimraf dual-publish-tmp tmp*",
|
|
23
|
+
"format": "echo \"Not implemented\"",
|
|
24
|
+
"lint": "eslint '**/*.{ts,tsx}' && npm run ts-coverage",
|
|
25
|
+
"lint:fix": "eslint '**/*.{ts,tsx}' --fix",
|
|
26
|
+
"ts-coverage": "typescript-coverage-report -p ./tsconfig.build.json -t 88.21"
|
|
27
|
+
},
|
|
28
|
+
"typesVersions": {
|
|
29
|
+
">=4.2": {
|
|
30
|
+
"in-app-messaging": [
|
|
31
|
+
"./dist/esm/inAppMessaging/index.d.ts"
|
|
32
|
+
],
|
|
33
|
+
"push-notifications": [
|
|
34
|
+
"./dist/esm/pushNotifications/providers/index.d.ts"
|
|
35
|
+
],
|
|
36
|
+
"in-app-messaging/pinpoint": [
|
|
37
|
+
"./dist/esm/inAppMessaging/providers/pinpoint/index.d.ts"
|
|
38
|
+
],
|
|
39
|
+
"push-notifications/pinpoint": [
|
|
40
|
+
"./dist/esm/pushNotifications/providers/pinpoint/index.d.ts"
|
|
41
|
+
]
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
"exports": {
|
|
45
|
+
".": {
|
|
46
|
+
"import": "./dist/esm/index.mjs",
|
|
47
|
+
"require": "./dist/cjs/index.js",
|
|
48
|
+
"react-native": "./src/index.ts"
|
|
49
|
+
},
|
|
50
|
+
"./in-app-messaging": {
|
|
51
|
+
"types": "./dist/esm/inAppMessaging/index.d.ts",
|
|
52
|
+
"import": "./dist/esm/inAppMessaging/index.mjs",
|
|
53
|
+
"require": "./dist/cjs/inAppMessaging/index.js",
|
|
54
|
+
"react-native": "./src/inAppMessaging/index.ts"
|
|
55
|
+
},
|
|
56
|
+
"./push-notifications": {
|
|
57
|
+
"types": "./dist/esm/pushNotifications/index.d.ts",
|
|
58
|
+
"import": "./dist/esm/pushNotifications/index.mjs",
|
|
59
|
+
"require": "./dist/cjs/pushNotifications/index.js",
|
|
60
|
+
"react-native": "./src/pushNotifications/index.ts"
|
|
61
|
+
},
|
|
62
|
+
"./in-app-messaging/pinpoint": {
|
|
63
|
+
"types": "./dist/esm/inAppMessaging/providers/pinpoint/index.d.ts",
|
|
64
|
+
"import": "./dist/esm/inAppMessaging/providers/pinpoint/index.mjs",
|
|
65
|
+
"require": "./dist/cjs/inAppMessaging/providers/pinpoint/index.js",
|
|
66
|
+
"react-native": "./src/inAppMessaging/providers/pinpoint/index.ts"
|
|
67
|
+
},
|
|
68
|
+
"./push-notifications/pinpoint": {
|
|
69
|
+
"types": "./dist/esm/pushNotifications/providers/pinpoint/index.d.ts",
|
|
70
|
+
"import": "./dist/esm/pushNotifications/providers/pinpoint/index.mjs",
|
|
71
|
+
"require": "./dist/cjs/pushNotifications/providers/pinpoint/index.js",
|
|
72
|
+
"react-native": "./src/pushNotifications/providers/pinpoint/index.ts"
|
|
73
|
+
},
|
|
74
|
+
"./package.json": "./package.json"
|
|
75
|
+
},
|
|
76
|
+
"repository": {
|
|
77
|
+
"type": "git",
|
|
78
|
+
"url": "https://github.com/aws-amplify/amplify-js.git"
|
|
79
|
+
},
|
|
80
|
+
"author": "Amazon Web Services",
|
|
81
|
+
"license": "Apache-2.0",
|
|
82
|
+
"bugs": {
|
|
83
|
+
"url": "https://github.com/aws/aws-amplify/issues"
|
|
84
|
+
},
|
|
85
|
+
"homepage": "https://docs.amplify.aws/",
|
|
86
|
+
"files": [
|
|
87
|
+
"dist/cjs",
|
|
88
|
+
"dist/esm",
|
|
89
|
+
"src",
|
|
90
|
+
"in-app-messaging",
|
|
91
|
+
"push-notifications"
|
|
92
|
+
],
|
|
93
|
+
"dependencies": {
|
|
94
|
+
"lodash": "^4.17.21",
|
|
95
|
+
"tslib": "^2.5.0"
|
|
96
|
+
},
|
|
97
|
+
"peerDependencies": {
|
|
98
|
+
"@aws-amplify/core": "^6.1.0"
|
|
99
|
+
},
|
|
100
|
+
"devDependencies": {
|
|
101
|
+
"@aws-amplify/core": "6.3.8",
|
|
102
|
+
"@aws-amplify/react-native": "1.1.4",
|
|
103
|
+
"typescript": "5.0.2"
|
|
104
|
+
},
|
|
105
|
+
"gitHead": "3624556dd68af6b538430c5db76d883e656188dc"
|
|
106
106
|
}
|