@jbrowse/mobx-state-tree 5.6.0 → 5.6.2

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 (96) hide show
  1. package/README.md +18 -0
  2. package/dist/core/action.d.ts +1 -1
  3. package/dist/core/action.js +228 -0
  4. package/dist/core/action.js.map +1 -1
  5. package/dist/core/actionContext.js +42 -0
  6. package/dist/core/actionContext.js.map +1 -1
  7. package/dist/core/flow.d.ts +1 -1
  8. package/dist/core/flow.js +180 -0
  9. package/dist/core/flow.js.map +1 -1
  10. package/dist/core/json-patch.js +133 -0
  11. package/dist/core/json-patch.js.map +1 -1
  12. package/dist/core/mst-operations.js +885 -0
  13. package/dist/core/mst-operations.js.map +1 -1
  14. package/dist/core/node/BaseNode.js +152 -0
  15. package/dist/core/node/BaseNode.js.map +1 -1
  16. package/dist/core/node/Hook.js +15 -0
  17. package/dist/core/node/Hook.js.map +1 -1
  18. package/dist/core/node/create-node.js +41 -0
  19. package/dist/core/node/create-node.js.map +1 -1
  20. package/dist/core/node/identifier-cache.js +115 -0
  21. package/dist/core/node/identifier-cache.js.map +1 -1
  22. package/dist/core/node/livelinessChecking.js +38 -0
  23. package/dist/core/node/livelinessChecking.js.map +1 -1
  24. package/dist/core/node/node-utils.js +165 -0
  25. package/dist/core/node/node-utils.js.map +1 -1
  26. package/dist/core/node/object-node.js +545 -0
  27. package/dist/core/node/object-node.js.map +1 -1
  28. package/dist/core/node/scalar-node.js +89 -0
  29. package/dist/core/node/scalar-node.js.map +1 -1
  30. package/dist/core/process.d.ts +1 -1
  31. package/dist/core/process.js +39 -0
  32. package/dist/core/process.js.map +1 -1
  33. package/dist/core/type/type-checker.js +154 -0
  34. package/dist/core/type/type-checker.js.map +1 -1
  35. package/dist/core/type/type.d.ts +1 -1
  36. package/dist/core/type/type.js +251 -0
  37. package/dist/core/type/type.js.map +1 -1
  38. package/dist/index.js +85 -0
  39. package/dist/index.js.map +1 -1
  40. package/dist/internal.js +60 -0
  41. package/dist/internal.js.map +1 -1
  42. package/dist/middlewares/create-action-tracking-middleware.js +81 -0
  43. package/dist/middlewares/create-action-tracking-middleware.js.map +1 -1
  44. package/dist/middlewares/createActionTrackingMiddleware2.js +133 -0
  45. package/dist/middlewares/createActionTrackingMiddleware2.js.map +1 -1
  46. package/dist/middlewares/on-action.js +215 -0
  47. package/dist/middlewares/on-action.js.map +1 -1
  48. package/dist/mobx-state-tree.js +83 -6867
  49. package/dist/mobx-state-tree.module.js +83 -6789
  50. package/dist/types/complex-types/array.d.ts +1 -1
  51. package/dist/types/complex-types/array.js +352 -0
  52. package/dist/types/complex-types/array.js.map +1 -1
  53. package/dist/types/complex-types/map.d.ts +1 -1
  54. package/dist/types/complex-types/map.js +361 -0
  55. package/dist/types/complex-types/map.js.map +1 -1
  56. package/dist/types/complex-types/model.js +477 -0
  57. package/dist/types/complex-types/model.js.map +1 -1
  58. package/dist/types/index.js +38 -0
  59. package/dist/types/index.js.map +1 -1
  60. package/dist/types/primitives.js +182 -0
  61. package/dist/types/primitives.js.map +1 -1
  62. package/dist/types/utility-types/custom.js +110 -0
  63. package/dist/types/utility-types/custom.js.map +1 -1
  64. package/dist/types/utility-types/enumeration.js +34 -0
  65. package/dist/types/utility-types/enumeration.js.map +1 -1
  66. package/dist/types/utility-types/frozen.js +97 -0
  67. package/dist/types/utility-types/frozen.js.map +1 -1
  68. package/dist/types/utility-types/identifier.js +129 -0
  69. package/dist/types/utility-types/identifier.js.map +1 -1
  70. package/dist/types/utility-types/late.js +109 -0
  71. package/dist/types/utility-types/late.js.map +1 -1
  72. package/dist/types/utility-types/lazy.js +76 -0
  73. package/dist/types/utility-types/lazy.js.map +1 -1
  74. package/dist/types/utility-types/literal.js +63 -0
  75. package/dist/types/utility-types/literal.js.map +1 -1
  76. package/dist/types/utility-types/maybe.js +30 -0
  77. package/dist/types/utility-types/maybe.js.map +1 -1
  78. package/dist/types/utility-types/optional.js +140 -0
  79. package/dist/types/utility-types/optional.js.map +1 -1
  80. package/dist/types/utility-types/reference.d.ts +2 -2
  81. package/dist/types/utility-types/reference.js +392 -0
  82. package/dist/types/utility-types/reference.js.map +1 -1
  83. package/dist/types/utility-types/refinement.js +85 -0
  84. package/dist/types/utility-types/refinement.js.map +1 -1
  85. package/dist/types/utility-types/resilient.js +120 -0
  86. package/dist/types/utility-types/resilient.js.map +1 -1
  87. package/dist/types/utility-types/snapshotProcessor.js +161 -0
  88. package/dist/types/utility-types/snapshotProcessor.js.map +1 -1
  89. package/dist/types/utility-types/union.d.ts +1 -0
  90. package/dist/types/utility-types/union.js +245 -0
  91. package/dist/types/utility-types/union.js.map +1 -1
  92. package/dist/utils.js +483 -0
  93. package/dist/utils.js.map +1 -1
  94. package/package.json +25 -24
  95. package/changelog.md +0 -677
  96. package/dist/mobx-state-tree.umd.js +0 -6873
@@ -1 +1 @@
1
- {"version":3,"file":"resilient.js","sourceRoot":"","sources":["../../../src/types/utility-types/resilient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resilient.js","sourceRoot":"","sources":["../../../src/types/utility-types/resilient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.snapshotProcessor = snapshotProcessor;
4
+ const internal_ts_1 = require("../../internal.js");
5
+ /** @hidden */
6
+ const $preProcessorFailed = Symbol("$preProcessorFailed");
7
+ class SnapshotProcessor extends internal_ts_1.BaseType {
8
+ _subtype;
9
+ _processors;
10
+ get flags() {
11
+ return this._subtype.flags | internal_ts_1.TypeFlags.SnapshotProcessor;
12
+ }
13
+ constructor(_subtype, _processors, name) {
14
+ super(name || _subtype.name);
15
+ this._subtype = _subtype;
16
+ this._processors = _processors;
17
+ }
18
+ describe() {
19
+ return `snapshotProcessor(${this._subtype.describe()})`;
20
+ }
21
+ preProcessSnapshot(sn) {
22
+ if (this._processors.preProcessor) {
23
+ return this._processors.preProcessor.call(null, sn);
24
+ }
25
+ return sn;
26
+ }
27
+ preProcessSnapshotSafe(sn) {
28
+ try {
29
+ return this.preProcessSnapshot(sn);
30
+ }
31
+ catch (_e) {
32
+ return $preProcessorFailed;
33
+ }
34
+ }
35
+ postProcessSnapshot(sn, node) {
36
+ if (this._processors.postProcessor) {
37
+ return this._processors.postProcessor.call(null, sn, node.storedValue);
38
+ }
39
+ return sn;
40
+ }
41
+ _fixNode(node) {
42
+ // the node has to use these methods rather than the original type ones
43
+ proxyNodeTypeMethods(node.type, this, "create");
44
+ if (node instanceof internal_ts_1.ObjectNode) {
45
+ node.hasSnapshotPostProcessor = !!this._processors.postProcessor;
46
+ }
47
+ const oldGetSnapshot = node.getSnapshot;
48
+ node.getSnapshot = () => this.postProcessSnapshot(oldGetSnapshot.call(node), node);
49
+ if (!(0, internal_ts_1.isUnionType)(this._subtype)) {
50
+ node.getReconciliationType = () => {
51
+ return this;
52
+ };
53
+ }
54
+ }
55
+ instantiate(parent, subpath, environment, initialValue) {
56
+ const processedInitialValue = (0, internal_ts_1.isStateTreeNode)(initialValue)
57
+ ? initialValue
58
+ : this.preProcessSnapshot(initialValue);
59
+ const node = this._subtype.instantiate(parent, subpath, environment, processedInitialValue);
60
+ this._fixNode(node);
61
+ return node;
62
+ }
63
+ reconcile(current, newValue, parent, subpath) {
64
+ const node = this._subtype.reconcile(current, (0, internal_ts_1.isStateTreeNode)(newValue) ? newValue : this.preProcessSnapshot(newValue), parent, subpath);
65
+ if (node !== current) {
66
+ this._fixNode(node);
67
+ }
68
+ return node;
69
+ }
70
+ getSnapshot(node, applyPostProcess = true) {
71
+ const sn = this._subtype.getSnapshot(node);
72
+ return applyPostProcess ? this.postProcessSnapshot(sn, node) : sn;
73
+ }
74
+ isValidSnapshot(value, context) {
75
+ const processedSn = this.preProcessSnapshotSafe(value);
76
+ if (processedSn === $preProcessorFailed) {
77
+ return (0, internal_ts_1.typeCheckFailure)(context, value, "Failed to preprocess value");
78
+ }
79
+ return this._subtype.validate(processedSn, context);
80
+ }
81
+ getSubTypes() {
82
+ return this._subtype;
83
+ }
84
+ is(thing) {
85
+ const value = (0, internal_ts_1.isType)(thing)
86
+ ? this._subtype
87
+ : (0, internal_ts_1.isStateTreeNode)(thing)
88
+ ? (0, internal_ts_1.getSnapshot)(thing, false)
89
+ : this.preProcessSnapshotSafe(thing);
90
+ if (value === $preProcessorFailed) {
91
+ return false;
92
+ }
93
+ return (this._subtype.validate(value, [{ path: "", type: this._subtype }])
94
+ .length === 0);
95
+ }
96
+ isAssignableFrom(type) {
97
+ return this._subtype.isAssignableFrom(type);
98
+ }
99
+ isMatchingSnapshotId(current, snapshot) {
100
+ if (!(this._subtype instanceof internal_ts_1.ComplexType)) {
101
+ return false;
102
+ }
103
+ const processedSn = this.preProcessSnapshot(snapshot);
104
+ return this._subtype.isMatchingSnapshotId(current, processedSn);
105
+ }
106
+ }
107
+ function proxyNodeTypeMethods(nodeType, snapshotProcessorType, ...methods) {
108
+ for (const method of methods) {
109
+ nodeType[method] = snapshotProcessorType[method].bind(snapshotProcessorType);
110
+ }
111
+ }
112
+ /**
113
+ * `types.snapshotProcessor` - Runs a pre/post snapshot processor before/after serializing a given type.
114
+ *
115
+ * Example:
116
+ * ```ts
117
+ * const Todo1 = types.model({ text: types.string })
118
+ * // in the backend the text type must be null when empty
119
+ * interface BackendTodo {
120
+ * text: string | null
121
+ * }
122
+ *
123
+ * const Todo2 = types.snapshotProcessor(Todo1, {
124
+ * // from snapshot to instance
125
+ * preProcessor(snapshot: BackendTodo) {
126
+ * return {
127
+ * text: sn.text || "";
128
+ * }
129
+ * },
130
+ *
131
+ * // from instance to snapshot
132
+ * postProcessor(snapshot, node): BackendTodo {
133
+ * return {
134
+ * text: !sn.text ? null : sn.text
135
+ * }
136
+ * }
137
+ * })
138
+ * ```
139
+ *
140
+ * @param type Type to run the processors over.
141
+ * @param processors Processors to run.
142
+ * @param name Type name, or undefined to inherit the inner type one.
143
+ * @returns
144
+ */
145
+ function snapshotProcessor(type, processors, name) {
146
+ (0, internal_ts_1.assertIsType)(type, 1);
147
+ if ((0, internal_ts_1.devMode)()) {
148
+ if (processors.postProcessor &&
149
+ typeof processors.postProcessor !== "function") {
150
+ // istanbul ignore next
151
+ throw (0, internal_ts_1.fail)("postSnapshotProcessor must be a function");
152
+ }
153
+ if (processors.preProcessor &&
154
+ typeof processors.preProcessor !== "function") {
155
+ // istanbul ignore next
156
+ throw (0, internal_ts_1.fail)("preSnapshotProcessor must be a function");
157
+ }
158
+ }
159
+ return new SnapshotProcessor(type, processors, name);
160
+ }
161
+ //# sourceMappingURL=snapshotProcessor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"snapshotProcessor.js","sourceRoot":"","sources":["../../../src/types/utility-types/snapshotProcessor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"snapshotProcessor.js","sourceRoot":"","sources":["../../../src/types/utility-types/snapshotProcessor.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,7 @@ export declare class Union extends BaseType<any, any, any> {
18
18
  describe(): string;
19
19
  instantiate(parent: AnyObjectNode | null, subpath: string, environment: any, initialValue: this["C"] | this["T"]): this["N"];
20
20
  reconcile(current: this["N"], newValue: this["C"] | this["T"], parent: AnyObjectNode, subpath: string): this["N"];
21
+ private noMatchMessage;
21
22
  determineType(value: this["C"] | this["T"], reconcileCurrentType: IAnyType | undefined): IAnyType | undefined;
22
23
  private tryQuickMatch;
23
24
  private tryMatchPrimitive;
@@ -0,0 +1,245 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Union = void 0;
4
+ exports.union = union;
5
+ exports.isUnionType = isUnionType;
6
+ const internal_ts_1 = require("../../internal.js");
7
+ /**
8
+ * @internal
9
+ * @hidden
10
+ */
11
+ class Union extends internal_ts_1.BaseType {
12
+ _types;
13
+ _dispatcher;
14
+ _eager = true;
15
+ get flags() {
16
+ let result = internal_ts_1.TypeFlags.Union;
17
+ this._types.forEach(type => {
18
+ result |= type.flags;
19
+ });
20
+ return result;
21
+ }
22
+ constructor(name, _types, options) {
23
+ super(name);
24
+ this._types = _types;
25
+ options = {
26
+ eager: true,
27
+ dispatcher: undefined,
28
+ ...options
29
+ };
30
+ this._dispatcher = options.dispatcher;
31
+ if (!options.eager) {
32
+ this._eager = false;
33
+ }
34
+ }
35
+ isAssignableFrom(type) {
36
+ return this._types.some(subType => subType.isAssignableFrom(type));
37
+ }
38
+ describe() {
39
+ return ("(" + this._types.map(factory => factory.describe()).join(" | ") + ")");
40
+ }
41
+ instantiate(parent, subpath, environment, initialValue) {
42
+ const type = this.determineType(initialValue, undefined);
43
+ if (!type) {
44
+ throw (0, internal_ts_1.fail)(this.noMatchMessage(initialValue));
45
+ } // can happen in prod builds
46
+ return type.instantiate(parent, subpath, environment, initialValue);
47
+ }
48
+ reconcile(current, newValue, parent, subpath) {
49
+ const type = this.determineType(newValue, current.getReconciliationType());
50
+ if (!type) {
51
+ throw (0, internal_ts_1.fail)(this.noMatchMessage(newValue));
52
+ } // can happen in prod builds
53
+ return type.reconcile(current, newValue, parent, subpath);
54
+ }
55
+ noMatchMessage(value) {
56
+ const discriminator = (0, internal_ts_1.isPlainObject)(value) && typeof value.type === "string"
57
+ ? ` for snapshot with type "${value.type}"`
58
+ : "";
59
+ return `No matching type for union ${this.name}${discriminator}`;
60
+ }
61
+ determineType(value, reconcileCurrentType) {
62
+ // try the dispatcher, if defined
63
+ if (this._dispatcher) {
64
+ return this._dispatcher(value);
65
+ }
66
+ // fast path: when type checking is disabled, try quick structural matching first
67
+ if (!(0, internal_ts_1.isTypeCheckingEnabled)()) {
68
+ const quickMatch = this.tryQuickMatch(value, reconcileCurrentType);
69
+ if (quickMatch) {
70
+ return quickMatch;
71
+ }
72
+ // for plain object snapshots that didn't match via quick path, try all types
73
+ // with quick matching before falling back to full validation
74
+ // (state tree nodes must go through full validation for type identity checks)
75
+ if ((0, internal_ts_1.isPlainObject)(value) && !(0, internal_ts_1.isStateTreeNode)(value)) {
76
+ for (const type of this._types) {
77
+ if (this.snapshotLooksLikeType(value, type)) {
78
+ return type;
79
+ }
80
+ }
81
+ }
82
+ }
83
+ // find the most accomodating type
84
+ // if we are using reconciliation try the current node type first (fix for #1045)
85
+ if (reconcileCurrentType) {
86
+ if (reconcileCurrentType.is(value)) {
87
+ return reconcileCurrentType;
88
+ }
89
+ return this._types
90
+ .filter(t => t !== reconcileCurrentType)
91
+ .find(type => type.is(value));
92
+ }
93
+ else {
94
+ return this._types.find(type => type.is(value));
95
+ }
96
+ }
97
+ tryQuickMatch(value, reconcileCurrentType) {
98
+ // state tree nodes need full type compatibility checking
99
+ // (e.g., A.is(B.create()) must return false even if snapshots are compatible)
100
+ if ((0, internal_ts_1.isStateTreeNode)(value)) {
101
+ return undefined;
102
+ }
103
+ // for non-object values, try primitive matching
104
+ if (!(0, internal_ts_1.isPlainObject)(value)) {
105
+ return this.tryMatchPrimitive(value);
106
+ }
107
+ // for objects, try structural matching against model types
108
+ const typesToCheck = reconcileCurrentType
109
+ ? [
110
+ reconcileCurrentType,
111
+ ...this._types.filter(t => t !== reconcileCurrentType)
112
+ ]
113
+ : this._types;
114
+ for (const type of typesToCheck) {
115
+ if (this.snapshotLooksLikeType(value, type)) {
116
+ return type;
117
+ }
118
+ }
119
+ return undefined;
120
+ }
121
+ tryMatchPrimitive(value) {
122
+ const valueType = typeof value;
123
+ for (const type of this._types) {
124
+ const flags = type.flags;
125
+ if ((valueType === "string" && flags & internal_ts_1.TypeFlags.String) ||
126
+ (valueType === "number" &&
127
+ flags &
128
+ (internal_ts_1.TypeFlags.Number |
129
+ internal_ts_1.TypeFlags.Integer |
130
+ internal_ts_1.TypeFlags.Float |
131
+ internal_ts_1.TypeFlags.Finite)) ||
132
+ (valueType === "boolean" && flags & internal_ts_1.TypeFlags.Boolean) ||
133
+ (value === null && flags & internal_ts_1.TypeFlags.Null) ||
134
+ (value === undefined && flags & internal_ts_1.TypeFlags.Undefined)) {
135
+ return type;
136
+ }
137
+ // for literals, check exact value match
138
+ if (flags & internal_ts_1.TypeFlags.Literal) {
139
+ if (type.is(value)) {
140
+ return type;
141
+ }
142
+ }
143
+ }
144
+ return undefined;
145
+ }
146
+ snapshotLooksLikeType(value, type) {
147
+ // for model types, check if snapshot has all the required property keys
148
+ // and that any literal-typed properties match exactly
149
+ if (type instanceof internal_ts_1.ModelType) {
150
+ const props = type.properties;
151
+ // use cached propertyNames from ModelType instead of Object.keys()
152
+ for (const key of type.propertyNames) {
153
+ const propType = props[key];
154
+ const isOptional = propType.flags & internal_ts_1.TypeFlags.Optional;
155
+ const propValue = value[key];
156
+ // check required properties exist and are not undefined
157
+ // (unless the type accepts undefined, which Optional types do)
158
+ if (!isOptional) {
159
+ if (!(key in value) || propValue === undefined) {
160
+ return false;
161
+ }
162
+ }
163
+ // for literal types, verify the value matches exactly
164
+ // this is critical for discriminated unions
165
+ if (propType.flags & internal_ts_1.TypeFlags.Literal) {
166
+ if (!propType.is(propValue)) {
167
+ return false;
168
+ }
169
+ }
170
+ }
171
+ return true;
172
+ }
173
+ return false;
174
+ }
175
+ isValidSnapshot(value, context) {
176
+ if (this._dispatcher) {
177
+ return this._dispatcher(value).validate(value, context);
178
+ }
179
+ // for plain-object snapshots, prefer union members whose literal-typed
180
+ // discriminator properties match the value (e.g. {type: "MsaView"})
181
+ // so error output is scoped to the intended branch instead of every member
182
+ const candidates = (0, internal_ts_1.isPlainObject)(value) && !(0, internal_ts_1.isStateTreeNode)(value)
183
+ ? this._types.filter(t => this.snapshotLooksLikeType(value, t))
184
+ : [];
185
+ const typesToValidate = candidates.length > 0 ? candidates : this._types;
186
+ const allErrors = [];
187
+ let applicableTypes = 0;
188
+ for (const type of typesToValidate) {
189
+ const errors = type.validate(value, context);
190
+ if (errors.length === 0) {
191
+ if (this._eager) {
192
+ return (0, internal_ts_1.typeCheckSuccess)();
193
+ }
194
+ else {
195
+ applicableTypes++;
196
+ }
197
+ }
198
+ else {
199
+ allErrors.push(errors);
200
+ }
201
+ }
202
+ if (applicableTypes === 1) {
203
+ return (0, internal_ts_1.typeCheckSuccess)();
204
+ }
205
+ return (0, internal_ts_1.typeCheckFailure)(context, value, "No type is applicable for the union").concat((0, internal_ts_1.flattenTypeErrors)(allErrors));
206
+ }
207
+ getSubTypes() {
208
+ return this._types;
209
+ }
210
+ }
211
+ exports.Union = Union;
212
+ /**
213
+ * `types.union` - Create a union of multiple types. If the correct type cannot be inferred unambiguously from a snapshot, provide a dispatcher function of the form `(snapshot) => Type`.
214
+ *
215
+ * @param optionsOrType
216
+ * @param otherTypes
217
+ * @returns
218
+ */
219
+ function union(optionsOrType, ...otherTypes) {
220
+ const options = (0, internal_ts_1.isType)(optionsOrType) ? undefined : optionsOrType;
221
+ const types = (0, internal_ts_1.isType)(optionsOrType)
222
+ ? [optionsOrType, ...otherTypes]
223
+ : otherTypes;
224
+ const name = "(" + types.map(type => type.name).join(" | ") + ")";
225
+ // check all options
226
+ if ((0, internal_ts_1.devMode)()) {
227
+ if (options) {
228
+ (0, internal_ts_1.assertArg)(options, o => (0, internal_ts_1.isPlainObject)(o), "object { eager?: boolean, dispatcher?: Function }", 1);
229
+ }
230
+ types.forEach((type, i) => {
231
+ (0, internal_ts_1.assertIsType)(type, options ? i + 2 : i + 1);
232
+ });
233
+ }
234
+ return new Union(name, types, options);
235
+ }
236
+ /**
237
+ * Returns if a given value represents a union type.
238
+ *
239
+ * @param type
240
+ * @returns
241
+ */
242
+ function isUnionType(type) {
243
+ return (type.flags & internal_ts_1.TypeFlags.Union) > 0;
244
+ }
245
+ //# sourceMappingURL=union.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"union.js","sourceRoot":"","sources":["../../../src/types/utility-types/union.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"union.js","sourceRoot":"","sources":["../../../src/types/utility-types/union.ts"],"names":[],"mappings":"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"}