map-transform 0.4.0-alpha.8 → 0.4.0-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 (106) hide show
  1. package/README.md +186 -40
  2. package/dist/functions/compare.d.ts +2 -1
  3. package/dist/functions/compare.js +26 -5
  4. package/dist/functions/compare.js.map +1 -1
  5. package/dist/functions/explode.js +4 -3
  6. package/dist/functions/explode.js.map +1 -1
  7. package/dist/functions/index.d.ts +4 -0
  8. package/dist/functions/index.js +4 -0
  9. package/dist/functions/index.js.map +1 -1
  10. package/dist/functions/indexFn.d.ts +2 -0
  11. package/dist/functions/indexFn.js +9 -0
  12. package/dist/functions/indexFn.js.map +1 -0
  13. package/dist/functions/joinSplit.d.ts +4 -4
  14. package/dist/functions/joinSplit.js +12 -4
  15. package/dist/functions/joinSplit.js.map +1 -1
  16. package/dist/functions/map.js +5 -4
  17. package/dist/functions/map.js.map +1 -1
  18. package/dist/functions/not.js +1 -1
  19. package/dist/functions/not.js.map +1 -1
  20. package/dist/functions/sort.d.ts +7 -0
  21. package/dist/functions/sort.js +33 -0
  22. package/dist/functions/sort.js.map +1 -0
  23. package/dist/functions/validate.js +2 -2
  24. package/dist/functions/validate.js.map +1 -1
  25. package/dist/functions/value.js +2 -2
  26. package/dist/functions/value.js.map +1 -1
  27. package/dist/index.d.ts +4 -1
  28. package/dist/index.js +8 -2
  29. package/dist/index.js.map +1 -1
  30. package/dist/operations/alt.d.ts +1 -1
  31. package/dist/operations/alt.js +28 -6
  32. package/dist/operations/alt.js.map +1 -1
  33. package/dist/operations/apply.js +10 -5
  34. package/dist/operations/apply.js.map +1 -1
  35. package/dist/operations/concat.js +9 -5
  36. package/dist/operations/concat.js.map +1 -1
  37. package/dist/operations/directionals.js +7 -6
  38. package/dist/operations/directionals.js.map +1 -1
  39. package/dist/operations/filter.js +5 -6
  40. package/dist/operations/filter.js.map +1 -1
  41. package/dist/operations/fixed.js +2 -4
  42. package/dist/operations/fixed.js.map +1 -1
  43. package/dist/operations/getSet.d.ts +3 -3
  44. package/dist/operations/getSet.js +139 -30
  45. package/dist/operations/getSet.js.map +1 -1
  46. package/dist/operations/ifelse.d.ts +1 -1
  47. package/dist/operations/ifelse.js +21 -10
  48. package/dist/operations/ifelse.js.map +1 -1
  49. package/dist/operations/iterate.d.ts +2 -1
  50. package/dist/operations/iterate.js +14 -10
  51. package/dist/operations/iterate.js.map +1 -1
  52. package/dist/operations/logical.d.ts +3 -0
  53. package/dist/operations/logical.js +17 -0
  54. package/dist/operations/logical.js.map +1 -0
  55. package/dist/operations/lookup.js +9 -5
  56. package/dist/operations/lookup.js.map +1 -1
  57. package/dist/operations/merge.js +9 -7
  58. package/dist/operations/merge.js.map +1 -1
  59. package/dist/operations/modify.js +13 -6
  60. package/dist/operations/modify.js.map +1 -1
  61. package/dist/operations/pipe.js +18 -17
  62. package/dist/operations/pipe.js.map +1 -1
  63. package/dist/operations/plug.js +1 -1
  64. package/dist/operations/plug.js.map +1 -1
  65. package/dist/operations/props.d.ts +2 -0
  66. package/dist/operations/props.js +114 -0
  67. package/dist/operations/props.js.map +1 -0
  68. package/dist/operations/root.js +3 -5
  69. package/dist/operations/root.js.map +1 -1
  70. package/dist/operations/transform.js +4 -2
  71. package/dist/operations/transform.js.map +1 -1
  72. package/dist/operations/value.js +2 -4
  73. package/dist/operations/value.js.map +1 -1
  74. package/dist/types.d.ts +39 -12
  75. package/dist/utils/array.d.ts +1 -0
  76. package/dist/utils/array.js +3 -1
  77. package/dist/utils/array.js.map +1 -1
  78. package/dist/utils/definitionHelpers.d.ts +3 -1
  79. package/dist/utils/definitionHelpers.js +72 -17
  80. package/dist/utils/definitionHelpers.js.map +1 -1
  81. package/dist/utils/escape.d.ts +2 -0
  82. package/dist/utils/escape.js +8 -0
  83. package/dist/utils/escape.js.map +1 -0
  84. package/dist/utils/is.d.ts +2 -0
  85. package/dist/utils/is.js +5 -1
  86. package/dist/utils/is.js.map +1 -1
  87. package/dist/utils/pathGetter.js +12 -3
  88. package/dist/utils/pathGetter.js.map +1 -1
  89. package/dist/utils/pathSetter.d.ts +1 -0
  90. package/dist/utils/pathSetter.js +16 -6
  91. package/dist/utils/pathSetter.js.map +1 -1
  92. package/dist/utils/stateHelpers.d.ts +30 -6
  93. package/dist/utils/stateHelpers.js +30 -14
  94. package/dist/utils/stateHelpers.js.map +1 -1
  95. package/dist/utils/xor.d.ts +1 -0
  96. package/dist/utils/xor.js +7 -0
  97. package/dist/utils/xor.js.map +1 -0
  98. package/package.json +6 -6
  99. package/ava-dist.config.cjs +0 -3
  100. package/ava.config.cjs +0 -5
  101. package/dist/functions/join.d.ts +0 -7
  102. package/dist/functions/join.js +0 -12
  103. package/dist/functions/join.js.map +0 -1
  104. package/dist/operations/mutate.d.ts +0 -2
  105. package/dist/operations/mutate.js +0 -80
  106. package/dist/operations/mutate.js.map +0 -1
package/dist/types.d.ts CHANGED
@@ -11,24 +11,22 @@ export interface ValueFunction {
11
11
  export interface Operands {
12
12
  [key: string]: any | ValueFunction;
13
13
  }
14
- export interface Context {
15
- rev: boolean;
16
- onlyMappedValues: boolean;
17
- }
18
14
  export interface DataMapper {
19
- (data: unknown, context: Context): any;
15
+ (data: unknown, state: State): any;
20
16
  }
21
17
  export interface CustomFunction<T = Operands> {
22
18
  (operands: T, options: Options): DataMapper;
23
19
  }
24
20
  export interface State {
25
- root: unknown;
26
- context: unknown;
27
- target?: unknown;
21
+ context: unknown[];
28
22
  value: unknown;
23
+ target?: unknown;
29
24
  rev?: boolean;
25
+ flip?: boolean;
30
26
  onlyMapped?: boolean;
31
27
  arr?: boolean;
28
+ iterate?: boolean;
29
+ index?: number;
32
30
  }
33
31
  export interface Options {
34
32
  functions?: {
@@ -38,7 +36,7 @@ export interface Options {
38
36
  [key: string]: MapDefinition;
39
37
  };
40
38
  dictionaries?: Dictionaries;
41
- mutateNull?: boolean;
39
+ noneValues?: unknown[];
42
40
  fwdAlias?: string;
43
41
  revAlias?: string;
44
42
  }
@@ -51,23 +49,46 @@ export interface FilterObject extends Operands {
51
49
  $filter: string;
52
50
  $direction?: string;
53
51
  }
52
+ export interface IfObject extends Operands {
53
+ $if: MapDefinition;
54
+ $direction?: string;
55
+ }
54
56
  export interface ApplyObject extends Operands {
55
57
  $apply: string;
56
58
  $iterate?: boolean;
57
59
  $direction?: string;
58
60
  }
59
61
  export interface AltObject extends Operands {
60
- $alt: string;
62
+ $alt: MapDefinition[];
63
+ $iterate?: boolean;
64
+ $direction?: string;
65
+ undefined?: unknown[];
66
+ }
67
+ export interface ValueObject extends Operands {
68
+ $value: string;
61
69
  $iterate?: boolean;
62
70
  $direction?: string;
63
71
  }
64
- export declare type OperationObject = TransformObject | FilterObject | ApplyObject | AltObject;
72
+ export interface AndObject extends Operands {
73
+ $and: MapDefinition[];
74
+ }
75
+ export interface OrObject extends Operands {
76
+ $or: MapDefinition[];
77
+ }
78
+ export interface ConcatObject extends Operands {
79
+ $concat: MapDefinition[];
80
+ }
81
+ export interface LookupObject extends Operands {
82
+ $lookup: Path;
83
+ path: Path;
84
+ }
85
+ export declare type OperationObject = TransformObject | FilterObject | IfObject | ApplyObject | AltObject | ValueObject | AndObject | OrObject | ConcatObject | LookupObject;
65
86
  export interface StateMapper {
66
87
  (state: State): State;
67
88
  getTarget?: (state: State) => unknown;
68
89
  }
69
90
  export interface Operation {
70
- (options: Options): StateMapper;
91
+ (options: Options): (next: StateMapper) => StateMapper;
71
92
  }
72
93
  export interface MapFunction {
73
94
  (options: Options): (state: State) => State;
@@ -77,11 +98,17 @@ export declare type MapPipe = (MapObject | Operation | OperationObject | Path |
77
98
  export interface MapObject {
78
99
  [key: string]: MapDefinition | undefined | boolean;
79
100
  $iterate?: boolean;
101
+ $modify?: boolean | Path;
80
102
  $flip?: boolean;
81
103
  $transform?: undefined;
82
104
  $filter?: undefined;
105
+ $if?: undefined;
83
106
  $apply?: undefined;
107
+ $valud?: undefined;
84
108
  $alt?: undefined;
109
+ $and?: undefined;
110
+ $or?: undefined;
111
+ $concat?: undefined;
85
112
  }
86
113
  export declare type MapDefinition = MapObject | Operation | OperationObject | MapPipe | Path | null;
87
114
  export interface MapTransformWithOnlyMappedValues {
@@ -1,2 +1,3 @@
1
1
  export declare const ensureArray: (value: unknown) => any[];
2
2
  export declare const cloneAsArray: (value: unknown) => any[];
3
+ export declare const indexOfIfArray: (arr: unknown, index?: number) => any;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.cloneAsArray = exports.ensureArray = void 0;
3
+ exports.indexOfIfArray = exports.cloneAsArray = exports.ensureArray = void 0;
4
4
  const ensureArray = (value) => Array.isArray(value)
5
5
  ? value
6
6
  : value === undefined || value === null
@@ -9,4 +9,6 @@ const ensureArray = (value) => Array.isArray(value)
9
9
  exports.ensureArray = ensureArray;
10
10
  const cloneAsArray = (value) => (0, exports.ensureArray)(value).slice();
11
11
  exports.cloneAsArray = cloneAsArray;
12
+ const indexOfIfArray = (arr, index) => Array.isArray(arr) && typeof index === 'number' ? arr[index] : arr;
13
+ exports.indexOfIfArray = indexOfIfArray;
12
14
  //# sourceMappingURL=array.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"array.js","sourceRoot":"","sources":["../../src/utils/array.ts"],"names":[],"mappings":";;;AAAO,MAAM,WAAW,GAAG,CAAC,KAAc,EAAE,EAAE,CAC5C,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;IAClB,CAAC,CAAC,KAAK;IACP,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QACvC,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;AALA,QAAA,WAAW,eAKX;AAEN,MAAM,YAAY,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,IAAA,mBAAW,EAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAA;AAA7D,QAAA,YAAY,gBAAiD"}
1
+ {"version":3,"file":"array.js","sourceRoot":"","sources":["../../src/utils/array.ts"],"names":[],"mappings":";;;AAAO,MAAM,WAAW,GAAG,CAAC,KAAc,EAAE,EAAE,CAC5C,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;IAClB,CAAC,CAAC,KAAK;IACP,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QACvC,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;AALA,QAAA,WAAW,eAKX;AAEN,MAAM,YAAY,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,IAAA,mBAAW,EAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAA;AAA7D,QAAA,YAAY,gBAAiD;AAEnE,MAAM,cAAc,GAAG,CAAC,GAAY,EAAE,KAAc,EAAE,EAAE,CAC7D,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;AADvD,QAAA,cAAc,kBACyC"}
@@ -5,4 +5,6 @@ export declare const isPath: (def: unknown) => def is string;
5
5
  export declare const isMapObject: (def: unknown) => def is MapObject;
6
6
  export declare const isMapPipe: (def: unknown) => def is MapPipe;
7
7
  export declare const isOperation: (def: unknown) => def is Operation;
8
- export declare const mapFunctionFromDef: (def?: MapDefinition | undefined) => Operation;
8
+ export declare const isMapDefinition: (def: unknown) => def is MapDefinition;
9
+ export declare const operationsFromDef: (def?: MapDefinition) => Operation[] | Operation;
10
+ export declare function operationFromDef(def?: MapDefinition): Operation;
@@ -1,18 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mapFunctionFromDef = exports.isOperation = exports.isMapPipe = exports.isMapObject = exports.isPath = exports.hasOperationProps = exports.isOperationType = void 0;
3
+ exports.operationFromDef = exports.operationsFromDef = exports.isMapDefinition = exports.isOperation = exports.isMapPipe = exports.isMapObject = exports.isPath = exports.hasOperationProps = exports.isOperationType = void 0;
4
4
  const functional_1 = require("./functional");
5
5
  const is_1 = require("./is");
6
6
  const getSet_1 = require("../operations/getSet");
7
- const mutate_1 = require("../operations/mutate");
7
+ const props_1 = require("../operations/props");
8
8
  const iterate_1 = require("../operations/iterate");
9
- const pipe_1 = require("../operations/pipe");
10
9
  const transform_1 = require("../operations/transform");
11
10
  const filter_1 = require("../operations/filter");
11
+ const ifelse_1 = require("../operations/ifelse");
12
12
  const apply_1 = require("../operations/apply");
13
13
  const alt_1 = require("../operations/alt");
14
14
  const directionals_1 = require("../operations/directionals");
15
- const altOperation = (fn) => (0, alt_1.default)((0, transform_1.default)(fn));
15
+ const logical_1 = require("../operations/logical");
16
+ const concat_1 = require("../operations/concat");
17
+ const lookup_1 = require("../operations/lookup");
18
+ const pipe_1 = require("../operations/pipe");
19
+ const escape_1 = require("./escape");
16
20
  const transformDefFromValue = ({ $value: value, ...def }) => ({
17
21
  ...def,
18
22
  $transform: 'value',
@@ -22,9 +26,14 @@ const isOperationType = (def, prop) => def[prop] !== undefined;
22
26
  exports.isOperationType = isOperationType;
23
27
  const hasOperationProps = (def) => (0, exports.isOperationType)(def, '$transform') ||
24
28
  (0, exports.isOperationType)(def, '$filter') ||
29
+ (0, exports.isOperationType)(def, '$if') ||
25
30
  (0, exports.isOperationType)(def, '$apply') ||
26
31
  (0, exports.isOperationType)(def, '$alt') ||
27
- (0, exports.isOperationType)(def, '$value');
32
+ (0, exports.isOperationType)(def, '$value') ||
33
+ (0, exports.isOperationType)(def, '$and') ||
34
+ (0, exports.isOperationType)(def, '$or') ||
35
+ (0, exports.isOperationType)(def, '$concat') ||
36
+ (0, exports.isOperationType)(def, '$lookup');
28
37
  exports.hasOperationProps = hasOperationProps;
29
38
  const isPath = (def) => typeof def === 'string';
30
39
  exports.isPath = isPath;
@@ -34,33 +43,59 @@ const isMapPipe = (def) => Array.isArray(def);
34
43
  exports.isMapPipe = isMapPipe;
35
44
  const isOperation = (def) => typeof def === 'function';
36
45
  exports.isOperation = isOperation;
46
+ const isMapDefinition = (def) => (0, exports.isPath)(def) || (0, is_1.isObject)(def) || (0, exports.isMapPipe)(def) || (0, exports.isOperation)(def);
47
+ exports.isMapDefinition = isMapDefinition;
37
48
  const iterateIf = (fn, should) => should ? (0, iterate_1.default)(fn) : fn;
38
49
  const wrapFromDefinition = (fn, def) => {
39
50
  const fnIterated = iterateIf(fn, def.$iterate === true);
40
- return (options) => {
51
+ return (options) => (next) => {
41
52
  const dir = def.$direction;
42
53
  if (typeof dir === 'string') {
43
54
  if (dir === 'rev' || dir === options.revAlias) {
44
- return (0, directionals_1.rev)(fnIterated)(options);
55
+ return (0, directionals_1.rev)(fnIterated)(options)(next);
45
56
  }
46
57
  else if (dir === 'fwd' || dir === options.fwdAlias) {
47
- return (0, directionals_1.fwd)(fnIterated)(options);
58
+ return (0, directionals_1.fwd)(fnIterated)(options)(next);
48
59
  }
49
60
  }
50
- return fnIterated(options);
61
+ return Array.isArray(fnIterated)
62
+ ? (0, pipe_1.default)(fnIterated)(options)(next)
63
+ : fnIterated(options)(next);
51
64
  };
52
65
  };
53
- const createOperation = (operationFn, fnProp, def) => (options) => {
66
+ const createOperation = (operationFn, fnProp, def) => (options) => (next) => {
54
67
  const { [fnProp]: fnId, ...operands } = def;
55
68
  const fn = options.functions && options.functions[fnId];
56
69
  return typeof fn === 'function'
57
- ? wrapFromDefinition(operationFn(fn(operands, options)), def)(options)
58
- : functional_1.identity;
70
+ ? wrapFromDefinition(operationFn(fn(operands, options)), def)(options)(next)
71
+ : (state) => next(state);
72
+ };
73
+ const setNoneValuesOnOptions = (options, noneValues) => Array.isArray(noneValues)
74
+ ? { ...options, noneValues: noneValues.map(escape_1.unescapeValue) }
75
+ : options;
76
+ const createAltOperation = (operationFn, def) => (options) => (next) => {
77
+ const { $alt: defs, $undefined: noneValues } = def;
78
+ return Array.isArray(defs)
79
+ ? wrapFromDefinition(operationFn(...defs), def)(setNoneValuesOnOptions(options, noneValues))(next)
80
+ : (state) => next(state);
81
+ };
82
+ const createIfOperation = (def) => (options) => (next) => {
83
+ const { $if: conditionPipeline, then: thenPipeline, else: elsePipeline, } = def;
84
+ return wrapFromDefinition((0, ifelse_1.default)(conditionPipeline, thenPipeline, elsePipeline), def)(options)(next);
59
85
  };
60
86
  const createApplyOperation = (operationFn, def) => {
61
87
  const pipelineId = def.$apply;
62
88
  return wrapFromDefinition(operationFn(pipelineId), def);
63
89
  };
90
+ const createPipelineOperation = (operationFn, fnProp, def) => {
91
+ const pipelines = def[fnProp];
92
+ return operationFn(...pipelines);
93
+ };
94
+ const createLookupOperation = (operationFn, def) => {
95
+ const arrayPath = def.$lookup;
96
+ const propPath = def.path;
97
+ return wrapFromDefinition(operationFn(arrayPath, propPath), def);
98
+ };
64
99
  const operationFromObject = (def) => {
65
100
  if ((0, exports.isOperationType)(def, '$transform')) {
66
101
  return createOperation(transform_1.default, '$transform', def);
@@ -71,18 +106,33 @@ const operationFromObject = (def) => {
71
106
  else if ((0, exports.isOperationType)(def, '$filter')) {
72
107
  return createOperation(filter_1.default, '$filter', def);
73
108
  }
109
+ else if ((0, exports.isOperationType)(def, '$if')) {
110
+ return createIfOperation(def);
111
+ }
74
112
  else if ((0, exports.isOperationType)(def, '$apply')) {
75
113
  return createApplyOperation(apply_1.default, def);
76
114
  }
77
115
  else if ((0, exports.isOperationType)(def, '$alt')) {
78
- return createOperation(altOperation, '$alt', def);
116
+ return createAltOperation(alt_1.default, def);
117
+ }
118
+ else if ((0, exports.isOperationType)(def, '$and')) {
119
+ return createPipelineOperation(logical_1.and, '$and', def);
120
+ }
121
+ else if ((0, exports.isOperationType)(def, '$or')) {
122
+ return createPipelineOperation(logical_1.or, '$or', def);
123
+ }
124
+ else if ((0, exports.isOperationType)(def, '$concat')) {
125
+ return createPipelineOperation(concat_1.default, '$concat', def);
126
+ }
127
+ else if ((0, exports.isOperationType)(def, '$lookup')) {
128
+ return createLookupOperation(lookup_1.default, def);
79
129
  }
80
130
  else {
81
- return (0, mutate_1.default)(def);
131
+ return (0, props_1.default)(def);
82
132
  }
83
133
  };
84
- const mapFunctionFromDef = (def) => (0, exports.isMapPipe)(def)
85
- ? (0, pipe_1.default)(def)
134
+ const operationsFromDef = (def) => Array.isArray(def)
135
+ ? def.flatMap(exports.operationsFromDef)
86
136
  : (0, is_1.isObject)(def)
87
137
  ? operationFromObject(def)
88
138
  : (0, exports.isPath)(def)
@@ -90,5 +140,10 @@ const mapFunctionFromDef = (def) => (0, exports.isMapPipe)(def)
90
140
  : (0, exports.isOperation)(def)
91
141
  ? def
92
142
  : (_options) => functional_1.identity;
93
- exports.mapFunctionFromDef = mapFunctionFromDef;
143
+ exports.operationsFromDef = operationsFromDef;
144
+ function operationFromDef(def) {
145
+ const operations = (0, exports.operationsFromDef)(def);
146
+ return Array.isArray(operations) ? (0, pipe_1.default)(operations) : operations;
147
+ }
148
+ exports.operationFromDef = operationFromDef;
94
149
  //# sourceMappingURL=definitionHelpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"definitionHelpers.js","sourceRoot":"","sources":["../../src/utils/definitionHelpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"definitionHelpers.js","sourceRoot":"","sources":["../../src/utils/definitionHelpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const escapeValue: (value: unknown) => unknown;
2
+ export declare const unescapeValue: (value: unknown) => unknown;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.unescapeValue = exports.escapeValue = void 0;
4
+ const escapeValue = (value) => value === undefined ? '**undefined**' : value;
5
+ exports.escapeValue = escapeValue;
6
+ const unescapeValue = (value) => value === '**undefined**' ? undefined : value;
7
+ exports.unescapeValue = unescapeValue;
8
+ //# sourceMappingURL=escape.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escape.js","sourceRoot":"","sources":["../../src/utils/escape.ts"],"names":[],"mappings":";;;AAAO,MAAM,WAAW,GAAG,CAAC,KAAc,EAAE,EAAE,CAC5C,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAA;AADlC,QAAA,WAAW,eACuB;AAExC,MAAM,aAAa,GAAG,CAAC,KAAc,EAAE,EAAE,CAC9C,KAAK,KAAK,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAA;AADlC,QAAA,aAAa,iBACqB"}
@@ -1 +1,3 @@
1
1
  export declare const isObject: (value: unknown) => value is Record<string, unknown>;
2
+ export declare const isPath: (value: unknown) => value is string;
3
+ export declare const isArrayPath: (value: unknown) => value is string;
package/dist/utils/is.js CHANGED
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isObject = void 0;
3
+ exports.isArrayPath = exports.isPath = exports.isObject = void 0;
4
4
  const isObject = (value) => Object.prototype.toString.call(value) === '[object Object]';
5
5
  exports.isObject = isObject;
6
+ const isPath = (value) => typeof value === 'string';
7
+ exports.isPath = isPath;
8
+ const isArrayPath = (value) => (0, exports.isPath)(value) && value.endsWith('[]');
9
+ exports.isArrayPath = isArrayPath;
6
10
  //# sourceMappingURL=is.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"is.js","sourceRoot":"","sources":["../../src/utils/is.ts"],"names":[],"mappings":";;;AAAO,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE,CAC3E,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,iBAAiB,CAAA;AADhD,QAAA,QAAQ,YACwC"}
1
+ {"version":3,"file":"is.js","sourceRoot":"","sources":["../../src/utils/is.ts"],"names":[],"mappings":";;;AAEO,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE,CAC3E,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,iBAAiB,CAAA;AADhD,QAAA,QAAQ,YACwC;AAEtD,MAAM,MAAM,GAAG,CAAC,KAAc,EAAiB,EAAE,CACtD,OAAO,KAAK,KAAK,QAAQ,CAAA;AADd,QAAA,MAAM,UACQ;AAEpB,MAAM,WAAW,GAAG,CAAC,KAAc,EAAiB,EAAE,CAC3D,IAAA,cAAM,EAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;AAD1B,QAAA,WAAW,eACe"}
@@ -4,11 +4,11 @@ const definitionHelpers_1 = require("./definitionHelpers");
4
4
  const is_1 = require("./is");
5
5
  const array_1 = require("./array");
6
6
  const functional_1 = require("./functional");
7
+ const pathSetter_1 = require("./pathSetter");
7
8
  const numberOrString = (val) => {
8
9
  const num = Number.parseInt(val, 10);
9
10
  return Number.isNaN(num) ? val : num;
10
11
  };
11
- const split = (str) => str.split(/\[|]?\.|]/).filter((str) => str !== '');
12
12
  const getProp = (prop) => (object) => (0, is_1.isObject)(object) ? object[prop] : undefined;
13
13
  const getArrayIndex = (index) => (arr) => Array.isArray(arr) ? arr[index] : undefined;
14
14
  const getObjectOrArray = (fn) => (object) => Array.isArray(object) ? object.flatMap(fn) : fn(object);
@@ -18,11 +18,20 @@ function createGetter(part) {
18
18
  ? getArrayIndex(prop)
19
19
  : getObjectOrArray(getProp(prop));
20
20
  }
21
+ const removeBrackets = (value) => value[0] === '[' && value[value.length - 1] === ']'
22
+ ? value.slice(1, value.length - 1)
23
+ : value;
21
24
  function pathGetter(path) {
22
25
  if ((0, definitionHelpers_1.isPath)(path)) {
23
- const getters = split(path).map(createGetter);
26
+ const parts = [...(0, pathSetter_1.pathSplitter)(path)];
27
+ const getters = parts
28
+ .map(removeBrackets)
29
+ .filter((str) => str !== '')
30
+ .map(createGetter);
24
31
  const fn = getters.length === 0 ? functional_1.identity : (0, functional_1.pipe)(...getters);
25
- return path.includes('[]') ? (value) => (0, array_1.ensureArray)(fn(value)) : fn;
32
+ return parts.some((part) => part === '[]')
33
+ ? (value) => (0, array_1.ensureArray)(fn(value))
34
+ : fn;
26
35
  }
27
36
  return functional_1.identity;
28
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pathGetter.js","sourceRoot":"","sources":["../../src/utils/pathGetter.ts"],"names":[],"mappings":";;AAEA,2DAA4C;AAC5C,6BAA+B;AAC/B,mCAAqC;AACrC,6CAA6C;AAM7C,MAAM,cAAc,GAAG,CAAC,GAAW,EAAmB,EAAE;IACtD,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IACpC,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;AACtC,CAAC,CAAA;AAED,MAAM,KAAK,GAAG,CAAC,GAAS,EAAY,EAAE,CACpC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,CAAA;AAEpD,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,MAAe,EAAE,EAAE,CACpD,IAAA,aAAQ,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAE7C,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,GAAY,EAAE,EAAE,CACxD,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAE7C,MAAM,gBAAgB,GACpB,CAAC,EAAgC,EAAE,EAAE,CAAC,CAAC,MAAe,EAAE,EAAE,CACxD,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;AAE3D,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;IACjC,OAAO,OAAO,IAAI,KAAK,QAAQ;QAC7B,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC;QACrB,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;AACrC,CAAC;AAQD,SAAwB,UAAU,CAAC,IAAiB;IAClD,IAAI,IAAA,0BAAM,EAAC,IAAI,CAAC,EAAE;QAChB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QAC7C,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,qBAAQ,CAAC,CAAC,CAAC,IAAA,iBAAI,EAAC,GAAG,OAAO,CAAC,CAAA;QAE7D,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,mBAAW,EAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;KACpE;IACD,OAAO,qBAAQ,CAAA;AACjB,CAAC;AARD,6BAQC"}
1
+ {"version":3,"file":"pathGetter.js","sourceRoot":"","sources":["../../src/utils/pathGetter.ts"],"names":[],"mappings":";;AAEA,2DAA4C;AAC5C,6BAA+B;AAC/B,mCAAqC;AACrC,6CAA6C;AAC7C,6CAA2C;AAM3C,MAAM,cAAc,GAAG,CAAC,GAAW,EAAmB,EAAE;IACtD,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IACpC,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;AACtC,CAAC,CAAA;AAED,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,MAAe,EAAE,EAAE,CACpD,IAAA,aAAQ,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAE7C,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,GAAY,EAAE,EAAE,CACxD,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAE7C,MAAM,gBAAgB,GACpB,CAAC,EAAgC,EAAE,EAAE,CAAC,CAAC,MAAe,EAAE,EAAE,CACxD,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;AAE3D,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;IACjC,OAAO,OAAO,IAAI,KAAK,QAAQ;QAC7B,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC;QACrB,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;AACrC,CAAC;AAED,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,EAAE,CACvC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG;IACjD,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAClC,CAAC,CAAC,KAAK,CAAA;AAQX,SAAwB,UAAU,CAAC,IAAiB;IAClD,IAAI,IAAA,0BAAM,EAAC,IAAI,CAAC,EAAE;QAChB,MAAM,KAAK,GAAG,CAAC,GAAG,IAAA,yBAAY,EAAC,IAAI,CAAC,CAAC,CAAA;QACrC,MAAM,OAAO,GAAG,KAAK;aAClB,GAAG,CAAC,cAAc,CAAC;aACnB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC;aAC3B,GAAG,CAAC,YAAY,CAAC,CAAA;QACpB,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,qBAAQ,CAAC,CAAC,CAAC,IAAA,iBAAI,EAAC,GAAG,OAAO,CAAC,CAAA;QAE7D,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC;YACxC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,mBAAW,EAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YACnC,CAAC,CAAC,EAAE,CAAA;KACP;IACD,OAAO,qBAAQ,CAAA;AACjB,CAAC;AAdD,6BAcC"}
@@ -2,4 +2,5 @@ import { Path } from '../types';
2
2
  export interface Setter {
3
3
  (value: unknown, target: unknown): unknown;
4
4
  }
5
+ export declare const pathSplitter: (path: Path, markAfterOpen?: boolean) => Generator<string, void, unknown>;
5
6
  export default function pathSetter(path: Path): Setter;
@@ -1,21 +1,31 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pathSplitter = void 0;
3
4
  const functional_1 = require("./functional");
4
5
  const is_1 = require("./is");
5
6
  const array_1 = require("./array");
6
- const preparePathPart = (part, isAfterOpenArray) => isAfterOpenArray ? `]${part}` : part;
7
- const pathSplitter = function* (path) {
8
- const regEx = /([^[\].]+|\[\w*])/g;
7
+ const removeEscaping = (value) => value.replace('\\[', '[');
8
+ const preparePathPart = (part, isAfterOpenArray) => removeEscaping(isAfterOpenArray ? `]${part}` : part);
9
+ const pathSplitter = function* (path, markAfterOpen = false) {
10
+ const regEx = /[^[\].]+|\[\w*]/g;
9
11
  let match;
10
12
  let isAfterOpenArray = false;
13
+ let prev = '';
11
14
  do {
12
15
  match = regEx.exec(path);
13
16
  if (match) {
14
- yield preparePathPart(match[0], isAfterOpenArray);
15
- isAfterOpenArray = match[0] === '[]';
17
+ if (match[0].endsWith('\\')) {
18
+ prev = match[0];
19
+ }
20
+ else {
21
+ yield preparePathPart(prev + match[0], markAfterOpen && isAfterOpenArray);
22
+ prev = '';
23
+ isAfterOpenArray = match[0] === '[]';
24
+ }
16
25
  }
17
26
  } while (match !== null);
18
27
  };
28
+ exports.pathSplitter = pathSplitter;
19
29
  const createObjectSetter = (prop, next) => function setOnObject(value, target) {
20
30
  const obj = (0, is_1.isObject)(target) ? target : {};
21
31
  return {
@@ -55,7 +65,7 @@ function createSetter(prop, next) {
55
65
  }
56
66
  }
57
67
  function pathSetter(path) {
58
- return [...pathSplitter(path)].reduceRight((next, part) => createSetter(part, next), functional_1.identity);
68
+ return [...(0, exports.pathSplitter)(path, true)].reduceRight((next, part) => createSetter(part, next), functional_1.identity);
59
69
  }
60
70
  exports.default = pathSetter;
61
71
  //# sourceMappingURL=pathSetter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pathSetter.js","sourceRoot":"","sources":["../../src/utils/pathSetter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pathSetter.js","sourceRoot":"","sources":["../../src/utils/pathSetter.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,32 @@
1
- import { State, Options, Context } from '../types';
2
- export declare const setStateValue: (state: State, value: unknown) => State;
1
+ import { State } from '../types';
2
+ export declare const setStateValue: (state: State, value: unknown, shouldPushContext?: boolean) => State;
3
3
  export declare const getStateValue: (state: State) => any;
4
- export declare const setValueFromState: (state: State, { value }: State) => State;
5
- export declare const setTargetOnState: (state: State, target?: unknown) => State;
6
- export declare const contextFromState: ({ rev, onlyMapped, }: State) => Context;
4
+ export declare const setValueFromState: (state: State, { value, context }: State, shouldSetContext?: boolean) => State;
5
+ export declare const getRootFromState: (state: State) => unknown;
6
+ export declare const getTargetFromState: (state: State) => unknown;
7
+ export declare function setTargetOnState(state: State, target: unknown): State;
8
+ export declare const getLastContext: (state: State) => unknown;
9
+ export declare const pushContext: (state: State, nextContext: unknown) => {
10
+ context: unknown[];
11
+ value: unknown;
12
+ target?: unknown;
13
+ rev?: boolean | undefined;
14
+ flip?: boolean | undefined;
15
+ onlyMapped?: boolean | undefined;
16
+ arr?: boolean | undefined;
17
+ iterate?: boolean | undefined;
18
+ index?: number | undefined;
19
+ };
20
+ export declare const removeLastContext: (state: State) => {
21
+ context: unknown[];
22
+ value: unknown;
23
+ target?: unknown;
24
+ rev?: boolean | undefined;
25
+ flip?: boolean | undefined;
26
+ onlyMapped?: boolean | undefined;
27
+ arr?: boolean | undefined;
28
+ iterate?: boolean | undefined;
29
+ index?: number | undefined;
30
+ };
7
31
  export declare const populateState: ({ rev, onlyMapped }: Partial<State>) => (data: unknown) => State;
8
- export declare const shouldSkipMutation: ({ mutateNull }: Options) => (state: State) => boolean;
32
+ export declare const isNoneValueState: (state: State, noneValues?: unknown[]) => boolean;
@@ -1,36 +1,52 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.shouldSkipMutation = exports.populateState = exports.contextFromState = exports.setTargetOnState = exports.setValueFromState = exports.getStateValue = exports.setStateValue = void 0;
4
- const setStateValue = (state, value) => ({
3
+ exports.isNoneValueState = exports.populateState = exports.removeLastContext = exports.pushContext = exports.getLastContext = exports.setTargetOnState = exports.getTargetFromState = exports.getRootFromState = exports.setValueFromState = exports.getStateValue = exports.setStateValue = void 0;
4
+ const setStateValue = (state, value, shouldPushContext = false) => ({
5
5
  ...state,
6
+ context: shouldPushContext && state.value !== undefined
7
+ ? [...state.context, state.value]
8
+ : state.context,
6
9
  value,
7
10
  });
8
11
  exports.setStateValue = setStateValue;
9
12
  const getStateValue = (state) => state.value;
10
13
  exports.getStateValue = getStateValue;
11
- const setValueFromState = (state, { value }) => ({
14
+ const setValueFromState = (state, { value, context }, shouldSetContext = false) => ({
12
15
  ...state,
13
16
  value,
17
+ context: shouldSetContext ? context : state.context,
14
18
  });
15
19
  exports.setValueFromState = setValueFromState;
16
- const setTargetOnState = (state, target) => ({
20
+ const getRootFromState = (state) => state.context.length === 0 ? state.value : state.context[0];
21
+ exports.getRootFromState = getRootFromState;
22
+ const getTargetFromState = (state) => state.target;
23
+ exports.getTargetFromState = getTargetFromState;
24
+ function setTargetOnState(state, target) {
25
+ return {
26
+ ...state,
27
+ target,
28
+ };
29
+ }
30
+ exports.setTargetOnState = setTargetOnState;
31
+ const getLastContext = (state) => state.context[state.context.length - 1];
32
+ exports.getLastContext = getLastContext;
33
+ const pushContext = (state, nextContext) => ({
17
34
  ...state,
18
- target,
35
+ context: [...state.context, nextContext],
19
36
  });
20
- exports.setTargetOnState = setTargetOnState;
21
- const contextFromState = ({ rev = false, onlyMapped = false, }) => ({
22
- rev,
23
- onlyMappedValues: onlyMapped,
37
+ exports.pushContext = pushContext;
38
+ const removeLastContext = (state) => ({
39
+ ...state,
40
+ context: state.context.slice(0, -1),
24
41
  });
25
- exports.contextFromState = contextFromState;
42
+ exports.removeLastContext = removeLastContext;
26
43
  const populateState = ({ rev = false, onlyMapped = false }) => (data) => ({
27
- root: data,
28
- context: data,
44
+ context: [],
29
45
  value: data,
30
46
  rev,
31
47
  onlyMapped,
32
48
  });
33
49
  exports.populateState = populateState;
34
- const shouldSkipMutation = ({ mutateNull = true }) => (state) => state.value === undefined || (!mutateNull && state.value === null);
35
- exports.shouldSkipMutation = shouldSkipMutation;
50
+ const isNoneValueState = (state, noneValues = [undefined]) => noneValues.includes(state.value);
51
+ exports.isNoneValueState = isNoneValueState;
36
52
  //# sourceMappingURL=stateHelpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stateHelpers.js","sourceRoot":"","sources":["../../src/utils/stateHelpers.ts"],"names":[],"mappings":";;;AAGO,MAAM,aAAa,GAAG,CAAC,KAAY,EAAE,KAAc,EAAS,EAAE,CAAC,CAAC;IACrE,GAAG,KAAK;IACR,KAAK;CACN,CAAC,CAAA;AAHW,QAAA,aAAa,iBAGxB;AACK,MAAM,aAAa,GAAG,CAAC,KAAY,EAAO,EAAE,CAAC,KAAK,CAAC,KAAK,CAAA;AAAlD,QAAA,aAAa,iBAAqC;AAExD,MAAM,iBAAiB,GAAG,CAAC,KAAY,EAAE,EAAE,KAAK,EAAS,EAAS,EAAE,CAAC,CAAC;IAC3E,GAAG,KAAK;IACR,KAAK;CACN,CAAC,CAAA;AAHW,QAAA,iBAAiB,qBAG5B;AAEK,MAAM,gBAAgB,GAAG,CAAC,KAAY,EAAE,MAAgB,EAAS,EAAE,CAAC,CAAC;IAC1E,GAAG,KAAK;IACR,MAAM;CACP,CAAC,CAAA;AAHW,QAAA,gBAAgB,oBAG3B;AAEK,MAAM,gBAAgB,GAAG,CAAC,EAC/B,GAAG,GAAG,KAAK,EACX,UAAU,GAAG,KAAK,GACZ,EAAW,EAAE,CAAC,CAAC;IACrB,GAAG;IACH,gBAAgB,EAAE,UAAU;CAC7B,CAAC,CAAA;AANW,QAAA,gBAAgB,oBAM3B;AAEK,MAAM,aAAa,GACxB,CAAC,EAAE,GAAG,GAAG,KAAK,EAAE,UAAU,GAAG,KAAK,EAAkB,EAAE,EAAE,CACxD,CAAC,IAAa,EAAS,EAAE,CAAC,CAAC;IACzB,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,IAAI;IACX,GAAG;IACH,UAAU;CACX,CAAC,CAAA;AARS,QAAA,aAAa,iBAQtB;AAEG,MAAM,kBAAkB,GAC7B,CAAC,EAAE,UAAU,GAAG,IAAI,EAAW,EAAE,EAAE,CACnC,CAAC,KAAY,EAAW,EAAE,CACxB,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,CAAA;AAHzD,QAAA,kBAAkB,sBAGuC"}
1
+ {"version":3,"file":"stateHelpers.js","sourceRoot":"","sources":["../../src/utils/stateHelpers.ts"],"names":[],"mappings":";;;AAGO,MAAM,aAAa,GAAG,CAC3B,KAAY,EACZ,KAAc,EACd,iBAAiB,GAAG,KAAK,EAClB,EAAE,CAAC,CAAC;IACX,GAAG,KAAK;IACR,OAAO,EACL,iBAAiB,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;QAC5C,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC;QACjC,CAAC,CAAC,KAAK,CAAC,OAAO;IACnB,KAAK;CACN,CAAC,CAAA;AAXW,QAAA,aAAa,iBAWxB;AACK,MAAM,aAAa,GAAG,CAAC,KAAY,EAAO,EAAE,CAAC,KAAK,CAAC,KAAK,CAAA;AAAlD,QAAA,aAAa,iBAAqC;AAExD,MAAM,iBAAiB,GAAG,CAC/B,KAAY,EACZ,EAAE,KAAK,EAAE,OAAO,EAAS,EACzB,gBAAgB,GAAG,KAAK,EACjB,EAAE,CAAC,CAAC;IACX,GAAG,KAAK;IACR,KAAK;IACL,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO;CACpD,CAAC,CAAA;AARW,QAAA,iBAAiB,qBAQ5B;AAEK,MAAM,gBAAgB,GAAG,CAAC,KAAY,EAAE,EAAE,CAC/C,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AADhD,QAAA,gBAAgB,oBACgC;AAEtD,MAAM,kBAAkB,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAA;AAAnD,QAAA,kBAAkB,sBAAiC;AAEhE,SAAgB,gBAAgB,CAAC,KAAY,EAAE,MAAe;IAC5D,OAAO;QACL,GAAG,KAAK;QACR,MAAM;KACP,CAAA;AACH,CAAC;AALD,4CAKC;AAEM,MAAM,cAAc,GAAG,CAAC,KAAY,EAAE,EAAE,CAC7C,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;AAD5B,QAAA,cAAc,kBACc;AAElC,MAAM,WAAW,GAAG,CAAC,KAAY,EAAE,WAAoB,EAAE,EAAE,CAAC,CAAC;IAClE,GAAG,KAAK;IACR,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC;CACzC,CAAC,CAAA;AAHW,QAAA,WAAW,eAGtB;AAEK,MAAM,iBAAiB,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,CAAC;IAClD,GAAG,KAAK;IACR,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACpC,CAAC,CAAA;AAHW,QAAA,iBAAiB,qBAG5B;AAEK,MAAM,aAAa,GACxB,CAAC,EAAE,GAAG,GAAG,KAAK,EAAE,UAAU,GAAG,KAAK,EAAkB,EAAE,EAAE,CACxD,CAAC,IAAa,EAAS,EAAE,CAAC,CAAC;IACzB,OAAO,EAAE,EAAE;IACX,KAAK,EAAE,IAAI;IACX,GAAG;IACH,UAAU;CACX,CAAC,CAAA;AAPS,QAAA,aAAa,iBAOtB;AAEG,MAAM,gBAAgB,GAAG,CAC9B,KAAY,EACZ,aAAwB,CAAC,SAAS,CAAC,EACnC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;AAHxB,QAAA,gBAAgB,oBAGQ"}
@@ -0,0 +1 @@
1
+ export default function xor(a?: boolean, b?: boolean): boolean;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function xor(a = false, b = false) {
4
+ return a ? !b : b;
5
+ }
6
+ exports.default = xor;
7
+ //# sourceMappingURL=xor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xor.js","sourceRoot":"","sources":["../../src/utils/xor.ts"],"names":[],"mappings":";;AAAA,SAAwB,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK;IAC9C,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC;AAFD,sBAEC"}