map-transform 1.0.5 → 1.0.7

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,3 +1,4 @@
1
- import type { Path, Operation } from '../types.js';
1
+ import type { Path, Operation, State } from '../types.js';
2
+ export declare function pathGetter(path?: string | null): (value: unknown, state: State) => unknown;
2
3
  export declare const get: (path: Path) => Operation[];
3
4
  export declare const set: (path: Path) => Operation[];
@@ -193,6 +193,40 @@ function pathToNextOperations(path, isSet = false) {
193
193
  }
194
194
  return operations;
195
195
  }
196
+ const getByPart = (part, isArr) => (value) => {
197
+ if (typeof part === 'string') {
198
+ if (isObject(value)) {
199
+ const nextvalue = value[part];
200
+ return isArr ? ensureArray(nextvalue) : nextvalue;
201
+ }
202
+ }
203
+ else if (typeof part === 'number' && Array.isArray(value)) {
204
+ return value[calculateIndex(part, value)];
205
+ }
206
+ return isArr ? [] : undefined;
207
+ };
208
+ export function pathGetter(path) {
209
+ if (!path || path === '.') {
210
+ return (value) => value;
211
+ }
212
+ const parts = path.split('.').flatMap(splitUpArrayAndParentNotation);
213
+ return function getFromPath(value, startState) {
214
+ let data = value;
215
+ let state = startState;
216
+ for (const rawPart of parts) {
217
+ const [part, isArr] = preparePath(rawPart);
218
+ if (typeof part === 'string' && part[0] === '^') {
219
+ state = part[1] === '^' ? getRoot(state) : getParent(state);
220
+ data = state.value;
221
+ }
222
+ else {
223
+ const getFn = getByPart(part, isArr);
224
+ data = typeof part === 'number' ? getFn(data) : flatMapAny(getFn)(data);
225
+ }
226
+ }
227
+ return data;
228
+ };
229
+ }
196
230
  export const get = (path) => pathToNextOperations(path, false);
197
231
  export const set = (path) => pathToNextOperations(path, true);
198
232
  //# sourceMappingURL=getSet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getSet.js","sourceRoot":"","sources":["../../src/operations/getSet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getSet.js","sourceRoot":"","sources":["../../src/operations/getSet.ts"],"names":[],"mappings":"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"}
@@ -1,25 +1,24 @@
1
1
  import mapAny from 'map-any/async.js';
2
- import { getProperty } from 'dot-prop';
2
+ import { pathGetter } from '../operations/getSet.js';
3
3
  import { getStateValue, setStateValue, goForward, revFromState, } from '../utils/stateHelpers.js';
4
4
  import { defToOperation } from '../utils/definitionHelpers.js';
5
5
  import { noopNext } from '../utils/stateHelpers.js';
6
6
  const FLATTEN_DEPTH = 1;
7
7
  const flattenIfArray = (data) => Array.isArray(data) ? data.flat(FLATTEN_DEPTH) : data;
8
- const findAllMatches = (value, arr, getProp) => arr.filter((val) => getProp(val) === value);
9
- const findOneMatch = (value, arr, getProp) => arr.find((val) => getProp(val) === value);
8
+ const findAllMatches = (value, state, arr, getProp) => arr.filter((val) => getProp(val, state) === value);
9
+ const findOneMatch = (value, state, arr, getProp) => arr.find((val) => getProp(val, state) === value);
10
10
  const matchInArray = (getArray, match, getProp) => (state) => {
11
11
  const getFn = getArray({})(noopNext);
12
12
  return async (value) => {
13
13
  const { value: arr } = await getFn(goForward(state));
14
- return Array.isArray(arr) ? match(value, arr, getProp) : undefined;
14
+ return Array.isArray(arr) ? match(value, state, arr, getProp) : undefined;
15
15
  };
16
16
  };
17
- const createGetter = (propPath) => (obj) => getProperty(obj, propPath);
18
17
  export function lookup({ arrayPath, propPath, matchSeveral = false, flip = false, }) {
19
18
  return (options) => {
20
- const getter = createGetter(propPath);
19
+ const getter = pathGetter(propPath);
21
20
  const matchFn = matchInArray(defToOperation(arrayPath, options), matchSeveral ? findAllMatches : findOneMatch, getter);
22
- const extractProp = () => async (value) => getter(value);
21
+ const extractProp = (state) => async (value) => getter(value, state);
23
22
  return (next) => async function doLookup(state) {
24
23
  const nextState = await next(state);
25
24
  const value = getStateValue(nextState);
@@ -1 +1 @@
1
- {"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/operations/lookup.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,kBAAkB,CAAA;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAEtC,OAAO,EACL,aAAa,EACb,aAAa,EACb,SAAS,EACT,YAAY,GACb,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAiBnD,MAAM,aAAa,GAAG,CAAC,CAAA;AAEvB,MAAM,cAAc,GAAG,CAAC,IAAa,EAAE,EAAE,CACvC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAKvD,MAAM,cAAc,GAAG,CAAC,KAAc,EAAE,GAAc,EAAE,OAAkB,EAAE,EAAE,CAC5E,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAA;AAI7C,MAAM,YAAY,GAAG,CAAC,KAAc,EAAE,GAAc,EAAE,OAAkB,EAAE,EAAE,CAC1E,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAA;AAI3C,MAAM,YAAY,GAChB,CAAC,QAAmB,EAAE,KAAc,EAAE,OAAkB,EAAE,EAAE,CAC5D,CAAC,KAAY,EAAE,EAAE;IACf,MAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAA;IACpC,OAAO,KAAK,EAAE,KAAc,EAAE,EAAE;QAC9B,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;QACpD,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACpE,CAAC,CAAA;AACH,CAAC,CAAA;AAEH,MAAM,YAAY,GAAG,CAAC,QAAc,EAAE,EAAE,CAAC,CAAC,GAAY,EAAE,EAAE,CACxD,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;AAiB5B,MAAM,UAAU,MAAM,CAAC,EACrB,SAAS,EACT,QAAQ,EACR,YAAY,GAAG,KAAK,EACpB,IAAI,GAAG,KAAK,GACN;IACN,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;QACrC,MAAM,OAAO,GAAG,YAAY,CAC1B,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,EAClC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,YAAY,EAC5C,MAAM,CACP,CAAA;QACD,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,KAAK,EAAE,KAAc,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAEjE,OAAO,CAAC,IAAI,EAAE,EAAE,CACd,KAAK,UAAU,QAAQ,CAAC,KAAK;YAC3B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,CAAA;YACnC,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;YACtC,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;YACrC,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAA;YAC3C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAA;YACvD,OAAO,aAAa,CAAC,SAAS,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,CAAA;QAC1D,CAAC,CAAA;IACL,CAAC,CAAA;AACH,CAAC;AAID,MAAM,UAAU,QAAQ,CAAC,KAAY;IACnC,OAAO,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;AAChD,CAAC"}
1
+ {"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/operations/lookup.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import type { TransformerProps, Path, AsyncTransformer } from '../types.js';
1
+ import type { TransformerProps, Transformer, AsyncTransformer, Path, TransformDefinition } from '../types.js';
2
2
  export interface Props extends TransformerProps {
3
- path?: Path;
3
+ path?: Path | TransformDefinition;
4
4
  operator?: string;
5
5
  match?: unknown;
6
6
  matchPath?: Path;
@@ -8,5 +8,5 @@ export interface Props extends TransformerProps {
8
8
  valuePath?: Path;
9
9
  not?: boolean;
10
10
  }
11
- declare const transformer: AsyncTransformer<Props>;
11
+ declare const transformer: Transformer<Props> | AsyncTransformer<Props>;
12
12
  export default transformer;
@@ -1,7 +1,9 @@
1
1
  import mapAny from 'map-any';
2
- import { unescapeValue } from '../utils/escape.js';
2
+ import { pathGetter } from '../operations/getSet.js';
3
3
  import { defToDataMapper } from '../utils/definitionHelpers.js';
4
4
  import { goForward } from '../utils/stateHelpers.js';
5
+ import xor from '../utils/xor.js';
6
+ import { unescapeValue } from '../utils/escape.js';
5
7
  const not = (comparer) => (value, match) => !comparer(value, match);
6
8
  const compareArrayOrValue = (comparer) => (value, match) => Array.isArray(value)
7
9
  ? value.some((value) => comparer(value, match))
@@ -48,19 +50,27 @@ const transformer = function compare({ path = '.', operator = '=', match, value,
48
50
  match = match === undefined ? value : match;
49
51
  matchPath = matchPath ?? valuePath;
50
52
  return (options) => {
51
- const getValue = defToDataMapper(path, options);
52
53
  const realMatchValue = mapAny(unescapeValue, match);
53
- const getMatch = typeof matchPath === 'string'
54
- ? defToDataMapper(matchPath, options)
55
- : async () => realMatchValue;
56
54
  const comparer = createComparer(operator);
57
- return async (data, state) => {
58
- const fwdState = goForward(state);
59
- const value = await getValue(data, fwdState);
60
- const match = await getMatch(data, fwdState);
61
- const result = comparer(value, match);
62
- return not ? !result : result;
63
- };
55
+ const getMatch = typeof matchPath === 'string'
56
+ ? pathGetter(matchPath)
57
+ : () => realMatchValue;
58
+ if (typeof path === 'string' || !path) {
59
+ const getValue = pathGetter(path);
60
+ return (data, state) => {
61
+ const value = getValue(data, state);
62
+ const match = getMatch(data, state);
63
+ return xor(comparer(value, match), not);
64
+ };
65
+ }
66
+ else {
67
+ const getValue = defToDataMapper(path, options);
68
+ return async (data, state) => {
69
+ const value = await getValue(data, goForward(state));
70
+ const match = getMatch(data, state);
71
+ return xor(comparer(value, match), not);
72
+ };
73
+ }
64
74
  };
65
75
  };
66
76
  export default transformer;
@@ -1 +1 @@
1
- {"version":3,"file":"compare.js","sourceRoot":"","sources":["../../src/transformers/compare.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compare.js","sourceRoot":"","sources":["../../src/transformers/compare.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import type { TransformerProps, AsyncTransformer } from '../types.js';
1
+ import type { TransformerProps, Transformer } from '../types.js';
2
2
  export interface Props extends TransformerProps {
3
3
  path?: string;
4
4
  }
5
- declare const transformer: AsyncTransformer<Props | string>;
5
+ declare const transformer: Transformer<Props | string>;
6
6
  export default transformer;
@@ -1,10 +1,10 @@
1
- import { defToDataMapper } from '../utils/definitionHelpers.js';
1
+ import { pathGetter } from '../operations/getSet.js';
2
2
  const extractPath = (path) => typeof path === 'string' ? path : path.path;
3
3
  const transformer = function get(props) {
4
- return (options) => {
4
+ return () => {
5
5
  const path = extractPath(props) || '.';
6
- const mapper = defToDataMapper(path, options);
7
- return async (data, state) => await mapper(data, state);
6
+ const mapper = pathGetter(path);
7
+ return (data, state) => mapper(data, state);
8
8
  };
9
9
  };
10
10
  export default transformer;
@@ -1 +1 @@
1
- {"version":3,"file":"get.js","sourceRoot":"","sources":["../../src/transformers/get.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAM/D,MAAM,WAAW,GAAG,CAAC,IAAoB,EAAE,EAAE,CAC3C,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;AAE7C,MAAM,WAAW,GAAqC,SAAS,GAAG,CAAC,KAAK;IACtE,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,GAAG,CAAA;QACtC,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAC7C,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACzD,CAAC,CAAA;AACH,CAAC,CAAA;AAED,eAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../src/transformers/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAOpD,MAAM,WAAW,GAAG,CAAC,IAAoB,EAAE,EAAE,CAC3C,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;AAE7C,MAAM,WAAW,GAAgC,SAAS,GAAG,CAAC,KAAK;IACjE,OAAO,GAAG,EAAE;QACV,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,GAAG,CAAA;QACtC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;QAC/B,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAC7C,CAAC,CAAA;AACH,CAAC,CAAA;AAED,eAAe,WAAW,CAAA"}
@@ -1,9 +1,9 @@
1
1
  declare const _default: {
2
- compare: import("../types.js").AsyncTransformer<import("./compare.js").Props>;
2
+ compare: import("../types.js").Transformer<import("./compare.js").Props> | import("../types.js").AsyncTransformer<import("./compare.js").Props>;
3
3
  explode: import("../types.js").Transformer<import("../types.js").TransformerProps>;
4
4
  fixed: import("../types.js").Transformer<unknown>;
5
5
  flatten: import("../types.js").Transformer<import("./flatten.js").Props>;
6
- get: import("../types.js").AsyncTransformer<string | import("./get.js").Props>;
6
+ get: import("../types.js").Transformer<string | import("./get.js").Props>;
7
7
  implode: import("../types.js").Transformer<import("../types.js").TransformerProps>;
8
8
  index: import("../types.js").Transformer<import("../types.js").TransformerProps>;
9
9
  logical: import("../types.js").AsyncTransformer<import("./logical.js").Props>;
@@ -11,7 +11,7 @@ declare const _default: {
11
11
  merge: import("../types.js").AsyncTransformer<import("./merge.js").Props>;
12
12
  mergeRev: import("../types.js").AsyncTransformer<import("./merge.js").Props>;
13
13
  not: import("../types.js").AsyncTransformer<import("../types.js").AsyncDataMapperWithOptions | import("../types.js").DataMapperWithOptions | import("./not.js").Props>;
14
- sort: import("../types.js").AsyncTransformer<import("./sort.js").Props>;
14
+ sort: import("../types.js").Transformer<import("./sort.js").Props>;
15
15
  value: import("../types.js").Transformer<unknown>;
16
16
  };
17
17
  export default _default;
@@ -1,7 +1,7 @@
1
- import type { Path, TransformerProps, AsyncTransformer } from '../types.js';
1
+ import type { Path, TransformerProps, Transformer } from '../types.js';
2
2
  export interface Props extends TransformerProps {
3
3
  asc?: boolean;
4
4
  path?: Path;
5
5
  }
6
- declare const transformer: AsyncTransformer<Props>;
6
+ declare const transformer: Transformer<Props>;
7
7
  export default transformer;
@@ -1,5 +1,4 @@
1
- import { defToDataMapper } from '../utils/definitionHelpers.js';
2
- import { goForward } from '../utils/stateHelpers.js';
1
+ import { pathGetter } from '../operations/getSet.js';
3
2
  const compareNumbers = (a, b, direction) => (a - b) * direction;
4
3
  const compareStrings = (a, b, direction) => a === b ? 0 : a > b ? direction : -1 * direction;
5
4
  const compare = (direction) => function compare([a], [b]) {
@@ -17,23 +16,21 @@ const compare = (direction) => function compare([a], [b]) {
17
16
  }
18
17
  };
19
18
  function fetchSortValue(getFn, state) {
20
- return async function fetchSortValue(item) {
21
- const sortBy = await getFn(item, state);
19
+ return function fetchSortValue(item) {
20
+ const sortBy = getFn(item, state);
22
21
  return [sortBy, item];
23
22
  };
24
23
  }
25
24
  const transformer = function sort(props) {
26
- return (options) => {
27
- const direction = props?.asc === false ? -1 : 1;
28
- const getFn = props?.path
29
- ? defToDataMapper(props.path, options)
30
- : async (value) => value;
31
- return async (data, state) => {
25
+ return () => {
26
+ const { path, asc } = props || {};
27
+ const direction = asc === false ? -1 : 1;
28
+ const getFn = path ? pathGetter(path) : (value) => value;
29
+ return (data, state) => {
32
30
  if (!Array.isArray(data) || data.length < 2) {
33
31
  return data;
34
32
  }
35
- const fwdState = goForward(state);
36
- const sortArray = await Promise.all(data.map(fetchSortValue(getFn, fwdState)));
33
+ const sortArray = data.map(fetchSortValue(getFn, state));
37
34
  return sortArray.sort(compare(direction)).map(([_, item]) => item);
38
35
  };
39
36
  };
@@ -1 +1 @@
1
- {"version":3,"file":"sort.js","sourceRoot":"","sources":["../../src/transformers/sort.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sort.js","sourceRoot":"","sources":["../../src/transformers/sort.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAgBpD,MAAM,cAAc,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,SAAiB,EAAE,EAAE,CACjE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAA;AAErB,MAAM,cAAc,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,SAAiB,EAAE,EAAE,CACjE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;AAElD,MAAM,OAAO,GAAG,CAAC,SAAiB,EAAE,EAAE,CACpC,SAAS,OAAO,CAAC,CAAC,CAAC,CAAY,EAAE,CAAC,CAAC,CAAY;IAC7C,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;QAClD,OAAO,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;KACvC;SAAM,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE;QACjD,OAAO,cAAc,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAA;KAC3D;SAAM,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,EAAE;QACzE,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAC9C;SAAM;QACL,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;KACvD;AACH,CAAC,CAAA;AAEH,SAAS,cAAc,CAAC,KAA0B,EAAE,KAAY;IAC9D,OAAO,SAAS,cAAc,CAAC,IAAa;QAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QACjC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACvB,CAAC,CAAA;AACH,CAAC;AAED,MAAM,WAAW,GAAuB,SAAS,IAAI,CAAC,KAAK;IACzD,OAAO,GAAG,EAAE;QACV,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,KAAK,IAAI,EAAE,CAAA;QACjC,MAAM,SAAS,GAAG,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAc,EAAE,EAAE,CAAC,KAAK,CAAA;QAEjE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACrB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBAE3C,OAAO,IAAI,CAAA;aACZ;YAGD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;YAExD,OAAO,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAA;QACpE,CAAC,CAAA;IACH,CAAC,CAAA;AACH,CAAC,CAAA;AAED,eAAe,WAAW,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "map-transform",
3
- "version": "1.0.5",
3
+ "version": "1.0.7",
4
4
  "description": "Map and transform objects with mapping definitions",
5
5
  "author": "Kjell-Morten Bratsberg Thorsen <kjellmorten@integreat.io>",
6
6
  "license": "ISC",
@@ -50,7 +50,6 @@
50
50
  "dependencies": {
51
51
  "ajv": "^8.12.0",
52
52
  "deepmerge": "^4.3.1",
53
- "dot-prop": "^8.0.2",
54
53
  "map-any": "^1.0.0"
55
54
  },
56
55
  "devDependencies": {