hinted-tree-merger 6.1.0 → 6.1.1

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.
package/README.md CHANGED
@@ -51,38 +51,46 @@ const r = merge( undefined, [ { k:1, e:2}, { k:3 }]);
51
51
 
52
52
  * [hintFor](#hintfor)
53
53
  * [Parameters](#parameters)
54
- * [mergeSkip](#mergeskip)
54
+ * [Actions](#actions)
55
55
  * [Parameters](#parameters-1)
56
- * [mergeArrays](#mergearrays)
56
+ * [mergeSkip](#mergeskip)
57
57
  * [Parameters](#parameters-2)
58
- * [merge](#merge)
58
+ * [mergeArrays](#mergearrays)
59
59
  * [Parameters](#parameters-3)
60
- * [hasDeleteHint](#hasdeletehint)
60
+ * [merge](#merge)
61
61
  * [Parameters](#parameters-4)
62
- * [isToBeRemoved](#istoberemoved)
62
+ * [hasDeleteHint](#hasdeletehint)
63
63
  * [Parameters](#parameters-5)
64
- * [hintFreeValue](#hintfreevalue)
64
+ * [isToBeRemoved](#istoberemoved)
65
65
  * [Parameters](#parameters-6)
66
- * [indexFor](#indexfor)
66
+ * [hintFreeValue](#hintfreevalue)
67
67
  * [Parameters](#parameters-7)
68
- * [keyFor](#keyfor)
68
+ * [indexFor](#indexfor)
69
69
  * [Parameters](#parameters-8)
70
- * [sortObjectsByKeys](#sortobjectsbykeys)
70
+ * [keyFor](#keyfor)
71
71
  * [Parameters](#parameters-9)
72
+ * [sortObjectsByKeys](#sortobjectsbykeys)
73
+ * [Parameters](#parameters-10)
74
+ * [compareWithDefinedOrder](#comparewithdefinedorder)
75
+ * [Parameters](#parameters-11)
76
+ * [matchingIndex](#matchingindex)
77
+ * [Parameters](#parameters-12)
72
78
  * [match](#match)
79
+ * [cmp](#cmp)
80
+ * [Parameters](#parameters-13)
73
81
  * [compareVersion](#compareversion)
74
- * [Parameters](#parameters-10)
82
+ * [Parameters](#parameters-14)
75
83
  * [unionVersion](#unionversion)
76
- * [Parameters](#parameters-11)
84
+ * [Parameters](#parameters-15)
77
85
  * [VersionMapper](#versionmapper)
78
86
  * [mergeVersionsWithFilter](#mergeversionswithfilter)
79
- * [Parameters](#parameters-12)
87
+ * [Parameters](#parameters-16)
80
88
  * [mergeVersions](#mergeversions)
81
- * [Parameters](#parameters-13)
89
+ * [Parameters](#parameters-17)
82
90
  * [mergeVersionsPreferNumeric](#mergeversionsprefernumeric)
83
- * [Parameters](#parameters-14)
91
+ * [Parameters](#parameters-18)
84
92
  * [walk](#walk)
85
- * [Parameters](#parameters-15)
93
+ * [Parameters](#parameters-19)
86
94
 
87
95
  ## hintFor
88
96
 
@@ -93,6 +101,15 @@ Construct hint for a given path.
93
101
  * `hints` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** 
94
102
  * `path` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** 
95
103
 
104
+ ## Actions
105
+
106
+ Type: [Function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function)
107
+
108
+ ### Parameters
109
+
110
+ * `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** 
111
+ * `hints` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** 
112
+
96
113
  ## mergeSkip
97
114
 
98
115
  Skip merging use left side always.
@@ -112,7 +129,7 @@ Skip merging use left side always.
112
129
  * `a` **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)** 
113
130
  * `b` **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)** 
114
131
  * `path` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** 
115
- * `actions` **[Function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function)** (optional, default `nullAction`)
132
+ * `actions` **[Actions](#actions)** (optional, default `nullAction`)
116
133
  * `hints` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** 
117
134
 
118
135
  ## merge
@@ -124,7 +141,7 @@ Merge to values.
124
141
  * `a` **any** 
125
142
  * `b` **any** 
126
143
  * `path`  
127
- * `actions` **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)>** (optional, default `nullAction`)
144
+ * `actions` **[Actions](#actions)** (optional, default `nullAction`)
128
145
  * `hints` **any**&#x20;
129
146
 
130
147
  Returns **any** merged value
@@ -147,7 +164,7 @@ Should value be removed.
147
164
  * `value` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**&#x20;
148
165
  * `fromTemplate` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**&#x20;
149
166
 
150
- Returns **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** true if fromTemplate tells is to delete value
167
+ Returns **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** true if fromTemplate tells is to delete value
151
168
 
152
169
  ## hintFreeValue
153
170
 
@@ -178,7 +195,7 @@ Deliver key value to identify object.
178
195
  * `object` **any**&#x20;
179
196
  * `hint` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**&#x20;
180
197
 
181
- Returns **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**&#x20;
198
+ Returns **([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))**&#x20;
182
199
 
183
200
  ## sortObjectsByKeys
184
201
 
@@ -191,10 +208,35 @@ Sort keys in source.
191
208
 
192
209
  Returns **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** source with keys orderd by compare function
193
210
 
211
+ ## compareWithDefinedOrder
212
+
213
+ ### Parameters
214
+
215
+ * `a` **any**&#x20;
216
+ * `b` **any**&#x20;
217
+ * `definedOrder` &#x20;
218
+
219
+ ## matchingIndex
220
+
221
+ ### Parameters
222
+
223
+ * `value` **any**&#x20;
224
+
225
+ Returns **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)**&#x20;
226
+
194
227
  ## match
195
228
 
196
229
  url means highest version
197
230
 
231
+ ## cmp
232
+
233
+ ### Parameters
234
+
235
+ * `a` **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)>**&#x20;
236
+ * `b` **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)>**&#x20;
237
+
238
+ Returns **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)**&#x20;
239
+
198
240
  ## compareVersion
199
241
 
200
242
  Compare two versions.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hinted-tree-merger",
3
- "version": "6.1.0",
3
+ "version": "6.1.1",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "provenance": true
@@ -8,8 +8,8 @@
8
8
  "types": "./types/index.d.mts",
9
9
  "exports": {
10
10
  ".": {
11
- "types": "./types/index.d.mts",
12
- "default": "./src/index.mjs"
11
+ "default": "./src/index.mjs",
12
+ "types": "./types/index.d.mts"
13
13
  }
14
14
  },
15
15
  "description": "merges two trees guided with hints",
@@ -47,7 +47,7 @@
47
47
  "typescript": "^5.3.3"
48
48
  },
49
49
  "engines": {
50
- "node": ">=20.11.0"
50
+ "node": ">=20.11.1"
51
51
  },
52
52
  "repository": {
53
53
  "type": "git",
package/src/merger.mjs CHANGED
@@ -14,7 +14,6 @@ import {
14
14
  } from "./util.mjs";
15
15
  import { hintFor } from "./hint.mjs";
16
16
 
17
-
18
17
  /**
19
18
  * @callback Actions
20
19
  * @param {Object} options
@@ -1,5 +1,10 @@
1
1
  import { nullAction } from "./util.mjs";
2
- import { hintFor, DELETE_HINT_REGEX, OVERWRITE_HINT_REGEX, LIKE_HINT_REGEX } from "./hint.mjs";
2
+ import {
3
+ hintFor,
4
+ DELETE_HINT_REGEX,
5
+ OVERWRITE_HINT_REGEX,
6
+ LIKE_HINT_REGEX
7
+ } from "./hint.mjs";
3
8
 
4
9
  export function mergeExpressions(a, b, path, actions = nullAction, hints) {
5
10
  if (a === undefined && b === undefined) {
@@ -63,7 +68,7 @@ export function decodeExpressions(script, hint) {
63
68
  like,
64
69
  overwrite,
65
70
  op: "&&",
66
- args: script.split(/\s*&&\s*/).map(v=>v.trim())
71
+ args: script.split(/\s*&&\s*/).map(v => v.trim())
67
72
  };
68
73
  }
69
74
  return { op: "", args: [script.trim()], overwrite, like };
@@ -84,11 +89,12 @@ function mergeLIKE(a, b) {
84
89
  const args = x => (x === undefined ? [] : x.args);
85
90
 
86
91
  //const t = args(a).concat(args(b));
87
- const t="";
88
- console.log(args(b))
92
+ const t = "";
93
+ console.log(args(b));
89
94
 
90
95
  return {
91
96
  op: "&&",
97
+ // @ts-ignore
92
98
  args: t.filter((item, pos) => t.indexOf(item) === pos)
93
99
  };
94
100
  }
package/src/util.mjs CHANGED
@@ -4,7 +4,7 @@ import {
4
4
  OVERWRITE_HINT_REGEX
5
5
  } from "./hint.mjs";
6
6
 
7
- export function nullAction() {}
7
+ export function nullAction(options,hint) {}
8
8
 
9
9
  export function asArray(a) {
10
10
  return Array.isArray(a) ? a : a === undefined ? [] : [a];
@@ -42,6 +42,7 @@ export function hasDeleteHint(value, expected) {
42
42
  }
43
43
 
44
44
  if (value === `-${expected}`) {
45
+ // @ts-ignore
45
46
  return expected;
46
47
  }
47
48
  }
@@ -343,10 +344,16 @@ export function sortObjectsByKeys(source, compare) {
343
344
  * @param {any} b
344
345
  */
345
346
  export function compareWithDefinedOrder(a, b, definedOrder) {
347
+ /**
348
+ *
349
+ * @param {any} value
350
+ * @returns {number}
351
+ */
346
352
  function matchingIndex(value) {
347
353
  for (const i in definedOrder) {
348
354
  const o = definedOrder[i];
349
355
  if ((o instanceof RegExp && value.match(o)) || o === value) {
356
+ // @ts-ignore
350
357
  return i;
351
358
  }
352
359
  }
package/src/versions.mjs CHANGED
@@ -112,8 +112,15 @@ export function composeVersion(decomposed) {
112
112
  return joinSlots(decomposed.lower);
113
113
  }
114
114
 
115
+ /**
116
+ *
117
+ * @param {number[]} a
118
+ * @param {number[]} b
119
+ * @returns {number}
120
+ */
115
121
  function cmp(a, b) {
116
122
  for (const i in a) {
123
+ // @ts-ignore
117
124
  if (i >= a.length) {
118
125
  break;
119
126
  }
@@ -140,9 +147,6 @@ export function compareVersion(a, b) {
140
147
  const da = decomposeVersion(a);
141
148
  const db = decomposeVersion(b);
142
149
 
143
- //console.log(a, da);
144
- //console.log(b, db);
145
-
146
150
  const r = cmp(da.lower, db.lower);
147
151
  return r === 0 ? cmp(da.upper, db.upper) : r;
148
152
  }
package/types/util.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- export function nullAction(): void;
1
+ export function nullAction(options: any, hint: any): void;
2
2
  export function asArray(a: any): any[];
3
3
  export function compare(a: any, b: any): 0 | 1 | -1;
4
4
  /**