@adobe/alloy 2.29.0-beta.4 → 2.29.0-beta.5

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.
@@ -14,4 +14,4 @@ governing permissions and limitations under the License.
14
14
  */
15
15
  // The __VERSION__ keyword will be replace at alloy build time with the package.json version.
16
16
  // see babel-plugin-version
17
- var _default = exports.default = "2.29.0-beta.4";
17
+ var _default = exports.default = "2.29.0-beta.5";
@@ -13,6 +13,57 @@ the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTA
13
13
  OF ANY KIND, either express or implied. See the License for the specific language
14
14
  governing permissions and limitations under the License.
15
15
  */
16
+
17
+ /**
18
+ * createMerger creates a function that does a deep merge. Example:
19
+ * ```js
20
+ * payload.mergeConfigOverride({
21
+ * com_adobe_analytics: {
22
+ * reportSuites: ["reportSuite1"],
23
+ * },
24
+ * });
25
+ *
26
+ * payload.mergeConfigOverride({
27
+ * com_adobe_analytics: {
28
+ * enabled: false,
29
+ * },
30
+ * });
31
+ *
32
+ *
33
+ * // payload.meta.configOverrides is now:
34
+ * // {
35
+ * // com_adobe_analytics: {
36
+ * // enabled: false,
37
+ * // reportSuites: ["reportSuite1"],
38
+ * // },
39
+ * // }
40
+ * ```
41
+ * however, we need the result to be:
42
+ * ```js
43
+ * // {
44
+ * // com_adobe_analytics: {
45
+ * // enabled: false,
46
+ * // },
47
+ * // }
48
+ * ```
49
+ * aka a shallow merge, where the second object overwrites the first.
50
+ * This is because order matters and we don't want to send reportSuites when something is
51
+ * disabled.
52
+ * This function does that.
53
+ *
54
+ * @param {Object} content
55
+ * @param {string} key
56
+ * @returns {(updates: Object) => void}
57
+ */
58
+ const createMergeConfigOverride = (content, key) => updates => {
59
+ const propertyPath = key.split(".");
60
+ const hostObjectForUpdates = propertyPath.reduce((obj, propertyName) => {
61
+ obj[propertyName] = obj[propertyName] || {};
62
+ return obj[propertyName];
63
+ }, content);
64
+ Object.assign(hostObjectForUpdates, updates);
65
+ };
66
+
16
67
  // This provides the base functionality that all types of
17
68
  // request payloads share.
18
69
  var _default = options => {
@@ -21,12 +72,12 @@ var _default = options => {
21
72
  addIdentity,
22
73
  hasIdentity
23
74
  } = options;
24
- const mergeConfigOverride = (0, _index.createMerger)(content, "meta.configOverrides");
75
+ const mergeConfigOverrides = createMergeConfigOverride(content, "meta.configOverrides");
25
76
  return {
26
77
  mergeMeta: (0, _index.createMerger)(content, "meta"),
27
78
  mergeState: (0, _index.createMerger)(content, "meta.state"),
28
79
  mergeQuery: (0, _index.createMerger)(content, "query"),
29
- mergeConfigOverride: updates => mergeConfigOverride((0, _index.prepareConfigOverridesForEdge)(updates)),
80
+ mergeConfigOverride: updates => mergeConfigOverrides((0, _index.prepareConfigOverridesForEdge)(updates)),
30
81
  addIdentity,
31
82
  hasIdentity,
32
83
  toJSON() {
@@ -13,4 +13,4 @@ governing permissions and limitations under the License.
13
13
  // The __VERSION__ keyword will be replace at alloy build time with the package.json version.
14
14
  // see babel-plugin-version
15
15
 
16
- export default "2.29.0-beta.4";
16
+ export default "2.29.0-beta.5";
@@ -12,6 +12,56 @@ governing permissions and limitations under the License.
12
12
 
13
13
  import { createMerger, prepareConfigOverridesForEdge } from "../index.js";
14
14
 
15
+ /**
16
+ * createMerger creates a function that does a deep merge. Example:
17
+ * ```js
18
+ * payload.mergeConfigOverride({
19
+ * com_adobe_analytics: {
20
+ * reportSuites: ["reportSuite1"],
21
+ * },
22
+ * });
23
+ *
24
+ * payload.mergeConfigOverride({
25
+ * com_adobe_analytics: {
26
+ * enabled: false,
27
+ * },
28
+ * });
29
+ *
30
+ *
31
+ * // payload.meta.configOverrides is now:
32
+ * // {
33
+ * // com_adobe_analytics: {
34
+ * // enabled: false,
35
+ * // reportSuites: ["reportSuite1"],
36
+ * // },
37
+ * // }
38
+ * ```
39
+ * however, we need the result to be:
40
+ * ```js
41
+ * // {
42
+ * // com_adobe_analytics: {
43
+ * // enabled: false,
44
+ * // },
45
+ * // }
46
+ * ```
47
+ * aka a shallow merge, where the second object overwrites the first.
48
+ * This is because order matters and we don't want to send reportSuites when something is
49
+ * disabled.
50
+ * This function does that.
51
+ *
52
+ * @param {Object} content
53
+ * @param {string} key
54
+ * @returns {(updates: Object) => void}
55
+ */
56
+ const createMergeConfigOverride = (content, key) => updates => {
57
+ const propertyPath = key.split(".");
58
+ const hostObjectForUpdates = propertyPath.reduce((obj, propertyName) => {
59
+ obj[propertyName] = obj[propertyName] || {};
60
+ return obj[propertyName];
61
+ }, content);
62
+ Object.assign(hostObjectForUpdates, updates);
63
+ };
64
+
15
65
  // This provides the base functionality that all types of
16
66
  // request payloads share.
17
67
  export default options => {
@@ -20,12 +70,12 @@ export default options => {
20
70
  addIdentity,
21
71
  hasIdentity
22
72
  } = options;
23
- const mergeConfigOverride = createMerger(content, "meta.configOverrides");
73
+ const mergeConfigOverrides = createMergeConfigOverride(content, "meta.configOverrides");
24
74
  return {
25
75
  mergeMeta: createMerger(content, "meta"),
26
76
  mergeState: createMerger(content, "meta.state"),
27
77
  mergeQuery: createMerger(content, "query"),
28
- mergeConfigOverride: updates => mergeConfigOverride(prepareConfigOverridesForEdge(updates)),
78
+ mergeConfigOverride: updates => mergeConfigOverrides(prepareConfigOverridesForEdge(updates)),
29
79
  addIdentity,
30
80
  hasIdentity,
31
81
  toJSON() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adobe/alloy",
3
- "version": "2.29.0-beta.4",
3
+ "version": "2.29.0-beta.5",
4
4
  "description": "Adobe Experience Platform Web SDK",
5
5
  "type": "module",
6
6
  "main": "libEs5/index.js",
@@ -94,7 +94,7 @@
94
94
  "uuid": "^11.1.0"
95
95
  },
96
96
  "devDependencies": {
97
- "@adobe/alloy": "^2.29.0-beta.3",
97
+ "@adobe/alloy": "^2.29.0-beta.4",
98
98
  "@babel/cli": "^7.27.2",
99
99
  "@babel/plugin-transform-modules-commonjs": "^7.27.1",
100
100
  "@babel/plugin-transform-runtime": "^7.27.4",
@@ -2,7 +2,7 @@ declare function _default(): {
2
2
  mergeMeta: Function;
3
3
  mergeState: Function;
4
4
  mergeQuery: Function;
5
- mergeConfigOverride: (updates: any) => any;
5
+ mergeConfigOverride: (updates: any) => void;
6
6
  addIdentity: any;
7
7
  hasIdentity: any;
8
8
  toJSON(): any;
@@ -2,7 +2,7 @@ declare function _default(namespaces: any): {
2
2
  mergeMeta: Function;
3
3
  mergeState: Function;
4
4
  mergeQuery: Function;
5
- mergeConfigOverride: (updates: any) => any;
5
+ mergeConfigOverride: (updates: any) => void;
6
6
  addIdentity: any;
7
7
  hasIdentity: any;
8
8
  toJSON(): any;
@@ -2,7 +2,7 @@ declare function _default(): {
2
2
  mergeMeta: Function;
3
3
  mergeState: Function;
4
4
  mergeQuery: Function;
5
- mergeConfigOverride: (updates: any) => any;
5
+ mergeConfigOverride: (updates: any) => void;
6
6
  addIdentity: any;
7
7
  hasIdentity: any;
8
8
  toJSON(): any;
@@ -2,7 +2,7 @@ declare function _default(options: any): {
2
2
  mergeMeta: Function;
3
3
  mergeState: Function;
4
4
  mergeQuery: Function;
5
- mergeConfigOverride: (updates: any) => any;
5
+ mergeConfigOverride: (updates: any) => void;
6
6
  addIdentity: any;
7
7
  hasIdentity: any;
8
8
  toJSON(): any;
@@ -1 +1 @@
1
- {"version":3,"file":"createRequestPayload.d.ts","sourceRoot":"","sources":["../../../src/utils/request/createRequestPayload.js"],"names":[],"mappings":"AAgBe;;;;;;;;EAed"}
1
+ {"version":3,"file":"createRequestPayload.d.ts","sourceRoot":"","sources":["../../../src/utils/request/createRequestPayload.js"],"names":[],"mappings":"AAmEe;;;;;;;;EAkBd"}