vest-utils 1.5.0 → 2.0.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 (157) hide show
  1. package/README.md +7 -2
  2. package/dist/chunk-CLMFDpHK.mjs +18 -0
  3. package/dist/exports/minifyObject.cjs +114 -0
  4. package/dist/exports/minifyObject.cjs.map +1 -0
  5. package/dist/exports/minifyObject.mjs +113 -0
  6. package/dist/exports/minifyObject.mjs.map +1 -0
  7. package/dist/exports/standardSchemaSpec.cjs +0 -0
  8. package/dist/exports/standardSchemaSpec.mjs +1 -0
  9. package/dist/isEmpty-BBxAFjjm.mjs +103 -0
  10. package/dist/isEmpty-BBxAFjjm.mjs.map +1 -0
  11. package/dist/isEmpty-BuEa-96Q.cjs +235 -0
  12. package/dist/isEmpty-BuEa-96Q.cjs.map +1 -0
  13. package/dist/vest-utils.cjs +510 -0
  14. package/dist/vest-utils.cjs.map +1 -0
  15. package/dist/vest-utils.mjs +421 -0
  16. package/dist/vest-utils.mjs.map +1 -0
  17. package/minifyObject/package.json +12 -8
  18. package/package.json +43 -58
  19. package/src/Brand.ts +9 -0
  20. package/src/IO.ts +2 -0
  21. package/src/Predicates.ts +13 -0
  22. package/src/Result.ts +121 -0
  23. package/src/SimpleStateMachine.ts +157 -0
  24. package/src/StringObject.ts +6 -0
  25. package/src/__tests__/Architecture.test.ts +69 -0
  26. package/src/__tests__/Predicates.test.ts +118 -0
  27. package/src/__tests__/Result.test.ts +284 -0
  28. package/src/__tests__/SimpleStateMachine.test.ts +425 -0
  29. package/src/__tests__/StringObject.test.ts +18 -0
  30. package/src/__tests__/asArray.test.ts +14 -0
  31. package/src/__tests__/bindNot.test.ts +39 -0
  32. package/src/__tests__/bus.test.ts +135 -0
  33. package/src/__tests__/cache.test.ts +139 -0
  34. package/src/__tests__/callEach.test.ts +20 -0
  35. package/src/__tests__/defaultTo.test.ts +52 -0
  36. package/src/__tests__/deferThrow.test.ts +26 -0
  37. package/src/__tests__/either.test.ts +17 -0
  38. package/src/__tests__/freezeAssign.test.ts +24 -0
  39. package/src/__tests__/greaterThan.test.ts +68 -0
  40. package/src/__tests__/invariant.test.ts +47 -0
  41. package/src/__tests__/isArray.test.ts +16 -0
  42. package/src/__tests__/isBoolean.test.ts +16 -0
  43. package/src/__tests__/isEmpty.test.ts +55 -0
  44. package/src/__tests__/isEmptySet.test.ts +22 -0
  45. package/src/__tests__/isNull.test.ts +26 -0
  46. package/src/__tests__/isNumeric.test.ts +27 -0
  47. package/src/__tests__/isPositive.test.ts +38 -0
  48. package/src/__tests__/isPromise.test.ts +17 -0
  49. package/src/__tests__/isString.test.ts +13 -0
  50. package/src/__tests__/isUndefined.test.ts +27 -0
  51. package/src/__tests__/isUnsafeKey.test.ts +22 -0
  52. package/src/__tests__/lengthEquals.test.ts +58 -0
  53. package/src/__tests__/longerThan.test.ts +58 -0
  54. package/src/__tests__/mapFirst.test.ts +31 -0
  55. package/src/__tests__/nonnullish.test.ts +25 -0
  56. package/src/__tests__/noop.test.ts +12 -0
  57. package/src/__tests__/numberEquals.test.ts +67 -0
  58. package/src/__tests__/optionalFunctionValue.test.ts +29 -0
  59. package/src/__tests__/seq.test.ts +29 -0
  60. package/src/__tests__/text.test.ts +41 -0
  61. package/src/__tests__/tinyState.test.ts +68 -0
  62. package/src/__tests__/toNumber.test.ts +39 -0
  63. package/src/__tests__/vest-utils.test.ts +13 -0
  64. package/src/__tests__/withCatch.test.ts +17 -0
  65. package/src/__tests__/withResolvers.test.ts +45 -0
  66. package/src/asArray.ts +3 -0
  67. package/src/assign.ts +1 -0
  68. package/src/bindNot.ts +3 -0
  69. package/src/bus.ts +52 -0
  70. package/src/cache.ts +68 -0
  71. package/src/callEach.ts +5 -0
  72. package/src/defaultTo.ts +9 -0
  73. package/src/deferThrow.ts +7 -0
  74. package/src/dynamicValue.ts +9 -0
  75. package/src/either.ts +3 -0
  76. package/src/exports/__tests__/minifyObject.security.test.ts +65 -0
  77. package/src/exports/__tests__/minifyObject.test.ts +281 -0
  78. package/src/exports/minifyObject.ts +198 -0
  79. package/src/exports/standardSchemaSpec.ts +70 -0
  80. package/src/freezeAssign.ts +5 -0
  81. package/src/globals.d.ts +3 -0
  82. package/src/greaterThan.ts +8 -0
  83. package/src/hasOwnProperty.ts +9 -0
  84. package/src/invariant.ts +19 -0
  85. package/src/isArrayValue.ts +11 -0
  86. package/src/isBooleanValue.ts +3 -0
  87. package/src/isEmpty.ts +18 -0
  88. package/src/isEmptySet.ts +15 -0
  89. package/src/isFunction.ts +5 -0
  90. package/src/isNull.ts +7 -0
  91. package/src/isNullish.ts +10 -0
  92. package/src/isNumeric.ts +11 -0
  93. package/src/isPositive.ts +5 -0
  94. package/src/isPromise.ts +5 -0
  95. package/src/isStringValue.ts +3 -0
  96. package/src/isUndefined.ts +7 -0
  97. package/src/isUnsafeKey.ts +3 -0
  98. package/src/lengthEquals.ts +11 -0
  99. package/src/longerThan.ts +8 -0
  100. package/src/mapFirst.ts +25 -0
  101. package/src/nonnullish.ts +9 -0
  102. package/src/noop.ts +1 -0
  103. package/src/numberEquals.ts +11 -0
  104. package/src/seq.ts +16 -0
  105. package/src/text.ts +20 -0
  106. package/src/tinyState.ts +28 -0
  107. package/src/toNumber.ts +11 -0
  108. package/src/utilityTypes.ts +25 -0
  109. package/src/valueIsObject.ts +5 -0
  110. package/src/vest-utils.ts +73 -0
  111. package/src/withCatch.ts +11 -0
  112. package/src/withResolvers.ts +33 -0
  113. package/standardSchemaSpec/package.json +14 -0
  114. package/types/{minifyObject.d.ts → exports/minifyObject.d.cts} +4 -2
  115. package/types/exports/minifyObject.d.cts.map +1 -0
  116. package/types/exports/minifyObject.d.mts +7 -0
  117. package/types/exports/minifyObject.d.mts.map +1 -0
  118. package/types/exports/standardSchemaSpec.d.cts +59 -0
  119. package/types/exports/standardSchemaSpec.d.cts.map +1 -0
  120. package/types/exports/standardSchemaSpec.d.mts +59 -0
  121. package/types/exports/standardSchemaSpec.d.mts.map +1 -0
  122. package/types/vest-utils.d.cts +296 -0
  123. package/types/vest-utils.d.cts.map +1 -0
  124. package/types/vest-utils.d.mts +295 -0
  125. package/types/vest-utils.d.mts.map +1 -0
  126. package/types/vest-utils.d.ts +245 -143
  127. package/vitest.config.ts +9 -45
  128. package/dist/cjs/minifyObject.development.js +0 -217
  129. package/dist/cjs/minifyObject.development.js.map +0 -1
  130. package/dist/cjs/minifyObject.js +0 -6
  131. package/dist/cjs/minifyObject.production.js +0 -2
  132. package/dist/cjs/minifyObject.production.js.map +0 -1
  133. package/dist/cjs/package.json +0 -1
  134. package/dist/cjs/vest-utils.development.js +0 -378
  135. package/dist/cjs/vest-utils.development.js.map +0 -1
  136. package/dist/cjs/vest-utils.js +0 -6
  137. package/dist/cjs/vest-utils.production.js +0 -2
  138. package/dist/cjs/vest-utils.production.js.map +0 -1
  139. package/dist/es/minifyObject.development.js +0 -214
  140. package/dist/es/minifyObject.development.js.map +0 -1
  141. package/dist/es/minifyObject.production.js +0 -2
  142. package/dist/es/minifyObject.production.js.map +0 -1
  143. package/dist/es/package.json +0 -1
  144. package/dist/es/vest-utils.development.js +0 -330
  145. package/dist/es/vest-utils.development.js.map +0 -1
  146. package/dist/es/vest-utils.production.js +0 -2
  147. package/dist/es/vest-utils.production.js.map +0 -1
  148. package/dist/umd/minifyObject.development.js +0 -223
  149. package/dist/umd/minifyObject.development.js.map +0 -1
  150. package/dist/umd/minifyObject.production.js +0 -2
  151. package/dist/umd/minifyObject.production.js.map +0 -1
  152. package/dist/umd/vest-utils.development.js +0 -384
  153. package/dist/umd/vest-utils.development.js.map +0 -1
  154. package/dist/umd/vest-utils.production.js +0 -2
  155. package/dist/umd/vest-utils.production.js.map +0 -1
  156. package/types/minifyObject.d.ts.map +0 -1
  157. package/types/vest-utils.d.ts.map +0 -1
@@ -1,217 +0,0 @@
1
- 'use strict';
2
-
3
- // The module is named "isArrayValue" since it
4
- // is conflicting with a nested npm dependency.
5
- // We may need to revisit this in the future.
6
- function isArray(value) {
7
- return Boolean(Array.isArray(value));
8
- }
9
-
10
- /**
11
- * A safe hasOwnProperty access
12
- */
13
- function hasOwnProperty(obj, key) {
14
- return Object.prototype.hasOwnProperty.call(obj, key);
15
- }
16
-
17
- function isNumeric(value) {
18
- const str = String(value);
19
- const num = Number(value);
20
- const result = !isNaN(parseFloat(str)) && !isNaN(Number(value)) && isFinite(num);
21
- return Boolean(result);
22
- }
23
-
24
- function numberEquals(value, eq) {
25
- return isNumeric(value) && isNumeric(eq) && Number(value) === Number(eq);
26
- }
27
-
28
- function lengthEquals(value, arg1) {
29
- return numberEquals(value.length, arg1);
30
- }
31
-
32
- function isNull(value) {
33
- return value === null;
34
- }
35
-
36
- function isUndefined(value) {
37
- return value === undefined;
38
- }
39
-
40
- function isNullish(value) {
41
- return isNull(value) || isUndefined(value);
42
- }
43
-
44
- function isObject(v) {
45
- return typeof v === 'object' && !isNullish(v);
46
- }
47
-
48
- function isEmpty(value) {
49
- if (!value) {
50
- return true;
51
- }
52
- else if (hasOwnProperty(value, 'length')) {
53
- return lengthEquals(value, 0);
54
- }
55
- else if (isObject(value)) {
56
- return lengthEquals(Object.keys(value), 0);
57
- }
58
- return false;
59
- }
60
-
61
- function isFunction(value) {
62
- return typeof value === 'function';
63
- }
64
-
65
- function isStringValue(v) {
66
- return String(v) === v;
67
- }
68
-
69
- // Basic key generator that generates keys like a, b, c, ... aa, ab, ac, ...
70
- function genMinifiedKey() {
71
- const chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*';
72
- let index = 0;
73
- return function next() {
74
- let code = '';
75
- let x = index;
76
- do {
77
- code = code + chars[x % chars.length];
78
- x = Math.floor(x / chars.length);
79
- } while (x > 0);
80
- index++;
81
- return code;
82
- };
83
- }
84
- function minifyObject(obj, replacer = v => v) {
85
- const countMap = new Map();
86
- countOccurrences(obj, countMap, replacer);
87
- const maps = genMap(countMap);
88
- const o = minifyObjectImpl(obj, maps.map, replacer);
89
- // need to reverse the map so that the minified keys are the keys and the original keys are the values
90
- // and turn it into an object
91
- return [o, maps.reverseMap];
92
- }
93
- function genMap(countMap) {
94
- const counts = [];
95
- for (const [value, count] of countMap) {
96
- if (count > 1) {
97
- counts.push({ value, count });
98
- }
99
- }
100
- const sorted = counts.sort((a, z) => z.count - a.count);
101
- const getKey = genMinifiedKey();
102
- return sorted.reduce((maps, { value }) => {
103
- if (!shouldAddToMap(value, maps.keyLength)) {
104
- return maps;
105
- }
106
- let key;
107
- do {
108
- key = getKey();
109
- } while (countMap.has(key));
110
- maps.map.set(value, key);
111
- maps.reverseMap[key] = value;
112
- maps.keyLength = key.length;
113
- return maps;
114
- }, {
115
- map: new Map(),
116
- reverseMap: {},
117
- keyLength: 1,
118
- });
119
- }
120
- // This avoids minification if the original key is shorter than or equals the minified key
121
- function shouldAddToMap(value, keyLength) {
122
- return value.toString().length >= keyLength;
123
- }
124
- function addCount(value, countMap) {
125
- countMap.set(value, (countMap.get(value) || 0) + 1);
126
- }
127
- function countOccurrences(obj, countMap, replacer) {
128
- for (const key in obj) {
129
- const value = replacer(obj[key], key);
130
- if (!shouldMinify(value))
131
- continue;
132
- if (!Array.isArray(obj)) {
133
- addCount(key, countMap);
134
- }
135
- if (isObject(value)) {
136
- countOccurrences(value, countMap, replacer);
137
- }
138
- else {
139
- addCount(value, countMap);
140
- }
141
- }
142
- }
143
- function isNonSerializable(value) {
144
- return isNullish(value) || isFunction(value) || typeof value === 'symbol';
145
- }
146
- // eslint-disable-next-line complexity
147
- function shouldMinify(value) {
148
- if (isObject(value) && isEmpty(value)) {
149
- return false;
150
- }
151
- if (isNonSerializable(value)) {
152
- return false;
153
- }
154
- if (isObject(value) && isEmpty(value)) {
155
- return false;
156
- }
157
- return true;
158
- }
159
- function minifyObjectImpl(obj, map, replacer) {
160
- const minifiedObject = getRootNode(obj);
161
- for (const key in obj) {
162
- const value = replacer(obj[key], key);
163
- if (!shouldMinify(value))
164
- continue;
165
- let minifiedValue;
166
- if (isObject(value)) {
167
- minifiedValue = minifyObjectImpl(value, map, replacer);
168
- }
169
- else {
170
- minifiedValue = minifyValue(value, map);
171
- }
172
- setValue(minifiedObject, minifiedValue, minifyValue(key, map));
173
- }
174
- return minifiedObject;
175
- }
176
- function minifyValue(value, map) {
177
- var _a;
178
- return (_a = map.get(value)) !== null && _a !== void 0 ? _a : value;
179
- }
180
- function expandSingle(value, map) {
181
- var _a;
182
- if (isStringValue(value)) {
183
- return (_a = map[value]) !== null && _a !== void 0 ? _a : value;
184
- }
185
- return value;
186
- }
187
- function expandObject(minifiedObj, map) {
188
- const expandedObject = getRootNode(minifiedObj);
189
- for (const key in minifiedObj) {
190
- let expandedValue;
191
- const value = minifiedObj[key];
192
- if (isObject(value)) {
193
- expandedValue = expandObject(value, map);
194
- }
195
- else {
196
- expandedValue = expandSingle(value, map);
197
- }
198
- const expandedKey = expandSingle(key, map);
199
- setValue(expandedObject, expandedValue, expandedKey);
200
- }
201
- return expandedObject;
202
- }
203
- function setValue(container, value, key) {
204
- if (isArray(container)) {
205
- container.push(value);
206
- }
207
- else {
208
- container[key] = value;
209
- }
210
- }
211
- function getRootNode(node) {
212
- return isArray(node) ? [] : {};
213
- }
214
-
215
- exports.expandObject = expandObject;
216
- exports.minifyObject = minifyObject;
217
- //# sourceMappingURL=minifyObject.development.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"minifyObject.development.js","sources":["../../src/isArrayValue.ts","../../src/hasOwnProperty.ts","../../src/isNumeric.ts","../../src/numberEquals.ts","../../src/lengthEquals.ts","../../src/isNull.ts","../../src/isUndefined.ts","../../src/isNullish.ts","../../src/valueIsObject.ts","../../src/isEmpty.ts","../../src/isFunction.ts","../../src/isStringValue.ts","../../src/exports/minifyObject.ts"],"sourcesContent":["import bindNot from 'bindNot';\n\n// The module is named \"isArrayValue\" since it\n// is conflicting with a nested npm dependency.\n// We may need to revisit this in the future.\n\nexport function isArray(value: unknown): value is Array<unknown> {\n return Boolean(Array.isArray(value));\n}\n\nexport const isNotArray = bindNot(isArray);\n","/**\n * A safe hasOwnProperty access\n */\nexport default function hasOwnProperty<T>(\n obj: T,\n key: string | number | symbol,\n): key is keyof T {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n","import bindNot from 'bindNot';\n\nexport function isNumeric(value: string | number): boolean {\n const str = String(value);\n const num = Number(value);\n const result =\n !isNaN(parseFloat(str)) && !isNaN(Number(value)) && isFinite(num);\n return Boolean(result);\n}\n\nexport const isNotNumeric = bindNot(isNumeric);\n","import bindNot from 'bindNot';\nimport { isNumeric } from 'isNumeric';\n\nexport function numberEquals(\n value: string | number,\n eq: string | number,\n): boolean {\n return isNumeric(value) && isNumeric(eq) && Number(value) === Number(eq);\n}\n\nexport const numberNotEquals = bindNot(numberEquals);\n","import bindNot from 'bindNot';\nimport { numberEquals } from 'numberEquals';\n\nexport function lengthEquals(\n value: string | unknown[],\n arg1: string | number,\n): boolean {\n return numberEquals(value.length, arg1);\n}\n\nexport const lengthNotEquals = bindNot(lengthEquals);\n","import bindNot from 'bindNot';\n\nexport function isNull(value: unknown): value is null {\n return value === null;\n}\n\nexport const isNotNull = bindNot(isNull);\n","import bindNot from 'bindNot';\n\nexport function isUndefined(value?: unknown): value is undefined {\n return value === undefined;\n}\n\nexport const isNotUndefined = bindNot(isUndefined);\n","import bindNot from 'bindNot';\nimport { isNull } from 'isNull';\nimport { isUndefined } from 'isUndefined';\nimport { Nullish } from 'utilityTypes';\n\nexport function isNullish(value: any): value is Nullish {\n return isNull(value) || isUndefined(value);\n}\n\nexport const isNotNullish = bindNot(isNullish);\n","import { isNullish } from 'isNullish';\n\nexport function isObject(v: any): v is Record<any, any> {\n return typeof v === 'object' && !isNullish(v);\n}\n","import bindNot from 'bindNot';\nimport hasOwnProperty from 'hasOwnProperty';\nimport { lengthEquals } from 'lengthEquals';\nimport { isObject } from 'valueIsObject';\n\nexport function isEmpty(value: unknown): boolean {\n if (!value) {\n return true;\n } else if (hasOwnProperty(value, 'length')) {\n return lengthEquals(value as string | unknown[], 0);\n } else if (isObject(value)) {\n return lengthEquals(Object.keys(value as Record<string, unknown>), 0);\n }\n\n return false;\n}\n\nexport const isNotEmpty = bindNot(isEmpty);\n","export default function isFunction(\n value: unknown,\n): value is (...args: unknown[]) => unknown {\n return typeof value === 'function';\n}\n","export default function isStringValue(v: unknown): v is string {\n return String(v) === v;\n}\n","import { isArray } from 'isArrayValue';\nimport { isEmpty } from 'isEmpty';\nimport isFunction from 'isFunction';\nimport { isNullish } from 'isNullish';\nimport isStringValue from 'isStringValue';\nimport { isObject } from 'valueIsObject';\n\n// Basic key generator that generates keys like a, b, c, ... aa, ab, ac, ...\nfunction genMinifiedKey() {\n const chars =\n '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*';\n let index = 0;\n\n return function next(): string {\n let code = '';\n let x = index;\n\n do {\n code = code + chars[x % chars.length];\n x = Math.floor(x / chars.length);\n } while (x > 0);\n index++;\n return code;\n };\n}\n\nexport function minifyObject(\n obj: any,\n replacer: MinifyObjectReplacer = v => v,\n): [any, any] {\n const countMap = new Map<any, number>();\n countOccurrences(obj, countMap, replacer);\n const maps = genMap(countMap);\n const o = minifyObjectImpl(obj, maps.map, replacer);\n // need to reverse the map so that the minified keys are the keys and the original keys are the values\n // and turn it into an object\n\n return [o, maps.reverseMap];\n}\n\nfunction genMap(countMap: Map<any, number>) {\n const counts = [];\n\n for (const [value, count] of countMap) {\n if (count > 1) {\n counts.push({ value, count });\n }\n }\n\n const sorted = counts.sort((a, z) => z.count - a.count);\n\n const getKey = genMinifiedKey();\n return sorted.reduce(\n (maps, { value }) => {\n if (!shouldAddToMap(value, maps.keyLength)) {\n return maps;\n }\n\n let key;\n do {\n key = getKey();\n } while (countMap.has(key));\n maps.map.set(value, key);\n maps.reverseMap[key] = value;\n maps.keyLength = key.length;\n return maps;\n },\n {\n map: new Map(),\n reverseMap: {},\n keyLength: 1,\n } as {\n map: Map<any, string>;\n reverseMap: Record<string, any>;\n keyLength: number;\n },\n );\n}\n\n// This avoids minification if the original key is shorter than or equals the minified key\nfunction shouldAddToMap(value: any, keyLength: number) {\n return value.toString().length >= keyLength;\n}\n\nfunction addCount(value: any, countMap: Map<any, number>) {\n countMap.set(value, (countMap.get(value) || 0) + 1);\n}\n\nfunction countOccurrences(\n obj: any,\n countMap: Map<any, number>,\n replacer: MinifyObjectReplacer,\n) {\n for (const key in obj) {\n const value = replacer(obj[key], key);\n if (!shouldMinify(value)) continue;\n\n if (!Array.isArray(obj)) {\n addCount(key, countMap);\n }\n\n if (isObject(value)) {\n countOccurrences(value, countMap, replacer);\n } else {\n addCount(value, countMap);\n }\n }\n}\n\nfunction isNonSerializable(value: any): boolean {\n return isNullish(value) || isFunction(value) || typeof value === 'symbol';\n}\n\n// eslint-disable-next-line complexity\nfunction shouldMinify(value: any): boolean {\n if (isObject(value) && isEmpty(value)) {\n return false;\n }\n\n if (isNonSerializable(value)) {\n return false;\n }\n\n if (isObject(value) && isEmpty(value)) {\n return false;\n }\n\n return true;\n}\n\nfunction minifyObjectImpl(\n obj: any,\n map: Map<any, string>,\n replacer: MinifyObjectReplacer,\n): any {\n const minifiedObject: any = getRootNode(obj);\n\n for (const key in obj) {\n const value = replacer(obj[key], key);\n if (!shouldMinify(value)) continue;\n\n let minifiedValue;\n if (isObject(value)) {\n minifiedValue = minifyObjectImpl(value, map, replacer);\n } else {\n minifiedValue = minifyValue(value, map);\n }\n\n setValue(minifiedObject, minifiedValue, minifyValue(key, map));\n }\n\n return minifiedObject;\n}\n\nfunction minifyValue(value: any, map: Map<any, string>) {\n return map.get(value) ?? value;\n}\n\nfunction expandSingle(value: any, map: Record<string, any>): any {\n if (isStringValue(value)) {\n return map[value] ?? value;\n }\n\n return value;\n}\n\nexport function expandObject(minifiedObj: any, map: Record<string, any>): any {\n const expandedObject: any = getRootNode(minifiedObj);\n\n for (const key in minifiedObj) {\n let expandedValue;\n const value = minifiedObj[key];\n if (isObject(value)) {\n expandedValue = expandObject(value, map);\n } else {\n expandedValue = expandSingle(value, map);\n }\n\n const expandedKey = expandSingle(key, map);\n setValue(expandedObject, expandedValue, expandedKey);\n }\n\n return expandedObject;\n}\n\nfunction setValue(container: any, value: any, key: string) {\n if (isArray(container)) {\n container.push(value);\n } else {\n container[key] = value;\n }\n}\n\nfunction getRootNode(node: any) {\n return isArray(node) ? [] : {};\n}\n\nexport type MinifyObjectReplacer = (value: any, key: string) => any;\n"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- 'use strict'
2
- if (process.env.NODE_ENV === 'production') {
3
- module.exports = require('./minifyObject.production.js');
4
- } else {
5
- module.exports = require('./minifyObject.development.js');
6
- }
@@ -1,2 +0,0 @@
1
- "use strict";function n(n){return Boolean(Array.isArray(n))}function t(n){const t=String(n),r=Number(n),e=!isNaN(parseFloat(t))&&!isNaN(Number(n))&&isFinite(r);return Boolean(e)}function r(n,r){return function(n,r){return t(n)&&t(r)&&Number(n)===Number(r)}(n.length,r)}function e(n){return function(n){return null===n}(n)||function(n){return void 0===n}(n)}function o(n){return"object"==typeof n&&!e(n)}function u(n){return!n||(t=n,e="length",Object.prototype.hasOwnProperty.call(t,e)?r(n,0):!!o(n)&&r(Object.keys(n),0));var t,e}function c(n,t){t.set(n,(t.get(n)||0)+1)}function i(n,t,r){for(const e in n){const u=r(n[e],e);f(u)&&(Array.isArray(n)||c(e,t),o(u)?i(u,t,r):c(u,t))}}function f(n){return(!o(n)||!u(n))&&(!function(n){return e(n)||function(n){return"function"==typeof n}(n)||"symbol"==typeof n}(n)&&(!o(n)||!u(n)))}function s(n,t,r){const e=y(n);for(const u in n){const c=r(n[u],u);if(!f(c))continue;let i;i=o(c)?s(c,t,r):a(c,t),p(e,i,a(u,t))}return e}function a(n,t){var r;return null!==(r=t.get(n))&&void 0!==r?r:n}function l(n,t){var r,e;return e=n,String(e)===e&&null!==(r=t[n])&&void 0!==r?r:n}function p(t,r,e){n(t)?t.push(r):t[e]=r}function y(t){return n(t)?[]:{}}exports.expandObject=function n(t,r){const e=y(t);for(const u in t){let c;const i=t[u];c=o(i)?n(i,r):l(i,r);p(e,c,l(u,r))}return e},exports.minifyObject=function(n,t=(n=>n)){const r=new Map;i(n,r,t);const e=function(n){const t=[];for(const[r,e]of n)e>1&&t.push({value:r,count:e});const r=t.sort(((n,t)=>t.count-n.count)),e=function(){const n="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*";let t=0;return function(){let r="",e=t;do{r+=n[e%70],e=Math.floor(e/70)}while(e>0);return t++,r}}();return r.reduce(((t,{value:r})=>{if(!function(n,t){return n.toString().length>=t}(r,t.keyLength))return t;let o;do{o=e()}while(n.has(o));return t.map.set(r,o),t.reverseMap[o]=r,t.keyLength=o.length,t}),{map:new Map,reverseMap:{},keyLength:1})}(r);return[s(n,e.map,t),e.reverseMap]};
2
- //# sourceMappingURL=minifyObject.production.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"minifyObject.production.js","sources":["../../src/isArrayValue.ts","../../src/isNumeric.ts","../../src/lengthEquals.ts","../../src/numberEquals.ts","../../src/isNullish.ts","../../src/isNull.ts","../../src/isUndefined.ts","../../src/valueIsObject.ts","../../src/isEmpty.ts","../../src/hasOwnProperty.ts","../../src/exports/minifyObject.ts","../../src/isFunction.ts","../../src/isStringValue.ts"],"sourcesContent":["import bindNot from 'bindNot';\n\n// The module is named \"isArrayValue\" since it\n// is conflicting with a nested npm dependency.\n// We may need to revisit this in the future.\n\nexport function isArray(value: unknown): value is Array<unknown> {\n return Boolean(Array.isArray(value));\n}\n\nexport const isNotArray = bindNot(isArray);\n","import bindNot from 'bindNot';\n\nexport function isNumeric(value: string | number): boolean {\n const str = String(value);\n const num = Number(value);\n const result =\n !isNaN(parseFloat(str)) && !isNaN(Number(value)) && isFinite(num);\n return Boolean(result);\n}\n\nexport const isNotNumeric = bindNot(isNumeric);\n","import bindNot from 'bindNot';\nimport { numberEquals } from 'numberEquals';\n\nexport function lengthEquals(\n value: string | unknown[],\n arg1: string | number,\n): boolean {\n return numberEquals(value.length, arg1);\n}\n\nexport const lengthNotEquals = bindNot(lengthEquals);\n","import bindNot from 'bindNot';\nimport { isNumeric } from 'isNumeric';\n\nexport function numberEquals(\n value: string | number,\n eq: string | number,\n): boolean {\n return isNumeric(value) && isNumeric(eq) && Number(value) === Number(eq);\n}\n\nexport const numberNotEquals = bindNot(numberEquals);\n","import bindNot from 'bindNot';\nimport { isNull } from 'isNull';\nimport { isUndefined } from 'isUndefined';\nimport { Nullish } from 'utilityTypes';\n\nexport function isNullish(value: any): value is Nullish {\n return isNull(value) || isUndefined(value);\n}\n\nexport const isNotNullish = bindNot(isNullish);\n","import bindNot from 'bindNot';\n\nexport function isNull(value: unknown): value is null {\n return value === null;\n}\n\nexport const isNotNull = bindNot(isNull);\n","import bindNot from 'bindNot';\n\nexport function isUndefined(value?: unknown): value is undefined {\n return value === undefined;\n}\n\nexport const isNotUndefined = bindNot(isUndefined);\n","import { isNullish } from 'isNullish';\n\nexport function isObject(v: any): v is Record<any, any> {\n return typeof v === 'object' && !isNullish(v);\n}\n","import bindNot from 'bindNot';\nimport hasOwnProperty from 'hasOwnProperty';\nimport { lengthEquals } from 'lengthEquals';\nimport { isObject } from 'valueIsObject';\n\nexport function isEmpty(value: unknown): boolean {\n if (!value) {\n return true;\n } else if (hasOwnProperty(value, 'length')) {\n return lengthEquals(value as string | unknown[], 0);\n } else if (isObject(value)) {\n return lengthEquals(Object.keys(value as Record<string, unknown>), 0);\n }\n\n return false;\n}\n\nexport const isNotEmpty = bindNot(isEmpty);\n","/**\n * A safe hasOwnProperty access\n */\nexport default function hasOwnProperty<T>(\n obj: T,\n key: string | number | symbol,\n): key is keyof T {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n","import { isArray } from 'isArrayValue';\nimport { isEmpty } from 'isEmpty';\nimport isFunction from 'isFunction';\nimport { isNullish } from 'isNullish';\nimport isStringValue from 'isStringValue';\nimport { isObject } from 'valueIsObject';\n\n// Basic key generator that generates keys like a, b, c, ... aa, ab, ac, ...\nfunction genMinifiedKey() {\n const chars =\n '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*';\n let index = 0;\n\n return function next(): string {\n let code = '';\n let x = index;\n\n do {\n code = code + chars[x % chars.length];\n x = Math.floor(x / chars.length);\n } while (x > 0);\n index++;\n return code;\n };\n}\n\nexport function minifyObject(\n obj: any,\n replacer: MinifyObjectReplacer = v => v,\n): [any, any] {\n const countMap = new Map<any, number>();\n countOccurrences(obj, countMap, replacer);\n const maps = genMap(countMap);\n const o = minifyObjectImpl(obj, maps.map, replacer);\n // need to reverse the map so that the minified keys are the keys and the original keys are the values\n // and turn it into an object\n\n return [o, maps.reverseMap];\n}\n\nfunction genMap(countMap: Map<any, number>) {\n const counts = [];\n\n for (const [value, count] of countMap) {\n if (count > 1) {\n counts.push({ value, count });\n }\n }\n\n const sorted = counts.sort((a, z) => z.count - a.count);\n\n const getKey = genMinifiedKey();\n return sorted.reduce(\n (maps, { value }) => {\n if (!shouldAddToMap(value, maps.keyLength)) {\n return maps;\n }\n\n let key;\n do {\n key = getKey();\n } while (countMap.has(key));\n maps.map.set(value, key);\n maps.reverseMap[key] = value;\n maps.keyLength = key.length;\n return maps;\n },\n {\n map: new Map(),\n reverseMap: {},\n keyLength: 1,\n } as {\n map: Map<any, string>;\n reverseMap: Record<string, any>;\n keyLength: number;\n },\n );\n}\n\n// This avoids minification if the original key is shorter than or equals the minified key\nfunction shouldAddToMap(value: any, keyLength: number) {\n return value.toString().length >= keyLength;\n}\n\nfunction addCount(value: any, countMap: Map<any, number>) {\n countMap.set(value, (countMap.get(value) || 0) + 1);\n}\n\nfunction countOccurrences(\n obj: any,\n countMap: Map<any, number>,\n replacer: MinifyObjectReplacer,\n) {\n for (const key in obj) {\n const value = replacer(obj[key], key);\n if (!shouldMinify(value)) continue;\n\n if (!Array.isArray(obj)) {\n addCount(key, countMap);\n }\n\n if (isObject(value)) {\n countOccurrences(value, countMap, replacer);\n } else {\n addCount(value, countMap);\n }\n }\n}\n\nfunction isNonSerializable(value: any): boolean {\n return isNullish(value) || isFunction(value) || typeof value === 'symbol';\n}\n\n// eslint-disable-next-line complexity\nfunction shouldMinify(value: any): boolean {\n if (isObject(value) && isEmpty(value)) {\n return false;\n }\n\n if (isNonSerializable(value)) {\n return false;\n }\n\n if (isObject(value) && isEmpty(value)) {\n return false;\n }\n\n return true;\n}\n\nfunction minifyObjectImpl(\n obj: any,\n map: Map<any, string>,\n replacer: MinifyObjectReplacer,\n): any {\n const minifiedObject: any = getRootNode(obj);\n\n for (const key in obj) {\n const value = replacer(obj[key], key);\n if (!shouldMinify(value)) continue;\n\n let minifiedValue;\n if (isObject(value)) {\n minifiedValue = minifyObjectImpl(value, map, replacer);\n } else {\n minifiedValue = minifyValue(value, map);\n }\n\n setValue(minifiedObject, minifiedValue, minifyValue(key, map));\n }\n\n return minifiedObject;\n}\n\nfunction minifyValue(value: any, map: Map<any, string>) {\n return map.get(value) ?? value;\n}\n\nfunction expandSingle(value: any, map: Record<string, any>): any {\n if (isStringValue(value)) {\n return map[value] ?? value;\n }\n\n return value;\n}\n\nexport function expandObject(minifiedObj: any, map: Record<string, any>): any {\n const expandedObject: any = getRootNode(minifiedObj);\n\n for (const key in minifiedObj) {\n let expandedValue;\n const value = minifiedObj[key];\n if (isObject(value)) {\n expandedValue = expandObject(value, map);\n } else {\n expandedValue = expandSingle(value, map);\n }\n\n const expandedKey = expandSingle(key, map);\n setValue(expandedObject, expandedValue, expandedKey);\n }\n\n return expandedObject;\n}\n\nfunction setValue(container: any, value: any, key: string) {\n if (isArray(container)) {\n container.push(value);\n } else {\n container[key] = value;\n }\n}\n\nfunction getRootNode(node: any) {\n return isArray(node) ? [] : {};\n}\n\nexport type MinifyObjectReplacer = (value: any, key: string) => any;\n","export default function isFunction(\n value: unknown,\n): value is (...args: unknown[]) => unknown {\n return typeof value === 'function';\n}\n","export default function isStringValue(v: unknown): v is string {\n return String(v) === v;\n}\n"],"names":["isArray","value","Boolean","Array","isNumeric","str","String","num","Number","result","isNaN","parseFloat","isFinite","lengthEquals","arg1","eq","numberEquals","length","isNullish","isNull","undefined","isUndefined","isObject","v","isEmpty","obj","key","Object","prototype","hasOwnProperty","call","keys","addCount","countMap","set","get","countOccurrences","replacer","shouldMinify","isFunction","isNonSerializable","minifyObjectImpl","map","minifiedObject","getRootNode","minifiedValue","minifyValue","setValue","_a","expandSingle","container","push","node","expandObject","minifiedObj","expandedObject","expandedValue","Map","maps","counts","count","sorted","sort","a","z","getKey","chars","index","code","x","Math","floor","genMinifiedKey","reduce","keyLength","toString","shouldAddToMap","has","reverseMap","genMap"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"type":"commonjs"}
@@ -1,378 +0,0 @@
1
- 'use strict';
2
-
3
- function bindNot(fn) {
4
- return (...args) => !fn(...args);
5
- }
6
-
7
- function isNumeric(value) {
8
- const str = String(value);
9
- const num = Number(value);
10
- const result = !isNaN(parseFloat(str)) && !isNaN(Number(value)) && isFinite(num);
11
- return Boolean(result);
12
- }
13
- const isNotNumeric = bindNot(isNumeric);
14
-
15
- function numberEquals(value, eq) {
16
- return isNumeric(value) && isNumeric(eq) && Number(value) === Number(eq);
17
- }
18
- const numberNotEquals = bindNot(numberEquals);
19
-
20
- function lengthEquals(value, arg1) {
21
- return numberEquals(value.length, arg1);
22
- }
23
- const lengthNotEquals = bindNot(lengthEquals);
24
-
25
- function greaterThan(value, gt) {
26
- return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);
27
- }
28
-
29
- function longerThan(value, arg1) {
30
- return greaterThan(value.length, arg1);
31
- }
32
-
33
- /**
34
- * Creates a cache function
35
- */
36
- function createCache(maxSize = 1) {
37
- const cacheStorage = [];
38
- const cache = (deps, cacheAction) => {
39
- const cacheHit = cache.get(deps);
40
- // cache hit is not null
41
- if (cacheHit)
42
- return cacheHit[1];
43
- const result = cacheAction();
44
- cacheStorage.unshift([deps.concat(), result]);
45
- if (longerThan(cacheStorage, maxSize))
46
- cacheStorage.length = maxSize;
47
- return result;
48
- };
49
- // invalidate an item in the cache by its dependencies
50
- cache.invalidate = (deps) => {
51
- const index = findIndex(deps);
52
- if (index > -1)
53
- cacheStorage.splice(index, 1);
54
- };
55
- // Retrieves an item from the cache.
56
- cache.get = (deps) => cacheStorage[findIndex(deps)] || null;
57
- return cache;
58
- function findIndex(deps) {
59
- return cacheStorage.findIndex(([cachedDeps]) => lengthEquals(deps, cachedDeps.length) &&
60
- deps.every((dep, i) => dep === cachedDeps[i]));
61
- }
62
- }
63
-
64
- function isNull(value) {
65
- return value === null;
66
- }
67
- const isNotNull = bindNot(isNull);
68
-
69
- function isUndefined(value) {
70
- return value === undefined;
71
- }
72
- const isNotUndefined = bindNot(isUndefined);
73
-
74
- function isNullish(value) {
75
- return isNull(value) || isUndefined(value);
76
- }
77
- const isNotNullish = bindNot(isNullish);
78
-
79
- function asArray(possibleArg) {
80
- return [].concat(possibleArg);
81
- }
82
-
83
- function callEach(arr) {
84
- return arr.forEach(fn => fn());
85
- }
86
-
87
- /**
88
- * A safe hasOwnProperty access
89
- */
90
- function hasOwnProperty(obj, key) {
91
- return Object.prototype.hasOwnProperty.call(obj, key);
92
- }
93
-
94
- function isFunction(value) {
95
- return typeof value === 'function';
96
- }
97
-
98
- function isPromise(value) {
99
- return !!value && isFunction(value.then);
100
- }
101
-
102
- function optionalFunctionValue(value, ...args) {
103
- return isFunction(value) ? value(...args) : value;
104
- }
105
-
106
- var assign = Object.assign;
107
-
108
- function defaultTo(value, defaultValue) {
109
- var _a;
110
- return (_a = optionalFunctionValue(value)) !== null && _a !== void 0 ? _a : optionalFunctionValue(defaultValue);
111
- }
112
-
113
- function invariant(condition,
114
- // eslint-disable-next-line @typescript-eslint/ban-types
115
- message) {
116
- if (condition) {
117
- return;
118
- }
119
- // If message is a string object (rather than string literal)
120
- // Throw the value directly as a string
121
- // Alternatively, throw an error with the message
122
- throw message instanceof String
123
- ? message.valueOf()
124
- : new Error(message ? optionalFunctionValue(message) : message);
125
- }
126
-
127
- function isStringValue(v) {
128
- return String(v) === v;
129
- }
130
-
131
- function either(a, b) {
132
- return !!a !== !!b;
133
- }
134
-
135
- function isBoolean(value) {
136
- return !!value === value;
137
- }
138
-
139
- function deferThrow(message) {
140
- setTimeout(() => {
141
- throw new Error(message);
142
- }, 0);
143
- }
144
-
145
- const EVENT_WILDCARD = '*';
146
- function createBus() {
147
- const listeners = {};
148
- return {
149
- emit(event, data) {
150
- getListeners(event)
151
- .concat(getListeners(EVENT_WILDCARD))
152
- .forEach(handler => {
153
- handler(data);
154
- });
155
- },
156
- on(event, handler) {
157
- listeners[event] = getListeners(event).concat(handler);
158
- return {
159
- off() {
160
- listeners[event] = getListeners(event).filter(h => h !== handler);
161
- },
162
- };
163
- },
164
- };
165
- function getListeners(event) {
166
- return listeners[event] || [];
167
- }
168
- }
169
-
170
- var bus = /*#__PURE__*/Object.freeze({
171
- __proto__: null,
172
- createBus: createBus
173
- });
174
-
175
- /**
176
- * @returns a unique numeric id.
177
- */
178
- const seq = genSeq();
179
- function genSeq(namespace) {
180
- return ((n) => () => `${namespace ? namespace + '_' : ''}${n++}`)(0);
181
- }
182
-
183
- function mapFirst(array, callback) {
184
- let broke = false;
185
- let breakoutValue = null;
186
- for (let i = 0; i < array.length; i++) {
187
- callback(array[i], breakout, i);
188
- if (broke) {
189
- return breakoutValue;
190
- }
191
- }
192
- function breakout(conditional, value) {
193
- if (conditional) {
194
- broke = true;
195
- breakoutValue = value;
196
- }
197
- }
198
- }
199
-
200
- function isObject(v) {
201
- return typeof v === 'object' && !isNullish(v);
202
- }
203
-
204
- // The module is named "isArrayValue" since it
205
- // is conflicting with a nested npm dependency.
206
- // We may need to revisit this in the future.
207
- function isArray(value) {
208
- return Boolean(Array.isArray(value));
209
- }
210
- const isNotArray = bindNot(isArray);
211
-
212
- function isEmpty(value) {
213
- if (!value) {
214
- return true;
215
- }
216
- else if (hasOwnProperty(value, 'length')) {
217
- return lengthEquals(value, 0);
218
- }
219
- else if (isObject(value)) {
220
- return lengthEquals(Object.keys(value), 0);
221
- }
222
- return false;
223
- }
224
- const isNotEmpty = bindNot(isEmpty);
225
-
226
- function isPositive(value) {
227
- return greaterThan(value, 0);
228
- }
229
-
230
- const regexp = /{(.*?)}/g;
231
- function text(str, ...substitutions) {
232
- const first = substitutions[0];
233
- if (isObject(first)) {
234
- return str.replace(regexp, (placeholder, key) => {
235
- var _a;
236
- return `${(_a = first[key]) !== null && _a !== void 0 ? _a : placeholder}`;
237
- });
238
- }
239
- const subs = [...substitutions];
240
- return str.replace(regexp, placeholder => {
241
- return `${isEmpty(subs) ? placeholder : subs.shift()}`;
242
- });
243
- }
244
-
245
- const STATE_WILD_CARD = '*';
246
- function StateMachine(machine) {
247
- let state = machine.initial;
248
- const api = { getState, initial, staticTransition, transition };
249
- return api;
250
- function getState() {
251
- return state;
252
- }
253
- function initial() {
254
- return machine.initial;
255
- }
256
- function transition(action, payload) {
257
- return (state = staticTransition(state, action, payload));
258
- }
259
- // eslint-disable-next-line complexity
260
- function staticTransition(from, action, payload) {
261
- var _a, _b, _c;
262
- const transitionTo = (_b = (_a = machine.states[from]) === null || _a === void 0 ? void 0 : _a[action]) !== null && _b !== void 0 ? _b :
263
- // @ts-expect-error - This is a valid state
264
- (_c = machine.states[STATE_WILD_CARD]) === null || _c === void 0 ? void 0 : _c[action];
265
- let target = transitionTo;
266
- if (Array.isArray(target)) {
267
- const [, conditional] = target;
268
- if (!conditional(payload)) {
269
- return from;
270
- }
271
- target = target[0];
272
- }
273
- if (!target || target === from) {
274
- return from;
275
- }
276
- return target;
277
- }
278
- }
279
-
280
- function nonnullish(value, error) {
281
- invariant(!isNullish(value), error);
282
- return value;
283
- }
284
-
285
- function createTinyState(initialValue) {
286
- let value;
287
- resetValue();
288
- return () => [value, setValue, resetValue];
289
- function setValue(nextValue) {
290
- value = optionalFunctionValue(nextValue, value);
291
- }
292
- function resetValue() {
293
- setValue(optionalFunctionValue(initialValue));
294
- }
295
- }
296
-
297
- var tinyState = /*#__PURE__*/Object.freeze({
298
- __proto__: null,
299
- createTinyState: createTinyState
300
- });
301
-
302
- // eslint-disable-next-line @typescript-eslint/ban-types
303
- function StringObject(value) {
304
- return new String(optionalFunctionValue(value));
305
- }
306
-
307
- // eslint-disable-next-line @typescript-eslint/no-empty-function
308
- function noop() { }
309
-
310
- function all(...p) {
311
- return (value) => isEmpty(p)
312
- ? false
313
- : p.every(predicate => optionalFunctionValue(predicate, value));
314
- }
315
- function any(...p) {
316
- return (value) => isEmpty(p)
317
- ? false
318
- : p.some(predicate => optionalFunctionValue(predicate, value));
319
- }
320
-
321
- var Predicates = /*#__PURE__*/Object.freeze({
322
- __proto__: null,
323
- all: all,
324
- any: any
325
- });
326
-
327
- function freezeAssign(...args) {
328
- return Object.freeze(assign(...args));
329
- }
330
-
331
- exports.Predicates = Predicates;
332
- exports.StateMachine = StateMachine;
333
- exports.StringObject = StringObject;
334
- exports.asArray = asArray;
335
- exports.assign = assign;
336
- exports.bindNot = bindNot;
337
- exports.bus = bus;
338
- exports.cache = createCache;
339
- exports.callEach = callEach;
340
- exports.defaultTo = defaultTo;
341
- exports.deferThrow = deferThrow;
342
- exports.either = either;
343
- exports.freezeAssign = freezeAssign;
344
- exports.genSeq = genSeq;
345
- exports.greaterThan = greaterThan;
346
- exports.hasOwnProperty = hasOwnProperty;
347
- exports.invariant = invariant;
348
- exports.isArray = isArray;
349
- exports.isBoolean = isBoolean;
350
- exports.isEmpty = isEmpty;
351
- exports.isFunction = isFunction;
352
- exports.isNotArray = isNotArray;
353
- exports.isNotEmpty = isNotEmpty;
354
- exports.isNotNull = isNotNull;
355
- exports.isNotNullish = isNotNullish;
356
- exports.isNotNumeric = isNotNumeric;
357
- exports.isNotUndefined = isNotUndefined;
358
- exports.isNull = isNull;
359
- exports.isNullish = isNullish;
360
- exports.isNumeric = isNumeric;
361
- exports.isObject = isObject;
362
- exports.isPositive = isPositive;
363
- exports.isPromise = isPromise;
364
- exports.isStringValue = isStringValue;
365
- exports.isUndefined = isUndefined;
366
- exports.lengthEquals = lengthEquals;
367
- exports.lengthNotEquals = lengthNotEquals;
368
- exports.longerThan = longerThan;
369
- exports.mapFirst = mapFirst;
370
- exports.nonnullish = nonnullish;
371
- exports.noop = noop;
372
- exports.numberEquals = numberEquals;
373
- exports.numberNotEquals = numberNotEquals;
374
- exports.optionalFunctionValue = optionalFunctionValue;
375
- exports.seq = seq;
376
- exports.text = text;
377
- exports.tinyState = tinyState;
378
- //# sourceMappingURL=vest-utils.development.js.map