@adobe/alloy 2.19.0-beta.9 → 2.19.1-beta.0

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.
Files changed (116) hide show
  1. package/README.md +4 -1
  2. package/libEs5/components/DataCollector/index.js +3 -0
  3. package/libEs5/components/DataCollector/validateApplyResponse.js +2 -1
  4. package/libEs5/components/DataCollector/validateUserEventOptions.js +2 -1
  5. package/libEs5/components/DecisioningEngine/consequenceAdapters/inAppMessageConsequenceAdapter.js +32 -0
  6. package/libEs5/components/DecisioningEngine/consequenceAdapters/schemaTypeConsequenceAdapter.js +25 -0
  7. package/libEs5/components/DecisioningEngine/constants.js +31 -0
  8. package/libEs5/components/DecisioningEngine/createApplyResponse.js +36 -0
  9. package/libEs5/components/DecisioningEngine/createConsequenceAdapter.js +29 -0
  10. package/libEs5/components/DecisioningEngine/createContextProvider.js +93 -0
  11. package/libEs5/components/DecisioningEngine/createDecisionHistory.js +28 -0
  12. package/libEs5/components/DecisioningEngine/createDecisionProvider.js +51 -0
  13. package/libEs5/components/DecisioningEngine/createEvaluableRulesetPayload.js +80 -0
  14. package/libEs5/components/DecisioningEngine/createEvaluateRulesetsCommand.js +49 -0
  15. package/libEs5/components/DecisioningEngine/createEventRegistry.js +130 -0
  16. package/libEs5/components/DecisioningEngine/createOnResponseHandler.js +46 -0
  17. package/libEs5/components/DecisioningEngine/createSubscribeRulesetItems.js +87 -0
  18. package/libEs5/components/DecisioningEngine/index.js +119 -0
  19. package/libEs5/components/DecisioningEngine/utils.js +90 -0
  20. package/libEs5/components/Personalization/createActionsProvider.js +72 -0
  21. package/libEs5/components/Personalization/createApplyPropositions.js +2 -2
  22. package/libEs5/components/Personalization/createCollect.js +9 -4
  23. package/libEs5/components/Personalization/createComponent.js +5 -3
  24. package/libEs5/components/Personalization/createFetchDataHandler.js +2 -17
  25. package/libEs5/components/Personalization/createNotificationHandler.js +33 -0
  26. package/libEs5/components/Personalization/createOnClickHandler.js +5 -3
  27. package/libEs5/components/Personalization/createOnDecisionHandler.js +44 -0
  28. package/libEs5/components/Personalization/createPersonalizationDetails.js +8 -5
  29. package/libEs5/components/Personalization/createPreprocessors.js +21 -0
  30. package/libEs5/components/Personalization/createViewCacheManager.js +9 -2
  31. package/libEs5/components/Personalization/dom-actions/createRedirect.js +11 -1
  32. package/libEs5/components/Personalization/event.js +25 -22
  33. package/libEs5/components/Personalization/handlers/createProcessInAppMessage.js +76 -0
  34. package/libEs5/components/Personalization/handlers/createProcessRedirect.js +5 -2
  35. package/libEs5/components/Personalization/in-app-message-actions/actions/displayIframeContent.js +288 -0
  36. package/libEs5/components/Personalization/in-app-message-actions/initInAppMessageActionsModules.js +23 -0
  37. package/libEs5/components/Personalization/in-app-message-actions/utils.js +53 -0
  38. package/libEs5/components/Personalization/index.js +20 -7
  39. package/libEs5/constants/contentType.js +18 -0
  40. package/libEs5/{components/Personalization/constants/propositionEventType.js → constants/decisionProvider.js} +4 -8
  41. package/libEs5/constants/eventType.js +25 -0
  42. package/libEs5/{components/Personalization/constants/eventType.js → constants/handle.js} +4 -7
  43. package/libEs5/constants/libraryVersion.js +1 -1
  44. package/libEs5/constants/propositionEventType.js +33 -0
  45. package/libEs5/{components/Personalization/constants → constants}/schema.js +9 -1
  46. package/libEs5/core/componentCreators.js +2 -1
  47. package/libEs5/core/createEvent.js +26 -1
  48. package/libEs5/core/createEventManager.js +3 -0
  49. package/libEs5/core/createLifecycle.js +4 -1
  50. package/libEs5/core/edgeNetwork/mergeLifecycleResponses.js +1 -1
  51. package/libEs5/utils/assignConcatArrayValues.js +49 -0
  52. package/libEs5/utils/createSubscription.js +91 -0
  53. package/libEs5/utils/debounce.js +30 -0
  54. package/libEs5/utils/dom/selectNodesWithShadow.js +10 -3
  55. package/libEs5/utils/flattenArray.js +37 -0
  56. package/libEs5/utils/flattenObject.js +43 -0
  57. package/libEs5/utils/index.js +14 -0
  58. package/libEs5/utils/parseUrl.js +70 -0
  59. package/libEs6/components/DataCollector/index.js +2 -0
  60. package/libEs6/components/DataCollector/validateApplyResponse.js +2 -1
  61. package/libEs6/components/DataCollector/validateUserEventOptions.js +2 -1
  62. package/libEs6/components/DecisioningEngine/consequenceAdapters/inAppMessageConsequenceAdapter.js +30 -0
  63. package/libEs6/components/DecisioningEngine/consequenceAdapters/schemaTypeConsequenceAdapter.js +24 -0
  64. package/libEs6/components/DecisioningEngine/constants.js +25 -0
  65. package/libEs6/components/DecisioningEngine/createApplyResponse.js +31 -0
  66. package/libEs6/components/DecisioningEngine/createConsequenceAdapter.js +29 -0
  67. package/libEs6/components/DecisioningEngine/createContextProvider.js +95 -0
  68. package/libEs6/components/DecisioningEngine/createDecisionHistory.js +25 -0
  69. package/libEs6/components/DecisioningEngine/createDecisionProvider.js +41 -0
  70. package/libEs6/components/DecisioningEngine/createEvaluableRulesetPayload.js +79 -0
  71. package/libEs6/components/DecisioningEngine/createEvaluateRulesetsCommand.js +45 -0
  72. package/libEs6/components/DecisioningEngine/createEventRegistry.js +120 -0
  73. package/libEs6/components/DecisioningEngine/createOnResponseHandler.js +45 -0
  74. package/libEs6/components/DecisioningEngine/createSubscribeRulesetItems.js +79 -0
  75. package/libEs6/components/DecisioningEngine/index.js +124 -0
  76. package/libEs6/components/DecisioningEngine/utils.js +83 -0
  77. package/libEs6/components/Personalization/createActionsProvider.js +70 -0
  78. package/libEs6/components/Personalization/createApplyPropositions.js +2 -2
  79. package/libEs6/components/Personalization/createCollect.js +7 -4
  80. package/libEs6/components/Personalization/createComponent.js +5 -3
  81. package/libEs6/components/Personalization/createFetchDataHandler.js +3 -18
  82. package/libEs6/components/Personalization/createNotificationHandler.js +29 -0
  83. package/libEs6/components/Personalization/createOnClickHandler.js +5 -3
  84. package/libEs6/components/Personalization/createOnDecisionHandler.js +42 -0
  85. package/libEs6/components/Personalization/createPersonalizationDetails.js +8 -5
  86. package/libEs6/components/Personalization/createPreprocessors.js +19 -0
  87. package/libEs6/components/Personalization/createViewCacheManager.js +12 -3
  88. package/libEs6/components/Personalization/dom-actions/createRedirect.js +10 -1
  89. package/libEs6/components/Personalization/event.js +14 -9
  90. package/libEs6/components/Personalization/handlers/createProcessInAppMessage.js +77 -0
  91. package/libEs6/components/Personalization/handlers/createProcessRedirect.js +5 -2
  92. package/libEs6/components/Personalization/in-app-message-actions/actions/displayIframeContent.js +291 -0
  93. package/libEs6/components/Personalization/in-app-message-actions/initInAppMessageActionsModules.js +17 -0
  94. package/libEs6/components/Personalization/in-app-message-actions/utils.js +49 -0
  95. package/libEs6/components/Personalization/index.js +22 -8
  96. package/libEs6/{components/Personalization/constants/eventType.js → constants/contentType.js} +3 -4
  97. package/libEs6/{components/Personalization/constants/propositionEventType.js → constants/decisionProvider.js} +2 -6
  98. package/libEs6/constants/eventType.js +17 -0
  99. package/libEs6/constants/handle.js +12 -0
  100. package/libEs6/constants/libraryVersion.js +1 -1
  101. package/libEs6/constants/propositionEventType.js +33 -0
  102. package/libEs6/{components/Personalization/constants → constants}/schema.js +4 -0
  103. package/libEs6/core/componentCreators.js +2 -1
  104. package/libEs6/core/createEvent.js +26 -1
  105. package/libEs6/core/createEventManager.js +2 -0
  106. package/libEs6/core/createLifecycle.js +4 -1
  107. package/libEs6/core/edgeNetwork/mergeLifecycleResponses.js +3 -2
  108. package/libEs6/utils/assignConcatArrayValues.js +36 -0
  109. package/libEs6/utils/createSubscription.js +70 -0
  110. package/libEs6/utils/debounce.js +22 -0
  111. package/libEs6/utils/dom/selectNodesWithShadow.js +10 -3
  112. package/libEs6/utils/flattenArray.js +26 -0
  113. package/libEs6/utils/flattenObject.js +28 -0
  114. package/libEs6/utils/index.js +2 -0
  115. package/libEs6/utils/parseUrl.js +62 -0
  116. package/package.json +6 -2
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ exports.default = void 0;
4
+ var _handle = require("../../constants/handle");
5
+ var _flattenObject = require("../../utils/flattenObject");
6
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
8
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } /*
9
+ Copyright 2023 Adobe. All rights reserved.
10
+ This file is licensed to you under the Apache License, Version 2.0 (the "License");
11
+ you may not use this file except in compliance with the License. You may obtain a copy
12
+ of the License at http://www.apache.org/licenses/LICENSE-2.0
13
+
14
+ Unless required by applicable law or agreed to in writing, software distributed under
15
+ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
16
+ OF ANY KIND, either express or implied. See the License for the specific language
17
+ governing permissions and limitations under the License.
18
+ */
19
+ var _default = function _default(_ref) {
20
+ var renderDecisions = _ref.renderDecisions,
21
+ decisionProvider = _ref.decisionProvider,
22
+ applyResponse = _ref.applyResponse,
23
+ event = _ref.event,
24
+ personalization = _ref.personalization,
25
+ decisionContext = _ref.decisionContext;
26
+ var context = _objectSpread(_objectSpread({}, (0, _flattenObject.default)(event.getContent())), decisionContext);
27
+ return function (_ref2) {
28
+ var response = _ref2.response;
29
+ decisionProvider.addPayloads(response.getPayloadsByType(_handle.PERSONALIZATION_DECISIONS_HANDLE));
30
+
31
+ // only evaluate events that include a personalization query
32
+ if (!event.hasQuery()) {
33
+ return {
34
+ propositions: []
35
+ };
36
+ }
37
+ var propositions = decisionProvider.evaluate(context);
38
+ return applyResponse({
39
+ renderDecisions: renderDecisions,
40
+ propositions: propositions,
41
+ event: event,
42
+ personalization: personalization
43
+ });
44
+ };
45
+ };
46
+ exports.default = _default;
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+
3
+ exports.default = void 0;
4
+ var _validation = require("../../utils/validation");
5
+ var _createSubscription = require("../../utils/createSubscription");
6
+ var _utils = require("../../utils");
7
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
8
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
9
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } /*
10
+ Copyright 2023 Adobe. All rights reserved.
11
+ This file is licensed to you under the Apache License, Version 2.0 (the "License");
12
+ you may not use this file except in compliance with the License. You may obtain a copy
13
+ of the License at http://www.apache.org/licenses/LICENSE-2.0
14
+
15
+ Unless required by applicable law or agreed to in writing, software distributed under
16
+ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
17
+ OF ANY KIND, either express or implied. See the License for the specific language
18
+ governing permissions and limitations under the License.
19
+ */
20
+ var validateOptions = function validateOptions(_ref) {
21
+ var options = _ref.options;
22
+ var validator = (0, _validation.objectOf)({
23
+ surfaces: (0, _validation.arrayOf)((0, _validation.string)()).uniqueItems(),
24
+ schemas: (0, _validation.arrayOf)((0, _validation.string)()).uniqueItems(),
25
+ callback: (0, _validation.callback)().required()
26
+ }).noUnknownFields();
27
+ return validator(options);
28
+ };
29
+ var emissionPreprocessor = function emissionPreprocessor(params, propositions) {
30
+ var surfacesFilter = params.surfacesFilter,
31
+ schemasFilter = params.schemasFilter;
32
+ var result = {
33
+ propositions: propositions.filter(function (payload) {
34
+ return surfacesFilter ? (0, _utils.includes)(surfacesFilter, payload.scope) : true;
35
+ }).map(function (payload) {
36
+ var _payload$items = payload.items,
37
+ items = _payload$items === void 0 ? [] : _payload$items;
38
+ return _objectSpread(_objectSpread({}, payload), {}, {
39
+ items: items.filter(function (item) {
40
+ return schemasFilter ? (0, _utils.includes)(schemasFilter, item.schema) : true;
41
+ })
42
+ });
43
+ }).filter(function (payload) {
44
+ return payload.items.length > 0;
45
+ })
46
+ };
47
+ return [result];
48
+ };
49
+ var emissionCondition = function emissionCondition(params, result) {
50
+ return result.propositions.length > 0;
51
+ };
52
+ var _default = function _default() {
53
+ var subscription = (0, _createSubscription.default)();
54
+ subscription.setEmissionPreprocessor(emissionPreprocessor);
55
+ subscription.setEmissionCondition(emissionCondition);
56
+ var run = function run(_ref2) {
57
+ var surfaces = _ref2.surfaces,
58
+ schemas = _ref2.schemas,
59
+ callback = _ref2.callback;
60
+ var unsubscribe = subscription.add(callback, {
61
+ surfacesFilter: surfaces instanceof Array ? surfaces : undefined,
62
+ schemasFilter: schemas instanceof Array ? schemas : undefined
63
+ });
64
+ return Promise.resolve({
65
+ unsubscribe: unsubscribe
66
+ });
67
+ };
68
+ var optionsValidator = function optionsValidator(options) {
69
+ return validateOptions({
70
+ options: options
71
+ });
72
+ };
73
+ var refresh = function refresh(propositions) {
74
+ if (!subscription.hasSubscriptions()) {
75
+ return;
76
+ }
77
+ subscription.emit(propositions);
78
+ };
79
+ return {
80
+ refresh: refresh,
81
+ command: {
82
+ optionsValidator: optionsValidator,
83
+ run: run
84
+ }
85
+ };
86
+ };
87
+ exports.default = _default;
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+
3
+ exports.default = void 0;
4
+ var _utils = require("../../utils");
5
+ var _createOnResponseHandler = require("./createOnResponseHandler");
6
+ var _createDecisionProvider = require("./createDecisionProvider");
7
+ var _createApplyResponse = require("./createApplyResponse");
8
+ var _createEventRegistry = require("./createEventRegistry");
9
+ var _createContextProvider = require("./createContextProvider");
10
+ var _createSubscribeRulesetItems = require("./createSubscribeRulesetItems");
11
+ var _constants = require("./constants");
12
+ var _createEvaluateRulesetsCommand = require("./createEvaluateRulesetsCommand");
13
+ var _utils2 = require("./utils");
14
+ var _validation = require("../../utils/validation");
15
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
16
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
17
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } /*
18
+ Copyright 2023 Adobe. All rights reserved.
19
+ This file is licensed to you under the Apache License, Version 2.0 (the "License");
20
+ you may not use this file except in compliance with the License. You may obtain a copy
21
+ of the License at http://www.apache.org/licenses/LICENSE-2.0
22
+
23
+ Unless required by applicable law or agreed to in writing, software distributed under
24
+ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
25
+ OF ANY KIND, either express or implied. See the License for the specific language
26
+ governing permissions and limitations under the License.
27
+ */
28
+ var createDecisioningEngine = function createDecisioningEngine(_ref) {
29
+ var config = _ref.config,
30
+ createNamespacedStorage = _ref.createNamespacedStorage,
31
+ consent = _ref.consent;
32
+ var orgId = config.orgId,
33
+ personalizationStorageEnabled = config.personalizationStorageEnabled;
34
+ var storage = createNamespacedStorage((0, _utils.sanitizeOrgIdForCookieName)(orgId) + ".decisioning.");
35
+ if (!personalizationStorageEnabled) {
36
+ (0, _utils2.clearLocalStorage)(storage.persistent);
37
+ }
38
+ var eventRegistry = (0, _createEventRegistry.default)({
39
+ storage: (0, _utils2.createInMemoryStorage)()
40
+ });
41
+ var decisionProvider = (0, _createDecisionProvider.default)({
42
+ eventRegistry: eventRegistry
43
+ });
44
+ var contextProvider = (0, _createContextProvider.default)({
45
+ eventRegistry: eventRegistry,
46
+ window: window
47
+ });
48
+ var evaluateRulesetsCommand = (0, _createEvaluateRulesetsCommand.default)({
49
+ contextProvider: contextProvider,
50
+ decisionProvider: decisionProvider
51
+ });
52
+ var subscribeRulesetItems = (0, _createSubscribeRulesetItems.default)();
53
+ var applyResponse;
54
+ return {
55
+ lifecycle: {
56
+ onDecision: function onDecision(_ref2) {
57
+ var propositions = _ref2.propositions;
58
+ subscribeRulesetItems.refresh(propositions);
59
+ },
60
+ onComponentsRegistered: function onComponentsRegistered(tools) {
61
+ applyResponse = (0, _createApplyResponse.default)(tools.lifecycle);
62
+ if (personalizationStorageEnabled) {
63
+ consent.awaitConsent().then(function () {
64
+ eventRegistry.setStorage(storage.persistent);
65
+ }).catch(function () {
66
+ if (storage) {
67
+ (0, _utils2.clearLocalStorage)(storage.persistent);
68
+ }
69
+ });
70
+ }
71
+ },
72
+ onBeforeEvent: function onBeforeEvent(_ref3) {
73
+ var _objectSpread2;
74
+ var event = _ref3.event,
75
+ renderDecisions = _ref3.renderDecisions,
76
+ _ref3$personalization = _ref3.personalization,
77
+ personalization = _ref3$personalization === void 0 ? {} : _ref3$personalization,
78
+ _ref3$onResponse = _ref3.onResponse,
79
+ onResponse = _ref3$onResponse === void 0 ? _utils.noop : _ref3$onResponse;
80
+ var _personalization$deci = personalization.decisionContext,
81
+ decisionContext = _personalization$deci === void 0 ? {} : _personalization$deci;
82
+ onResponse((0, _createOnResponseHandler.default)({
83
+ renderDecisions: renderDecisions,
84
+ decisionProvider: decisionProvider,
85
+ applyResponse: applyResponse,
86
+ event: event,
87
+ personalization: personalization,
88
+ decisionContext: contextProvider.getContext(_objectSpread((_objectSpread2 = {}, _defineProperty(_objectSpread2, _constants.CONTEXT_KEY.TYPE, _constants.CONTEXT_EVENT_TYPE.EDGE), _defineProperty(_objectSpread2, _constants.CONTEXT_KEY.SOURCE, _constants.CONTEXT_EVENT_SOURCE.REQUEST), _objectSpread2), decisionContext))
89
+ }));
90
+ eventRegistry.addExperienceEdgeEvent(event);
91
+ }
92
+ },
93
+ commands: {
94
+ evaluateRulesets: {
95
+ run: function run(_ref4) {
96
+ var _objectSpread3;
97
+ var renderDecisions = _ref4.renderDecisions,
98
+ _ref4$personalization = _ref4.personalization,
99
+ personalization = _ref4$personalization === void 0 ? {} : _ref4$personalization;
100
+ var _personalization$deci2 = personalization.decisionContext,
101
+ decisionContext = _personalization$deci2 === void 0 ? {} : _personalization$deci2;
102
+ return evaluateRulesetsCommand.run({
103
+ renderDecisions: renderDecisions,
104
+ decisionContext: _objectSpread((_objectSpread3 = {}, _defineProperty(_objectSpread3, _constants.CONTEXT_KEY.TYPE, _constants.CONTEXT_EVENT_TYPE.RULES_ENGINE), _defineProperty(_objectSpread3, _constants.CONTEXT_KEY.SOURCE, _constants.CONTEXT_EVENT_SOURCE.REQUEST), _objectSpread3), decisionContext),
105
+ applyResponse: applyResponse
106
+ });
107
+ },
108
+ optionsValidator: evaluateRulesetsCommand.optionsValidator
109
+ },
110
+ subscribeRulesetItems: subscribeRulesetItems.command
111
+ }
112
+ };
113
+ };
114
+ createDecisioningEngine.namespace = "DecisioningEngine";
115
+ createDecisioningEngine.configValidators = (0, _validation.objectOf)({
116
+ personalizationStorageEnabled: (0, _validation.boolean)().default(false)
117
+ });
118
+ var _default = createDecisioningEngine;
119
+ exports.default = _default;
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+
3
+ exports.hasExperienceData = exports.getExpirationDate = exports.getDecisionProvider = exports.getActivityId = exports.createSaveStorage = exports.createRestoreStorage = exports.createInMemoryStorage = exports.clearLocalStorage = void 0;
4
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
5
+ /*
6
+ Copyright 2023 Adobe. All rights reserved.
7
+ This file is licensed to you under the Apache License, Version 2.0 (the "License");
8
+ you may not use this file except in compliance with the License. You may obtain a copy
9
+ of the License at http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ Unless required by applicable law or agreed to in writing, software distributed under
12
+ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
13
+ OF ANY KIND, either express or implied. See the License for the specific language
14
+ governing permissions and limitations under the License.
15
+ */
16
+
17
+ var createRestoreStorage = function createRestoreStorage(storage, storageKey) {
18
+ return function (defaultValue) {
19
+ var stored = storage.getItem(storageKey);
20
+ if (!stored) {
21
+ return defaultValue;
22
+ }
23
+ try {
24
+ return JSON.parse(stored);
25
+ } catch (e) {
26
+ return defaultValue;
27
+ }
28
+ };
29
+ };
30
+ exports.createRestoreStorage = createRestoreStorage;
31
+ var createSaveStorage = function createSaveStorage(storage, storageKey) {
32
+ var prepareFn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function (value) {
33
+ return value;
34
+ };
35
+ return function (value) {
36
+ storage.setItem(storageKey, JSON.stringify(prepareFn(value)));
37
+ };
38
+ };
39
+ exports.createSaveStorage = createSaveStorage;
40
+ var getExpirationDate = function getExpirationDate(retentionPeriod) {
41
+ var expirationDate = new Date();
42
+ expirationDate.setDate(expirationDate.getDate() - retentionPeriod);
43
+ return expirationDate;
44
+ };
45
+ exports.getExpirationDate = getExpirationDate;
46
+ var getActivityId = function getActivityId(proposition) {
47
+ var _proposition$scopeDet = proposition.scopeDetails,
48
+ scopeDetails = _proposition$scopeDet === void 0 ? {} : _proposition$scopeDet;
49
+ var _scopeDetails$activit = scopeDetails.activity,
50
+ activity = _scopeDetails$activit === void 0 ? {} : _scopeDetails$activit;
51
+ var id = activity.id;
52
+ return id;
53
+ };
54
+ exports.getActivityId = getActivityId;
55
+ var createInMemoryStorage = function createInMemoryStorage() {
56
+ var inMemoryStorage = {};
57
+ return {
58
+ getItem: function getItem(key) {
59
+ return key in inMemoryStorage ? inMemoryStorage[key] : null;
60
+ },
61
+ setItem: function setItem(key, value) {
62
+ inMemoryStorage[key] = value;
63
+ }
64
+ };
65
+ };
66
+ exports.createInMemoryStorage = createInMemoryStorage;
67
+ var clearLocalStorage = function clearLocalStorage(storage) {
68
+ storage.clear();
69
+ };
70
+ exports.clearLocalStorage = clearLocalStorage;
71
+ var hasExperienceData = function hasExperienceData(xdm) {
72
+ var _xdm$eventType = xdm.eventType,
73
+ eventType = _xdm$eventType === void 0 ? "" : _xdm$eventType,
74
+ _experience = xdm._experience;
75
+ if (!eventType || eventType === "") {
76
+ return false;
77
+ }
78
+ if (!_experience || _typeof(_experience) !== "object") {
79
+ return false;
80
+ }
81
+ return true;
82
+ };
83
+ exports.hasExperienceData = hasExperienceData;
84
+ var getDecisionProvider = function getDecisionProvider(proposition) {
85
+ var _proposition$scopeDet2 = proposition.scopeDetails,
86
+ scopeDetails = _proposition$scopeDet2 === void 0 ? {} : _proposition$scopeDet2;
87
+ var decisionProvider = scopeDetails.decisionProvider;
88
+ return decisionProvider;
89
+ };
90
+ exports.getDecisionProvider = getDecisionProvider;
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ exports.default = void 0;
4
+ var _createPreprocessors = require("./createPreprocessors");
5
+ var _utils = require("../../utils");
6
+ /*
7
+ Copyright 2023 Adobe. All rights reserved.
8
+ This file is licensed to you under the Apache License, Version 2.0 (the "License");
9
+ you may not use this file except in compliance with the License. You may obtain a copy
10
+ of the License at http://www.apache.org/licenses/LICENSE-2.0
11
+
12
+ Unless required by applicable law or agreed to in writing, software distributed under
13
+ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
14
+ OF ANY KIND, either express or implied. See the License for the specific language
15
+ governing permissions and limitations under the License.
16
+ */
17
+ var _default = function _default(_ref) {
18
+ var modules = _ref.modules,
19
+ _ref$preprocessors = _ref.preprocessors,
20
+ preprocessors = _ref$preprocessors === void 0 ? (0, _createPreprocessors.default)() : _ref$preprocessors,
21
+ logger = _ref.logger;
22
+ var logActionError = function logActionError(action, error) {
23
+ if (logger.enabled) {
24
+ var details = JSON.stringify(action);
25
+ var message = error.message,
26
+ stack = error.stack;
27
+ var errorMessage = "Failed to execute action " + details + ". " + message + " " + (stack ? "\n " + stack : "");
28
+ logger.warn(errorMessage);
29
+ }
30
+ };
31
+ var logActionCompleted = function logActionCompleted(action) {
32
+ if (logger.enabled) {
33
+ var details = JSON.stringify(action);
34
+ logger.info("Action " + details + " executed.");
35
+ }
36
+ };
37
+ var getExecuteAction = function getExecuteAction(schema, type) {
38
+ if (!modules[schema] || !modules[schema][type]) {
39
+ return function () {
40
+ return Promise.reject(new Error("Action \"" + type + "\" not found for schema \"" + schema + "\""));
41
+ };
42
+ }
43
+ return modules[schema][type];
44
+ };
45
+ var applyPreprocessors = function applyPreprocessors(action) {
46
+ var schema = action.schema;
47
+ var preprocessorsList = preprocessors[schema];
48
+ if (!schema || !(preprocessorsList instanceof Array) || preprocessorsList.length === 0) {
49
+ return action;
50
+ }
51
+ return preprocessorsList.reduce(function (processed, fn) {
52
+ return (0, _utils.assign)(processed, fn(processed));
53
+ }, action);
54
+ };
55
+ var executeAction = function executeAction(action) {
56
+ var processedAction = applyPreprocessors(action);
57
+ var type = processedAction.type,
58
+ schema = processedAction.schema;
59
+ var execute = getExecuteAction(schema, type);
60
+ return execute(processedAction).then(function (result) {
61
+ logActionCompleted(processedAction);
62
+ return result;
63
+ }).catch(function (error) {
64
+ logActionError(processedAction, error);
65
+ throw error;
66
+ });
67
+ };
68
+ return {
69
+ executeAction: executeAction
70
+ };
71
+ };
72
+ exports.default = _default;
@@ -2,7 +2,7 @@
2
2
 
3
3
  exports.default = void 0;
4
4
  var _utils = require("../../utils");
5
- var _schema = require("./constants/schema");
5
+ var _schema = require("../../constants/schema");
6
6
  var _pageWideScope = require("../../constants/pageWideScope");
7
7
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
8
8
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -23,7 +23,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
23
23
  OF ANY KIND, either express or implied. See the License for the specific language
24
24
  governing permissions and limitations under the License.
25
25
  */
26
- var SUPPORTED_SCHEMAS = [_schema.DOM_ACTION, _schema.HTML_CONTENT_ITEM];
26
+ var SUPPORTED_SCHEMAS = [_schema.DOM_ACTION, _schema.HTML_CONTENT_ITEM, _schema.MESSAGE_IN_APP];
27
27
  var _default = function _default(_ref) {
28
28
  var processPropositions = _ref.processPropositions,
29
29
  createProposition = _ref.createProposition,
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
 
3
3
  exports.default = void 0;
4
- var _eventType = require("./constants/eventType");
5
- var _propositionEventType = require("./constants/propositionEventType");
4
+ var _eventType = require("../../constants/eventType");
5
+ var _propositionEventType = require("../../constants/propositionEventType");
6
6
  var _utils = require("../../utils");
7
7
  /*
8
8
  Copyright 2020 Adobe. All rights reserved.
@@ -22,12 +22,17 @@ var _default = function _default(_ref) {
22
22
  return function (_ref2) {
23
23
  var _ref2$decisionsMeta = _ref2.decisionsMeta,
24
24
  decisionsMeta = _ref2$decisionsMeta === void 0 ? [] : _ref2$decisionsMeta,
25
+ propositionAction = _ref2.propositionAction,
25
26
  _ref2$documentMayUnlo = _ref2.documentMayUnload,
26
27
  documentMayUnload = _ref2$documentMayUnlo === void 0 ? false : _ref2$documentMayUnlo,
28
+ _ref2$eventType = _ref2.eventType,
29
+ eventType = _ref2$eventType === void 0 ? _eventType.DISPLAY : _ref2$eventType,
30
+ _ref2$propositionEven = _ref2.propositionEventTypes,
31
+ propositionEventTypes = _ref2$propositionEven === void 0 ? [(0, _propositionEventType.getPropositionEventType)(eventType)] : _ref2$propositionEven,
27
32
  viewName = _ref2.viewName;
28
33
  var event = eventManager.createEvent();
29
34
  var data = {
30
- eventType: _eventType.DISPLAY
35
+ eventType: eventType
31
36
  };
32
37
  if (viewName) {
33
38
  data.web = {
@@ -37,7 +42,7 @@ var _default = function _default(_ref) {
37
42
  };
38
43
  }
39
44
  if ((0, _utils.isNonEmptyArray)(decisionsMeta)) {
40
- mergeDecisionsMeta(event, decisionsMeta, _propositionEventType.PropositionEventType.DISPLAY);
45
+ mergeDecisionsMeta(event, decisionsMeta, propositionEventTypes, propositionAction);
41
46
  }
42
47
  event.mergeXdm(data);
43
48
  if (documentMayUnload) {
@@ -4,8 +4,8 @@ exports.default = void 0;
4
4
  var _utils = require("../../utils");
5
5
  var _createPersonalizationDetails = require("./createPersonalizationDetails");
6
6
  var _loggerMessage = require("./constants/loggerMessage");
7
+ var _propositionEventType = require("../../constants/propositionEventType");
7
8
  var _validateApplyPropositionsOptions = require("./validateApplyPropositionsOptions");
8
- var _propositionEventType = require("./constants/propositionEventType");
9
9
  /*
10
10
  Copyright 2020 Adobe. All rights reserved.
11
11
  This file is licensed to you under the Apache License, Version 2.0 (the "License");
@@ -30,9 +30,11 @@ var _default = function _default(_ref) {
30
30
  applyPropositions = _ref.applyPropositions,
31
31
  setTargetMigration = _ref.setTargetMigration,
32
32
  mergeDecisionsMeta = _ref.mergeDecisionsMeta,
33
- renderedPropositions = _ref.renderedPropositions;
33
+ renderedPropositions = _ref.renderedPropositions,
34
+ onDecisionHandler = _ref.onDecisionHandler;
34
35
  return {
35
36
  lifecycle: {
37
+ onDecision: onDecisionHandler,
36
38
  onBeforeRequest: function onBeforeRequest(_ref2) {
37
39
  var request = _ref2.request;
38
40
  setTargetMigration(request);
@@ -111,7 +113,7 @@ var _default = function _default(_ref) {
111
113
  return dms;
112
114
  });
113
115
  if ((0, _utils.isNonEmptyArray)(decisionsMeta)) {
114
- mergeDecisionsMeta(event, decisionsMeta, _propositionEventType.PropositionEventType.DISPLAY);
116
+ mergeDecisionsMeta(event, decisionsMeta, [_propositionEventType.PropositionEventType.DISPLAY]);
115
117
  }
116
118
  });
117
119
  },
@@ -24,10 +24,9 @@ var _default = function _default(_ref) {
24
24
  showContainers = _ref.showContainers,
25
25
  hideContainers = _ref.hideContainers,
26
26
  mergeQuery = _ref.mergeQuery,
27
- collect = _ref.collect,
28
27
  processPropositions = _ref.processPropositions,
29
28
  createProposition = _ref.createProposition,
30
- renderedPropositions = _ref.renderedPropositions;
29
+ notificationHandler = _ref.notificationHandler;
31
30
  return function (_ref2) {
32
31
  var cacheUpdate = _ref2.cacheUpdate,
33
32
  personalizationDetails = _ref2.personalizationDetails,
@@ -39,21 +38,7 @@ var _default = function _default(_ref) {
39
38
  showContainers();
40
39
  }
41
40
  mergeQuery(event, personalizationDetails.createQueryDetails());
42
- var handleNotifications;
43
- if (personalizationDetails.isSendDisplayEvent()) {
44
- handleNotifications = function handleNotifications(decisionsMeta) {
45
- if (decisionsMeta.length > 0) {
46
- collect({
47
- decisionsMeta: decisionsMeta,
48
- viewName: personalizationDetails.getViewName()
49
- });
50
- }
51
- };
52
- } else {
53
- var renderedPropositionsDeferred = (0, _utils.defer)();
54
- renderedPropositions.concat(renderedPropositionsDeferred.promise);
55
- handleNotifications = renderedPropositionsDeferred.resolve;
56
- }
41
+ var handleNotifications = notificationHandler(personalizationDetails.isSendDisplayEvent(), personalizationDetails.getViewName());
57
42
  onResponse(function (_ref3) {
58
43
  var response = _ref3.response;
59
44
  var handles = response.getPayloadsByType(DECISIONS_HANDLE);
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ exports.default = void 0;
4
+ var _utils = require("../../utils");
5
+ /*
6
+ Copyright 2023 Adobe. All rights reserved.
7
+ This file is licensed to you under the Apache License, Version 2.0 (the "License");
8
+ you may not use this file except in compliance with the License. You may obtain a copy
9
+ of the License at http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ Unless required by applicable law or agreed to in writing, software distributed under
12
+ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
13
+ OF ANY KIND, either express or implied. See the License for the specific language
14
+ governing permissions and limitations under the License.
15
+ */
16
+ var _default = function _default(collect, renderedPropositions) {
17
+ return function (sendDisplayEvent, viewName) {
18
+ if (!sendDisplayEvent) {
19
+ var renderedPropositionsDeferred = (0, _utils.defer)();
20
+ renderedPropositions.concat(renderedPropositionsDeferred.promise);
21
+ return renderedPropositionsDeferred.resolve;
22
+ }
23
+ return function (decisionsMeta) {
24
+ if (decisionsMeta.length > 0) {
25
+ collect({
26
+ decisionsMeta: decisionsMeta,
27
+ viewName: viewName
28
+ });
29
+ }
30
+ };
31
+ };
32
+ };
33
+ exports.default = _default;
@@ -2,8 +2,8 @@
2
2
 
3
3
  exports.default = void 0;
4
4
  var _utils = require("../../utils");
5
- var _eventType = require("./constants/eventType");
6
- var _propositionEventType = require("./constants/propositionEventType");
5
+ var _eventType = require("../../constants/eventType");
6
+ var _propositionEventType = require("../../constants/propositionEventType");
7
7
  /*
8
8
  Copyright 2020 Adobe. All rights reserved.
9
9
  This file is licensed to you under the Apache License, Version 2.0 (the "License");
@@ -42,7 +42,9 @@ var _default = function _default(_ref) {
42
42
  };
43
43
  }
44
44
  event.mergeXdm(xdm);
45
- mergeDecisionsMeta(event, decisionsMeta, _propositionEventType.PropositionEventType.INTERACT, eventLabel);
45
+ mergeDecisionsMeta(event, decisionsMeta, [_propositionEventType.PropositionEventType.INTERACT], eventLabel ? {
46
+ label: eventLabel
47
+ } : undefined);
46
48
  }
47
49
  }
48
50
  };
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ exports.default = void 0;
4
+ /*
5
+ Copyright 2023 Adobe. All rights reserved.
6
+ This file is licensed to you under the Apache License, Version 2.0 (the "License");
7
+ you may not use this file except in compliance with the License. You may obtain a copy
8
+ of the License at http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, software distributed under
11
+ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
12
+ OF ANY KIND, either express or implied. See the License for the specific language
13
+ governing permissions and limitations under the License.
14
+ */
15
+ var _default = function _default(_ref) {
16
+ var processPropositions = _ref.processPropositions,
17
+ createProposition = _ref.createProposition,
18
+ notificationHandler = _ref.notificationHandler;
19
+ return function (_ref2) {
20
+ var renderDecisions = _ref2.renderDecisions,
21
+ propositions = _ref2.propositions,
22
+ event = _ref2.event,
23
+ _ref2$personalization = _ref2.personalization,
24
+ personalization = _ref2$personalization === void 0 ? {} : _ref2$personalization;
25
+ if (!renderDecisions) {
26
+ return Promise.resolve();
27
+ }
28
+ var _personalization$send = personalization.sendDisplayEvent,
29
+ sendDisplayEvent = _personalization$send === void 0 ? true : _personalization$send;
30
+ var viewName = event ? event.getViewName() : undefined;
31
+ var propositionsToExecute = propositions.map(function (proposition) {
32
+ return createProposition(proposition, true);
33
+ });
34
+ var _processPropositions = processPropositions(propositionsToExecute),
35
+ render = _processPropositions.render,
36
+ returnedPropositions = _processPropositions.returnedPropositions;
37
+ var handleNotifications = notificationHandler(sendDisplayEvent, viewName);
38
+ render().then(handleNotifications);
39
+ return Promise.resolve({
40
+ propositions: returnedPropositions
41
+ });
42
+ };
43
+ };
44
+ exports.default = _default;