nhb-toolbox 2.9.2 → 2.9.3
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/dist/array/basics.js +2 -2
- package/dist/form/convert.d.ts.map +1 -1
- package/dist/form/convert.js +38 -16
- package/dist/form/guards.d.ts +12 -0
- package/dist/form/guards.d.ts.map +1 -1
- package/dist/form/guards.js +18 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/object/types.d.ts +5 -5
- package/dist/object/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/array/basics.js
CHANGED
|
@@ -45,8 +45,8 @@ export const isInvalidOrEmptyArray = (value) => {
|
|
|
45
45
|
return true;
|
|
46
46
|
if (value.length === 0)
|
|
47
47
|
return true;
|
|
48
|
-
return value.every((item) => item == null ||
|
|
49
|
-
(Array.isArray(item) && item.length === 0) ||
|
|
48
|
+
return value.every((item) => item == null ||
|
|
49
|
+
(Array.isArray(item) && item.length === 0) ||
|
|
50
50
|
(typeof item === 'object' && Object.keys(item || {}).length === 0));
|
|
51
51
|
};
|
|
52
52
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../src/form/convert.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../src/form/convert.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAEX,aAAa,EAEb,MAAM,iBAAiB,CAAC;AAQzB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,GAAI,CAAC,SAAS,aAAa,QACzD,CAAC,YACG,eAAe,CAAC,CAAC,CAAC,KAC1B,QAkQF,CAAC"}
|
package/dist/form/convert.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
/// <reference lib="dom" />
|
|
1
2
|
import { isEmptyObject, isNotEmptyObject, isValidArray, } from '../guards/non-primitives';
|
|
2
3
|
import { isNonEmptyString } from '../guards/primitives';
|
|
3
|
-
import { isCustomFile, isCustomFileArray, isFileUpload } from './guards';
|
|
4
|
+
import { isCustomFile, isCustomFileArray, isFileArray, isFileList, isFileUpload, } from './guards';
|
|
4
5
|
/**
|
|
5
6
|
* * Utility to convert object into FormData in a controlled way.
|
|
6
7
|
*
|
|
@@ -68,7 +69,7 @@ export const createControlledFormData = (data, configs) => {
|
|
|
68
69
|
const isNotNullish = value != null && value !== '';
|
|
69
70
|
// * Keep value if:
|
|
70
71
|
// * 1. It's required OR
|
|
71
|
-
// * 2. It's not null/undefined AND not empty string/object
|
|
72
|
+
// * 2. It's not null/undefined AND not empty string/object/array
|
|
72
73
|
const shouldKeep = isRequiredKey(fullKey) ||
|
|
73
74
|
isNotNullish ||
|
|
74
75
|
isNonEmptyString(value) ||
|
|
@@ -79,25 +80,25 @@ export const createControlledFormData = (data, configs) => {
|
|
|
79
80
|
// * Recursively clean nested objects
|
|
80
81
|
const cleaned = _cleanObject(value, fullKey);
|
|
81
82
|
if (isRequiredKey(fullKey) || isNotEmptyObject(cleaned)) {
|
|
82
|
-
acc[
|
|
83
|
+
acc[transformedKey] = cleaned;
|
|
83
84
|
}
|
|
84
85
|
}
|
|
85
86
|
else {
|
|
86
87
|
if (typeof value === 'string') {
|
|
87
|
-
acc[
|
|
88
|
+
acc[transformedKey] = value.toLowerCase();
|
|
88
89
|
}
|
|
89
90
|
else if (Array.isArray(value)) {
|
|
90
91
|
if (isRequiredKey(fullKey) || isValidArray(value)) {
|
|
91
|
-
acc[
|
|
92
|
+
acc[transformedKey] = value;
|
|
92
93
|
}
|
|
93
94
|
}
|
|
94
95
|
else if (isEmptyObject(value)) {
|
|
95
96
|
if (isRequiredKey(fullKey)) {
|
|
96
|
-
acc[
|
|
97
|
+
acc[transformedKey] = value;
|
|
97
98
|
}
|
|
98
99
|
}
|
|
99
100
|
else {
|
|
100
|
-
acc[
|
|
101
|
+
acc[transformedKey] = value;
|
|
101
102
|
}
|
|
102
103
|
}
|
|
103
104
|
}
|
|
@@ -126,13 +127,25 @@ export const createControlledFormData = (data, configs) => {
|
|
|
126
127
|
else if (value instanceof Blob || value instanceof File) {
|
|
127
128
|
formData.append(transformedKey, value);
|
|
128
129
|
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
130
|
+
else if (isFileList(value)) {
|
|
131
|
+
for (let i = 0; i < value.length; i++) {
|
|
132
|
+
formData.append(transformedKey, value.item(i));
|
|
133
|
+
}
|
|
134
|
+
}
|
|
134
135
|
else if (Array.isArray(value)) {
|
|
135
|
-
if (
|
|
136
|
+
if (isFileArray(value)) {
|
|
137
|
+
if (shouldBreakArray(key)) {
|
|
138
|
+
value.forEach((item, index) => {
|
|
139
|
+
_addToFormData(`${transformedKey}[${index}]`, item);
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
value.forEach((item) => {
|
|
144
|
+
formData.append(transformedKey, item);
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
else if (isValidArray(value)) {
|
|
136
149
|
if (shouldBreakArray(key)) {
|
|
137
150
|
value.forEach((item, index) => {
|
|
138
151
|
_addToFormData(`${transformedKey}[${index}]`, item);
|
|
@@ -166,9 +179,6 @@ export const createControlledFormData = (data, configs) => {
|
|
|
166
179
|
if (typeof value === 'string' && shouldLowercaseValue(key)) {
|
|
167
180
|
formData.append(transformedKey, value.toLowerCase());
|
|
168
181
|
}
|
|
169
|
-
// else if (isRequiredKey(key) || isNotEmptyObject(value)) {
|
|
170
|
-
// formData.append(transformedKey, JSON.stringify(value));
|
|
171
|
-
// }
|
|
172
182
|
else {
|
|
173
183
|
formData.append(transformedKey, value);
|
|
174
184
|
}
|
|
@@ -200,6 +210,18 @@ export const createControlledFormData = (data, configs) => {
|
|
|
200
210
|
_addToFormData(key, JSON.stringify(value));
|
|
201
211
|
}
|
|
202
212
|
}
|
|
213
|
+
// else if (Array.isArray(value) && value.every(isNotEmptyObject)) {
|
|
214
|
+
// if (shouldDotNotate(fullKey)) {
|
|
215
|
+
// value.forEach((item, index) =>
|
|
216
|
+
// _addToFormData(`${fullKey}[${index}]`, item),
|
|
217
|
+
// );
|
|
218
|
+
// } else if (shouldStringify(fullKey)) {
|
|
219
|
+
// _addToFormData(
|
|
220
|
+
// key,
|
|
221
|
+
// value.map((item) => _processObject(item, parentKey)),
|
|
222
|
+
// );
|
|
223
|
+
// }
|
|
224
|
+
// }
|
|
203
225
|
else {
|
|
204
226
|
// * For other cases, just append as key-value
|
|
205
227
|
_addToFormData(key, value);
|
package/dist/form/guards.d.ts
CHANGED
|
@@ -23,6 +23,18 @@ export declare function isCustomFile(value: unknown): value is CustomFile;
|
|
|
23
23
|
* @returns `true` if the value is a valid `CustomFile[]`, otherwise `false`.
|
|
24
24
|
*/
|
|
25
25
|
export declare function isCustomFileArray(value: unknown): value is CustomFile[];
|
|
26
|
+
/**
|
|
27
|
+
* * Checks if a given value is an array of `File` objects.
|
|
28
|
+
* @param value - The value to check.
|
|
29
|
+
* @returns `true` if the value is a valid `File[]`, otherwise `false`.
|
|
30
|
+
*/
|
|
31
|
+
export declare function isFileArray(value: unknown): value is File[];
|
|
32
|
+
/**
|
|
33
|
+
* * Checks if a given value is an instance of `FileList`.
|
|
34
|
+
* @param value - The value to check.
|
|
35
|
+
* @returns `true` if the value is a valid `FileList`, otherwise `false`.
|
|
36
|
+
*/
|
|
37
|
+
export declare function isFileList(value: unknown): value is FileList;
|
|
26
38
|
/**
|
|
27
39
|
* * Checks if a given value is a `FileUpload` object.
|
|
28
40
|
* @param value - The value to check.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../src/form/guards.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAErE;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAajE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAQtE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAQhE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,EAAE,CAIvE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAWhE"}
|
|
1
|
+
{"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../src/form/guards.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAErE;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAajE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAQtE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAQhE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,EAAE,CAIvE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,IAAI,EAAE,CAM3D;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAE5D;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAWhE"}
|
package/dist/form/guards.js
CHANGED
|
@@ -47,6 +47,24 @@ export function isCustomFile(value) {
|
|
|
47
47
|
export function isCustomFileArray(value) {
|
|
48
48
|
return (Array.isArray(value) && value.length > 0 && value.every(isCustomFile));
|
|
49
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* * Checks if a given value is an array of `File` objects.
|
|
52
|
+
* @param value - The value to check.
|
|
53
|
+
* @returns `true` if the value is a valid `File[]`, otherwise `false`.
|
|
54
|
+
*/
|
|
55
|
+
export function isFileArray(value) {
|
|
56
|
+
return (Array.isArray(value) &&
|
|
57
|
+
value.length > 0 &&
|
|
58
|
+
value.every((v) => v instanceof File));
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* * Checks if a given value is an instance of `FileList`.
|
|
62
|
+
* @param value - The value to check.
|
|
63
|
+
* @returns `true` if the value is a valid `FileList`, otherwise `false`.
|
|
64
|
+
*/
|
|
65
|
+
export function isFileList(value) {
|
|
66
|
+
return typeof FileList !== 'undefined' && value instanceof FileList;
|
|
67
|
+
}
|
|
50
68
|
/**
|
|
51
69
|
* * Checks if a given value is a `FileUpload` object.
|
|
52
70
|
* @param value - The value to check.
|
package/dist/index.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export { filterArrayOfObjects, flattenArray, getLastArrayElement, isInvalidOrEmp
|
|
|
15
15
|
export { sortAnArray } from './array/sort';
|
|
16
16
|
export { createOptionsArray, removeDuplicatesFromArray, } from './array/transform';
|
|
17
17
|
export { createControlledFormData as convertIntoFormData, createControlledFormData, } from './form/convert';
|
|
18
|
-
export { isCustomFile, isCustomFileArray, isFileUpload, isOriginFileObj, isValidFormData, } from './form/guards';
|
|
18
|
+
export { isCustomFile, isCustomFileArray, isFileUpload, isOriginFileObj, isValidFormData, isFileArray, isFileList, } from './form/guards';
|
|
19
19
|
export { cloneObject, countObjectFields, generateQueryParams, } from './object/basics';
|
|
20
20
|
export { extractNewFields, extractUpdatedAndNewFields, extractUpdatedFields, flattenObjectDotNotation, flattenObjectKeyValue, mergeAndFlattenObjects, mergeObjects, } from './object/objectify';
|
|
21
21
|
export { sanitizeData } from './object/sanitize';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACN,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,cAAc,GACd,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EACN,iBAAiB,EACjB,UAAU,EACV,kBAAkB,EAClB,aAAa,EACb,aAAa,GACb,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACN,wBAAwB,EACxB,sBAAsB,EACtB,YAAY,EACZ,sBAAsB,IAAI,mBAAmB,GAC7C,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACN,YAAY,IAAI,YAAY,EAC5B,YAAY,EACZ,YAAY,IAAI,YAAY,EAC5B,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,MAAM,EACN,MAAM,IAAI,YAAY,EACtB,UAAU,EACV,KAAK,EACL,KAAK,IAAI,WAAW,GACpB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACN,aAAa,IAAI,oBAAoB,EACrC,sBAAsB,EACtB,aAAa,GACb,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACN,gBAAgB,EAChB,OAAO,EACP,OAAO,IAAI,aAAa,GACxB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACN,WAAW,EACX,cAAc,IAAI,uBAAuB,EACzC,cAAc,EACd,cAAc,IAAI,gBAAgB,EAClC,cAAc,EACd,cAAc,IAAI,WAAW,EAC7B,cAAc,IAAI,4BAA4B,EAC9C,cAAc,EACd,cAAc,IAAI,sBAAsB,GACxC,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EACN,2BAA2B,EAC3B,sBAAsB,GACtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACN,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,gBAAgB,GAChB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,KAAK,EAAE,KAAK,IAAI,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAGxD,OAAO,EACN,oBAAoB,EACpB,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,IAAI,iBAAiB,EAC1C,YAAY,GACZ,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EACN,kBAAkB,EAClB,yBAAyB,GACzB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACN,wBAAwB,IAAI,mBAAmB,EAC/C,wBAAwB,GACxB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACN,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,eAAe,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -20,7 +20,7 @@ export { sortAnArray } from './array/sort';
|
|
|
20
20
|
export { createOptionsArray, removeDuplicatesFromArray, } from './array/transform';
|
|
21
21
|
// ! Form Utilities
|
|
22
22
|
export { createControlledFormData as convertIntoFormData, createControlledFormData, } from './form/convert';
|
|
23
|
-
export { isCustomFile, isCustomFileArray, isFileUpload, isOriginFileObj, isValidFormData, } from './form/guards';
|
|
23
|
+
export { isCustomFile, isCustomFileArray, isFileUpload, isOriginFileObj, isValidFormData, isFileArray, isFileList, } from './form/guards';
|
|
24
24
|
// ! Object Utilities
|
|
25
25
|
export { cloneObject, countObjectFields, generateQueryParams, } from './object/basics';
|
|
26
26
|
export { extractNewFields, extractUpdatedAndNewFields, extractUpdatedFields, flattenObjectDotNotation, flattenObjectKeyValue, mergeAndFlattenObjects, mergeObjects, } from './object/objectify';
|
package/dist/object/types.d.ts
CHANGED
|
@@ -17,24 +17,24 @@ export type QueryObject = {
|
|
|
17
17
|
};
|
|
18
18
|
/** - Object type with string or number or boolean as value for each key. */
|
|
19
19
|
export type GenericObjectPrimitive = Record<string, string | number | boolean>;
|
|
20
|
-
/** - Dot-notation keys for nested objects */
|
|
20
|
+
/** - Dot-notation keys for nested objects with unknown value (including optional properties) */
|
|
21
21
|
export type DotNotationKeyStrict<T> = T extends AdvancedTypes ? never : T extends StrictObject ? {
|
|
22
22
|
[K in keyof T & string]: NonNullable<T[K]> extends StrictObject ? `${K}` | `${K}.${DotNotationKey<NonNullable<T[K]>>}` : `${K}`;
|
|
23
23
|
}[keyof T & string] : never;
|
|
24
|
-
/** - Dot-notation keys for nested objects (including optional properties) */
|
|
24
|
+
/** - Dot-notation keys for nested objects with `any` value (including optional properties) */
|
|
25
25
|
export type DotNotationKey<T> = T extends AdvancedTypes ? never : T extends GenericObject ? {
|
|
26
26
|
[K in keyof T & string]: NonNullable<T[K]> extends GenericObject ? `${K}` | `${K}.${DotNotationKey<NonNullable<T[K]>>}` : `${K}`;
|
|
27
27
|
}[keyof T & string] : never;
|
|
28
|
-
/** -
|
|
28
|
+
/** - Object keys where the value is an array (including optional properties) */
|
|
29
29
|
export type KeyForArray<T> = T extends GenericObject ? {
|
|
30
30
|
[K in keyof T & string]: NonNullable<T[K]> extends Array<unknown> ? K : never;
|
|
31
31
|
}[keyof T & string] : never;
|
|
32
|
-
/** -
|
|
32
|
+
/** - Object keys where the value is a non-array object (including optional properties) */
|
|
33
33
|
export type KeyForObject<T> = T extends GenericObject ? {
|
|
34
34
|
[K in keyof T & string]: NonNullable<T[K]> extends GenericObject ? NonNullable<T[K]> extends Array<unknown> ? never : K : never;
|
|
35
35
|
}[keyof T & string] : never;
|
|
36
36
|
/** - Extract only keys with string values from an object, including nested dot-notation keys. */
|
|
37
|
-
export type NestedKeyString<T> = T extends GenericObject ? {
|
|
37
|
+
export type NestedKeyString<T> = T extends AdvancedTypes ? never : T extends GenericObject ? {
|
|
38
38
|
[K in keyof T & string]: NonNullable<T[K]> extends string ? K : NonNullable<T[K]> extends GenericObject ? `${K}.${NestedKeyString<NonNullable<T[K]>>}` : never;
|
|
39
39
|
}[keyof T & string] : never;
|
|
40
40
|
/** - Extract only primitive keys from an object, including nested dot-notation keys. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/object/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEzD,4CAA4C;AAC5C,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEnD,4CAA4C;AAC5C,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEhD;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,SAAS,EAAE,GAAG,WAAW,CAAC;AAErE;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAA;CAAE,CAAC;AAE9D,4EAA4E;AAC5E,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;AAE/E,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/object/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED