vest-utils 1.0.3 → 1.1.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.
@@ -142,24 +142,27 @@ function deferThrow(message) {
142
142
  }, 0);
143
143
  }
144
144
 
145
+ const EVENT_WILDCARD = '*';
145
146
  function createBus() {
146
147
  const listeners = {};
147
148
  return {
148
149
  emit(event, data) {
149
- listener(event).forEach(handler => {
150
+ getListeners(event)
151
+ .concat(getListeners(EVENT_WILDCARD))
152
+ .forEach(handler => {
150
153
  handler(data);
151
154
  });
152
155
  },
153
156
  on(event, handler) {
154
- listeners[event] = listener(event).concat(handler);
157
+ listeners[event] = getListeners(event).concat(handler);
155
158
  return {
156
159
  off() {
157
- listeners[event] = listener(event).filter(h => h !== handler);
160
+ listeners[event] = getListeners(event).filter(h => h !== handler);
158
161
  },
159
162
  };
160
163
  },
161
164
  };
162
- function listener(event) {
165
+ function getListeners(event) {
163
166
  return listeners[event] || [];
164
167
  }
165
168
  }
@@ -1 +1 @@
1
- {"version":3,"file":"vest-utils.development.js","sources":["../../src/bindNot.ts","../../src/isNumeric.ts","../../src/numberEquals.ts","../../src/lengthEquals.ts","../../src/greaterThan.ts","../../src/longerThan.ts","../../src/cache.ts","../../src/isNull.ts","../../src/isUndefined.ts","../../src/isNullish.ts","../../src/asArray.ts","../../src/callEach.ts","../../src/hasOwnProperty.ts","../../src/isFunction.ts","../../src/isPromise.ts","../../src/optionalFunctionValue.ts","../../src/assign.ts","../../src/defaultTo.ts","../../src/invariant.ts","../../src/isStringValue.ts","../../src/either.ts","../../src/isBooleanValue.ts","../../src/deferThrow.ts","../../src/bus.ts","../../src/seq.ts","../../src/mapFirst.ts","../../src/valueIsObject.ts","../../src/isArrayValue.ts","../../src/isEmpty.ts","../../src/isPositive.ts","../../src/text.ts","../../src/SimpleStateMachine.ts","../../src/nonnullish.ts","../../src/tinyState.ts","../../src/StringObject.ts","../../src/noop.ts"],"sourcesContent":["export default function bindNot<T extends (...args: any[]) => unknown>(fn: T) {\n return (...args: Parameters<T>): boolean => !fn(...args);\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 { isNumeric } from 'isNumeric';\n\nexport function greaterThan(\n value: number | string,\n gt: number | string\n): boolean {\n return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);\n}\n","import { greaterThan } from 'greaterThan';\n\nexport function longerThan(\n value: string | unknown[],\n arg1: string | number\n): boolean {\n return greaterThan(value.length, arg1);\n}\n","import { lengthEquals } from 'lengthEquals';\nimport { longerThan } from 'longerThan';\nimport { Nullable } from 'utilityTypes';\n\n/**\n * Creates a cache function\n */\nexport default function createCache<T = unknown>(maxSize = 1): CacheApi<T> {\n const cacheStorage: Array<[unknown[], T]> = [];\n\n const cache = (\n deps: unknown[],\n cacheAction: (...args: unknown[]) => T\n ): T => {\n const cacheHit = cache.get(deps);\n // cache hit is not null\n if (cacheHit) return cacheHit[1];\n\n const result = cacheAction();\n cacheStorage.unshift([deps.concat(), result]);\n\n if (longerThan(cacheStorage, maxSize)) cacheStorage.length = maxSize;\n\n return result;\n };\n\n // invalidate an item in the cache by its dependencies\n cache.invalidate = (deps: any[]): void => {\n const index = findIndex(deps);\n if (index > -1) cacheStorage.splice(index, 1);\n };\n\n // Retrieves an item from the cache.\n cache.get = (deps: unknown[]): Nullable<[unknown[], T]> =>\n cacheStorage[findIndex(deps)] || null;\n\n return cache;\n\n function findIndex(deps: unknown[]): number {\n return cacheStorage.findIndex(\n ([cachedDeps]) =>\n lengthEquals(deps, cachedDeps.length) &&\n deps.every((dep, i) => dep === cachedDeps[i])\n );\n }\n}\n\nexport type CacheApi<T = unknown> = {\n (deps: unknown[], cacheAction: (...args: unknown[]) => T): T;\n get(deps: unknown[]): Nullable<[unknown[], T]>;\n invalidate(item: any): void;\n};\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","export default function asArray<T>(possibleArg: T | T[]): T[] {\n return ([] as T[]).concat(possibleArg);\n}\n","import type { CB } from 'utilityTypes';\n\nexport default function callEach(arr: CB[]): void {\n return arr.forEach(fn => fn());\n}\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","export default function isFunction(\n value: unknown\n): value is (...args: unknown[]) => unknown {\n return typeof value === 'function';\n}\n","import isFunction from 'isFunction';\n\nexport default function isPromise(value: any): value is Promise<unknown> {\n return !!value && isFunction(value.then);\n}\n","import isFunction from 'isFunction';\nimport { DynamicValue } from 'utilityTypes';\n\nexport default function optionalFunctionValue<T>(\n value: DynamicValue<T>,\n ...args: unknown[]\n): T {\n return isFunction(value) ? value(...args) : value;\n}\n","export default Object.assign;\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport { DynamicValue, Nullish } from 'utilityTypes';\n\nexport default function defaultTo<T>(\n value: DynamicValue<Nullish<T>>,\n defaultValue: DynamicValue<T>\n): T {\n return optionalFunctionValue(value) ?? optionalFunctionValue(defaultValue);\n}\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport type { Stringable } from 'utilityTypes';\n\nexport default function invariant(\n condition: any,\n // eslint-disable-next-line @typescript-eslint/ban-types\n message?: String | Stringable\n): asserts condition {\n if (condition) {\n return;\n }\n\n // If message is a string object (rather than string literal)\n // Throw the value directly as a string\n // Alternatively, throw an error with the message\n throw message instanceof String\n ? message.valueOf()\n : new Error(message ? optionalFunctionValue(message) : message);\n}\n","export default function isStringValue(v: unknown): v is string {\n return String(v) === v;\n}\n","export default function either(a: unknown, b: unknown): boolean {\n return !!a !== !!b;\n}\n","export default function isBoolean(value: unknown): value is boolean {\n return !!value === value;\n}\n","export default function deferThrow(message?: string): void {\n setTimeout(() => {\n throw new Error(message);\n }, 0);\n}\n\nexport type TDeferThrow = typeof deferThrow;\n","import type { CB } from 'utilityTypes';\n\nexport function createBus(): BusType {\n const listeners: Record<string, CB[]> = {};\n\n return {\n emit(event: string, data?: any) {\n listener(event).forEach(handler => {\n handler(data);\n });\n },\n\n on(event: string, handler: CB): OnReturn {\n listeners[event] = listener(event).concat(handler);\n\n return {\n off() {\n listeners[event] = listener(event).filter(h => h !== handler);\n },\n };\n },\n };\n\n function listener(event: string): CB[] {\n return listeners[event] || [];\n }\n}\n\ntype OnReturn = { off: CB<void> };\n\nexport type BusType = {\n on: (event: string, handler: CB) => OnReturn;\n emit: (event: string, data?: any) => void;\n};\n","/**\n * @returns a unique numeric id.\n */\n\nimport { CB } from 'utilityTypes';\n\nconst seq = genSeq();\n\nexport default seq;\n\nexport function genSeq(namespace?: string): CB<string> {\n return (\n (n: number) => () =>\n `${namespace ? namespace + '_' : ''}${n++}`\n )(0);\n}\n","export default function mapFirst<T>(\n array: T[],\n callback: (\n item: T,\n breakout: (conditional: boolean, value: unknown) => void,\n index: number\n ) => unknown\n): any {\n let broke = false;\n let breakoutValue = null;\n for (let i = 0; i < array.length; i++) {\n callback(array[i], breakout, i);\n\n if (broke) {\n return breakoutValue;\n }\n }\n\n function breakout(conditional: boolean, value: unknown) {\n if (conditional) {\n broke = true;\n breakoutValue = value;\n }\n }\n}\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';\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';\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","import { greaterThan } from 'greaterThan';\n\nexport function isPositive(value: number | string): boolean {\n return greaterThan(value, 0);\n}\n","import { isEmpty } from 'isEmpty';\nimport { isObject } from 'valueIsObject';\n\nconst regexp = /{(.*?)}/g;\n\nexport function text(str: string, ...substitutions: Array<unknown>): string {\n const first = substitutions[0];\n\n if (isObject(first)) {\n return str.replace(regexp, (placeholder, key: string) => {\n return `${first[key] ?? placeholder}`;\n });\n }\n\n const subs = [...substitutions];\n\n return str.replace(regexp, placeholder => {\n return `${isEmpty(subs) ? placeholder : subs.shift()}`;\n });\n}\n","import { CB } from 'utilityTypes';\n\nconst STATE_WILD_CARD = '*';\ntype TStateWildCard = typeof STATE_WILD_CARD;\n\nexport type TStateMachine<S extends string, A extends string> = {\n initial: S;\n states: Partial<{\n [key in S & TStateWildCard]: {\n [key in A]?: S | [S, CB<boolean, [payload?: any]>];\n };\n }>;\n};\n\nexport type TStateMachineApi<S extends string, A extends string> = {\n getState: CB<S>;\n transition: (action: A, payload?: any) => void;\n staticTransition: (from: S, action: A, payload?: any) => S;\n};\n\nexport function StateMachine<S extends string, A extends string>(\n machine: TStateMachine<S, A>\n): TStateMachineApi<S, A> {\n let state = machine.initial;\n\n const api = { getState, transition, staticTransition };\n\n return api;\n\n function getState(): S {\n return state;\n }\n\n function transition(action: A, payload?: any): S {\n return (state = staticTransition(state, action, payload));\n }\n\n // eslint-disable-next-line complexity\n function staticTransition(from: S, action: A, payload?: any): S {\n const transitionTo =\n machine.states[from]?.[action] ??\n // @ts-expect-error - This is a valid state\n machine.states[STATE_WILD_CARD]?.[action];\n\n let target = transitionTo;\n\n if (Array.isArray(target)) {\n const [, conditional] = target;\n if (!conditional(payload)) {\n return from;\n }\n\n target = target[0];\n }\n\n if (!target || target === from) {\n return from;\n }\n\n return target as S;\n }\n}\n","import invariant from 'invariant';\n\nimport { isNullish } from 'isNullish';\nimport { Nullish } from 'utilityTypes';\n\nexport function nonnullish<T>(value: Nullish<T>, error?: string): T {\n invariant(!isNullish(value), error);\n\n return value;\n}\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport { DynamicValue } from 'utilityTypes';\n\nexport function createTinyState<S>(\n initialValue: SetValueInput<S>\n): TinyState<S> {\n let value: S;\n\n resetValue();\n\n return () => [value, setValue, resetValue];\n\n function setValue(nextValue: SetValueInput<S>) {\n value = optionalFunctionValue(nextValue, value);\n }\n\n function resetValue() {\n setValue(optionalFunctionValue(initialValue));\n }\n}\n\nexport type TinyState<S> = () => [\n value: S,\n setValue: (next: SetValueInput<S>) => void,\n resetValue: () => void\n];\n\ntype SetValueInput<S> = DynamicValue<S, [prev: S]>;\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport type { Stringable } from 'utilityTypes';\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function StringObject(value?: Stringable): String {\n return new String(optionalFunctionValue(value));\n}\n","// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport function noop() {}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vest-utils.development.js","sources":["../../src/bindNot.ts","../../src/isNumeric.ts","../../src/numberEquals.ts","../../src/lengthEquals.ts","../../src/greaterThan.ts","../../src/longerThan.ts","../../src/cache.ts","../../src/isNull.ts","../../src/isUndefined.ts","../../src/isNullish.ts","../../src/asArray.ts","../../src/callEach.ts","../../src/hasOwnProperty.ts","../../src/isFunction.ts","../../src/isPromise.ts","../../src/optionalFunctionValue.ts","../../src/assign.ts","../../src/defaultTo.ts","../../src/invariant.ts","../../src/isStringValue.ts","../../src/either.ts","../../src/isBooleanValue.ts","../../src/deferThrow.ts","../../src/bus.ts","../../src/seq.ts","../../src/mapFirst.ts","../../src/valueIsObject.ts","../../src/isArrayValue.ts","../../src/isEmpty.ts","../../src/isPositive.ts","../../src/text.ts","../../src/SimpleStateMachine.ts","../../src/nonnullish.ts","../../src/tinyState.ts","../../src/StringObject.ts","../../src/noop.ts"],"sourcesContent":["export default function bindNot<T extends (...args: any[]) => unknown>(fn: T) {\n return (...args: Parameters<T>): boolean => !fn(...args);\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 { isNumeric } from 'isNumeric';\n\nexport function greaterThan(\n value: number | string,\n gt: number | string\n): boolean {\n return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);\n}\n","import { greaterThan } from 'greaterThan';\n\nexport function longerThan(\n value: string | unknown[],\n arg1: string | number\n): boolean {\n return greaterThan(value.length, arg1);\n}\n","import { lengthEquals } from 'lengthEquals';\nimport { longerThan } from 'longerThan';\nimport { Nullable } from 'utilityTypes';\n\n/**\n * Creates a cache function\n */\nexport default function createCache<T = unknown>(maxSize = 1): CacheApi<T> {\n const cacheStorage: Array<[unknown[], T]> = [];\n\n const cache = (\n deps: unknown[],\n cacheAction: (...args: unknown[]) => T\n ): T => {\n const cacheHit = cache.get(deps);\n // cache hit is not null\n if (cacheHit) return cacheHit[1];\n\n const result = cacheAction();\n cacheStorage.unshift([deps.concat(), result]);\n\n if (longerThan(cacheStorage, maxSize)) cacheStorage.length = maxSize;\n\n return result;\n };\n\n // invalidate an item in the cache by its dependencies\n cache.invalidate = (deps: any[]): void => {\n const index = findIndex(deps);\n if (index > -1) cacheStorage.splice(index, 1);\n };\n\n // Retrieves an item from the cache.\n cache.get = (deps: unknown[]): Nullable<[unknown[], T]> =>\n cacheStorage[findIndex(deps)] || null;\n\n return cache;\n\n function findIndex(deps: unknown[]): number {\n return cacheStorage.findIndex(\n ([cachedDeps]) =>\n lengthEquals(deps, cachedDeps.length) &&\n deps.every((dep, i) => dep === cachedDeps[i])\n );\n }\n}\n\nexport type CacheApi<T = unknown> = {\n (deps: unknown[], cacheAction: (...args: unknown[]) => T): T;\n get(deps: unknown[]): Nullable<[unknown[], T]>;\n invalidate(item: any): void;\n};\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","export default function asArray<T>(possibleArg: T | T[]): T[] {\n return ([] as T[]).concat(possibleArg);\n}\n","import type { CB } from 'utilityTypes';\n\nexport default function callEach(arr: CB[]): void {\n return arr.forEach(fn => fn());\n}\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","export default function isFunction(\n value: unknown\n): value is (...args: unknown[]) => unknown {\n return typeof value === 'function';\n}\n","import isFunction from 'isFunction';\n\nexport default function isPromise(value: any): value is Promise<unknown> {\n return !!value && isFunction(value.then);\n}\n","import isFunction from 'isFunction';\nimport { DynamicValue } from 'utilityTypes';\n\nexport default function optionalFunctionValue<T>(\n value: DynamicValue<T>,\n ...args: unknown[]\n): T {\n return isFunction(value) ? value(...args) : value;\n}\n","export default Object.assign;\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport { DynamicValue, Nullish } from 'utilityTypes';\n\nexport default function defaultTo<T>(\n value: DynamicValue<Nullish<T>>,\n defaultValue: DynamicValue<T>\n): T {\n return optionalFunctionValue(value) ?? optionalFunctionValue(defaultValue);\n}\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport type { Stringable } from 'utilityTypes';\n\nexport default function invariant(\n condition: any,\n // eslint-disable-next-line @typescript-eslint/ban-types\n message?: String | Stringable\n): asserts condition {\n if (condition) {\n return;\n }\n\n // If message is a string object (rather than string literal)\n // Throw the value directly as a string\n // Alternatively, throw an error with the message\n throw message instanceof String\n ? message.valueOf()\n : new Error(message ? optionalFunctionValue(message) : message);\n}\n","export default function isStringValue(v: unknown): v is string {\n return String(v) === v;\n}\n","export default function either(a: unknown, b: unknown): boolean {\n return !!a !== !!b;\n}\n","export default function isBoolean(value: unknown): value is boolean {\n return !!value === value;\n}\n","export default function deferThrow(message?: string): void {\n setTimeout(() => {\n throw new Error(message);\n }, 0);\n}\n\nexport type TDeferThrow = typeof deferThrow;\n","import type { CB } from 'utilityTypes';\n\nconst EVENT_WILDCARD = '*';\n\nexport function createBus(): BusType {\n const listeners: Record<string, CB[]> = {};\n\n return {\n emit(event: string, data?: any) {\n getListeners(event)\n .concat(getListeners(EVENT_WILDCARD))\n .forEach(handler => {\n handler(data);\n });\n },\n\n on(event: string, handler: CB): OnReturn {\n listeners[event] = getListeners(event).concat(handler);\n\n return {\n off() {\n listeners[event] = getListeners(event).filter(h => h !== handler);\n },\n };\n },\n };\n\n function getListeners(event: string): CB[] {\n return listeners[event] || [];\n }\n}\n\ntype OnReturn = { off: CB<void> };\n\nexport type BusType = {\n on: (event: string, handler: CB) => OnReturn;\n emit: (event: string, data?: any) => void;\n};\n","/**\n * @returns a unique numeric id.\n */\n\nimport { CB } from 'utilityTypes';\n\nconst seq = genSeq();\n\nexport default seq;\n\nexport function genSeq(namespace?: string): CB<string> {\n return (\n (n: number) => () =>\n `${namespace ? namespace + '_' : ''}${n++}`\n )(0);\n}\n","export default function mapFirst<T>(\n array: T[],\n callback: (\n item: T,\n breakout: (conditional: boolean, value: unknown) => void,\n index: number\n ) => unknown\n): any {\n let broke = false;\n let breakoutValue = null;\n for (let i = 0; i < array.length; i++) {\n callback(array[i], breakout, i);\n\n if (broke) {\n return breakoutValue;\n }\n }\n\n function breakout(conditional: boolean, value: unknown) {\n if (conditional) {\n broke = true;\n breakoutValue = value;\n }\n }\n}\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';\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';\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","import { greaterThan } from 'greaterThan';\n\nexport function isPositive(value: number | string): boolean {\n return greaterThan(value, 0);\n}\n","import { isEmpty } from 'isEmpty';\nimport { isObject } from 'valueIsObject';\n\nconst regexp = /{(.*?)}/g;\n\nexport function text(str: string, ...substitutions: Array<unknown>): string {\n const first = substitutions[0];\n\n if (isObject(first)) {\n return str.replace(regexp, (placeholder, key: string) => {\n return `${first[key] ?? placeholder}`;\n });\n }\n\n const subs = [...substitutions];\n\n return str.replace(regexp, placeholder => {\n return `${isEmpty(subs) ? placeholder : subs.shift()}`;\n });\n}\n","import { CB } from 'utilityTypes';\n\nconst STATE_WILD_CARD = '*';\ntype TStateWildCard = typeof STATE_WILD_CARD;\n\nexport type TStateMachine<S extends string, A extends string> = {\n initial: S;\n states: Partial<{\n [key in S & TStateWildCard]: {\n [key in A]?: S | [S, CB<boolean, [payload?: any]>];\n };\n }>;\n};\n\nexport type TStateMachineApi<S extends string, A extends string> = {\n getState: CB<S>;\n transition: (action: A, payload?: any) => void;\n staticTransition: (from: S, action: A, payload?: any) => S;\n};\n\nexport function StateMachine<S extends string, A extends string>(\n machine: TStateMachine<S, A>\n): TStateMachineApi<S, A> {\n let state = machine.initial;\n\n const api = { getState, transition, staticTransition };\n\n return api;\n\n function getState(): S {\n return state;\n }\n\n function transition(action: A, payload?: any): S {\n return (state = staticTransition(state, action, payload));\n }\n\n // eslint-disable-next-line complexity\n function staticTransition(from: S, action: A, payload?: any): S {\n const transitionTo =\n machine.states[from]?.[action] ??\n // @ts-expect-error - This is a valid state\n machine.states[STATE_WILD_CARD]?.[action];\n\n let target = transitionTo;\n\n if (Array.isArray(target)) {\n const [, conditional] = target;\n if (!conditional(payload)) {\n return from;\n }\n\n target = target[0];\n }\n\n if (!target || target === from) {\n return from;\n }\n\n return target as S;\n }\n}\n","import invariant from 'invariant';\n\nimport { isNullish } from 'isNullish';\nimport { Nullish } from 'utilityTypes';\n\nexport function nonnullish<T>(value: Nullish<T>, error?: string): T {\n invariant(!isNullish(value), error);\n\n return value;\n}\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport { DynamicValue } from 'utilityTypes';\n\nexport function createTinyState<S>(\n initialValue: SetValueInput<S>\n): TinyState<S> {\n let value: S;\n\n resetValue();\n\n return () => [value, setValue, resetValue];\n\n function setValue(nextValue: SetValueInput<S>) {\n value = optionalFunctionValue(nextValue, value);\n }\n\n function resetValue() {\n setValue(optionalFunctionValue(initialValue));\n }\n}\n\nexport type TinyState<S> = () => [\n value: S,\n setValue: (next: SetValueInput<S>) => void,\n resetValue: () => void\n];\n\ntype SetValueInput<S> = DynamicValue<S, [prev: S]>;\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport type { Stringable } from 'utilityTypes';\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function StringObject(value?: Stringable): String {\n return new String(optionalFunctionValue(value));\n}\n","// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport function noop() {}\n"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";function t(t){return(...n)=>!t(...n)}function n(t){const n=String(t),r=Number(t),e=!isNaN(parseFloat(n))&&!isNaN(Number(t))&&isFinite(r);return Boolean(e)}const r=t(n);function e(t,r){return n(t)&&n(r)&&Number(t)===Number(r)}const o=t(e);function i(t,n){return e(t.length,n)}const u=t(i);function s(t,r){return n(t)&&n(r)&&Number(t)>Number(r)}function c(t,n){return s(t.length,n)}function f(t){return null===t}const a=t(f);function l(t){return void 0===t}const p=t(l);function x(t){return f(t)||l(t)}const h=t(x);function N(t,n){return Object.prototype.hasOwnProperty.call(t,n)}function g(t){return"function"==typeof t}function v(t,...n){return g(t)?t(...n):t}var b=Object.assign;function d(t,n){if(!t)throw n instanceof String?n.valueOf():new Error(n?v(n):n)}var y=Object.freeze({__proto__:null,createBus:function(){const t={};return{emit(t,r){n(t).forEach((t=>{t(r)}))},on:(r,e)=>(t[r]=n(r).concat(e),{off(){t[r]=n(r).filter((t=>t!==e))}})};function n(n){return t[n]||[]}}});const m=E();function E(t){return n=0,()=>`${t?t+"_":""}${n++}`;var n}function S(t){return"object"==typeof t&&!x(t)}function O(t){return Boolean(Array.isArray(t))}const _=t(O);function j(t){return!t||(N(t,"length")?i(t,0):!!S(t)&&i(Object.keys(t),0))}const w=t(j);const A=/{(.*?)}/g;var T=Object.freeze({__proto__:null,createTinyState:function(t){let n;return e(),()=>[n,r,e];function r(t){n=v(t,n)}function e(){r(v(t))}}});exports.StateMachine=function(t){let n=t.initial;return{getState:function(){return n},transition:function(t,e){return n=r(n,t,e)},staticTransition:r};function r(n,r,e){var o,i,u;let s=null!==(i=null===(o=t.states[n])||void 0===o?void 0:o[r])&&void 0!==i?i:null===(u=t.states["*"])||void 0===u?void 0:u[r];if(Array.isArray(s)){const[,t]=s;if(!t(e))return n;s=s[0]}return s&&s!==n?s:n}},exports.StringObject=function(t){return new String(v(t))},exports.asArray=function(t){return[].concat(t)},exports.assign=b,exports.bindNot=t,exports.bus=y,exports.cache=function(t=1){const n=[],r=(e,o)=>{const i=r.get(e);if(i)return i[1];const u=o();return n.unshift([e.concat(),u]),c(n,t)&&(n.length=t),u};return r.invalidate=t=>{const r=e(t);r>-1&&n.splice(r,1)},r.get=t=>n[e(t)]||null,r;function e(t){return n.findIndex((([n])=>i(t,n.length)&&t.every(((t,r)=>t===n[r]))))}},exports.callEach=function(t){return t.forEach((t=>t()))},exports.defaultTo=function(t,n){var r;return null!==(r=v(t))&&void 0!==r?r:v(n)},exports.deferThrow=function(t){setTimeout((()=>{throw new Error(t)}),0)},exports.either=function(t,n){return!!t!=!!n},exports.genSeq=E,exports.greaterThan=s,exports.hasOwnProperty=N,exports.invariant=d,exports.isArray=O,exports.isBoolean=function(t){return!!t===t},exports.isEmpty=j,exports.isFunction=g,exports.isNotArray=_,exports.isNotEmpty=w,exports.isNotNull=a,exports.isNotNullish=h,exports.isNotNumeric=r,exports.isNotUndefined=p,exports.isNull=f,exports.isNullish=x,exports.isNumeric=n,exports.isObject=S,exports.isPositive=function(t){return s(t,0)},exports.isPromise=function(t){return!!t&&g(t.then)},exports.isStringValue=function(t){return String(t)===t},exports.isUndefined=l,exports.lengthEquals=i,exports.lengthNotEquals=u,exports.longerThan=c,exports.mapFirst=function(t,n){let r=!1,e=null;for(let i=0;i<t.length;i++)if(n(t[i],o,i),r)return e;function o(t,n){t&&(r=!0,e=n)}},exports.nonnullish=function(t,n){return d(!x(t),n),t},exports.noop=function(){},exports.numberEquals=e,exports.numberNotEquals=o,exports.optionalFunctionValue=v,exports.seq=m,exports.text=function(t,...n){const r=n[0];if(S(r))return t.replace(A,((t,n)=>{var e;return`${null!==(e=r[n])&&void 0!==e?e:t}`}));const e=[...n];return t.replace(A,(t=>`${j(e)?t:e.shift()}`))},exports.tinyState=T;
1
+ "use strict";function t(t){return(...n)=>!t(...n)}function n(t){const n=String(t),r=Number(t),e=!isNaN(parseFloat(n))&&!isNaN(Number(t))&&isFinite(r);return Boolean(e)}const r=t(n);function e(t,r){return n(t)&&n(r)&&Number(t)===Number(r)}const o=t(e);function i(t,n){return e(t.length,n)}const u=t(i);function s(t,r){return n(t)&&n(r)&&Number(t)>Number(r)}function c(t,n){return s(t.length,n)}function a(t){return null===t}const f=t(a);function l(t){return void 0===t}const p=t(l);function x(t){return a(t)||l(t)}const h=t(x);function N(t,n){return Object.prototype.hasOwnProperty.call(t,n)}function g(t){return"function"==typeof t}function v(t,...n){return g(t)?t(...n):t}var b=Object.assign;function d(t,n){if(!t)throw n instanceof String?n.valueOf():new Error(n?v(n):n)}var y=Object.freeze({__proto__:null,createBus:function(){const t={};return{emit(t,r){n(t).concat(n("*")).forEach((t=>{t(r)}))},on:(r,e)=>(t[r]=n(r).concat(e),{off(){t[r]=n(r).filter((t=>t!==e))}})};function n(n){return t[n]||[]}}});const m=E();function E(t){return n=0,()=>`${t?t+"_":""}${n++}`;var n}function S(t){return"object"==typeof t&&!x(t)}function O(t){return Boolean(Array.isArray(t))}const _=t(O);function j(t){return!t||(N(t,"length")?i(t,0):!!S(t)&&i(Object.keys(t),0))}const w=t(j);const A=/{(.*?)}/g;var T=Object.freeze({__proto__:null,createTinyState:function(t){let n;return e(),()=>[n,r,e];function r(t){n=v(t,n)}function e(){r(v(t))}}});exports.StateMachine=function(t){let n=t.initial;return{getState:function(){return n},transition:function(t,e){return n=r(n,t,e)},staticTransition:r};function r(n,r,e){var o,i,u;let s=null!==(i=null===(o=t.states[n])||void 0===o?void 0:o[r])&&void 0!==i?i:null===(u=t.states["*"])||void 0===u?void 0:u[r];if(Array.isArray(s)){const[,t]=s;if(!t(e))return n;s=s[0]}return s&&s!==n?s:n}},exports.StringObject=function(t){return new String(v(t))},exports.asArray=function(t){return[].concat(t)},exports.assign=b,exports.bindNot=t,exports.bus=y,exports.cache=function(t=1){const n=[],r=(e,o)=>{const i=r.get(e);if(i)return i[1];const u=o();return n.unshift([e.concat(),u]),c(n,t)&&(n.length=t),u};return r.invalidate=t=>{const r=e(t);r>-1&&n.splice(r,1)},r.get=t=>n[e(t)]||null,r;function e(t){return n.findIndex((([n])=>i(t,n.length)&&t.every(((t,r)=>t===n[r]))))}},exports.callEach=function(t){return t.forEach((t=>t()))},exports.defaultTo=function(t,n){var r;return null!==(r=v(t))&&void 0!==r?r:v(n)},exports.deferThrow=function(t){setTimeout((()=>{throw new Error(t)}),0)},exports.either=function(t,n){return!!t!=!!n},exports.genSeq=E,exports.greaterThan=s,exports.hasOwnProperty=N,exports.invariant=d,exports.isArray=O,exports.isBoolean=function(t){return!!t===t},exports.isEmpty=j,exports.isFunction=g,exports.isNotArray=_,exports.isNotEmpty=w,exports.isNotNull=f,exports.isNotNullish=h,exports.isNotNumeric=r,exports.isNotUndefined=p,exports.isNull=a,exports.isNullish=x,exports.isNumeric=n,exports.isObject=S,exports.isPositive=function(t){return s(t,0)},exports.isPromise=function(t){return!!t&&g(t.then)},exports.isStringValue=function(t){return String(t)===t},exports.isUndefined=l,exports.lengthEquals=i,exports.lengthNotEquals=u,exports.longerThan=c,exports.mapFirst=function(t,n){let r=!1,e=null;for(let i=0;i<t.length;i++)if(n(t[i],o,i),r)return e;function o(t,n){t&&(r=!0,e=n)}},exports.nonnullish=function(t,n){return d(!x(t),n),t},exports.noop=function(){},exports.numberEquals=e,exports.numberNotEquals=o,exports.optionalFunctionValue=v,exports.seq=m,exports.text=function(t,...n){const r=n[0];if(S(r))return t.replace(A,((t,n)=>{var e;return`${null!==(e=r[n])&&void 0!==e?e:t}`}));const e=[...n];return t.replace(A,(t=>`${j(e)?t:e.shift()}`))},exports.tinyState=T;
2
2
  //# sourceMappingURL=vest-utils.production.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vest-utils.production.js","sources":["../../src/bindNot.ts","../../src/isNumeric.ts","../../src/numberEquals.ts","../../src/lengthEquals.ts","../../src/greaterThan.ts","../../src/longerThan.ts","../../src/isNull.ts","../../src/isUndefined.ts","../../src/isNullish.ts","../../src/hasOwnProperty.ts","../../src/isFunction.ts","../../src/optionalFunctionValue.ts","../../src/assign.ts","../../src/invariant.ts","../../src/bus.ts","../../src/seq.ts","../../src/valueIsObject.ts","../../src/isArrayValue.ts","../../src/isEmpty.ts","../../src/text.ts","../../src/tinyState.ts","../../src/SimpleStateMachine.ts","../../src/StringObject.ts","../../src/asArray.ts","../../src/cache.ts","../../src/callEach.ts","../../src/defaultTo.ts","../../src/deferThrow.ts","../../src/either.ts","../../src/isBooleanValue.ts","../../src/isPositive.ts","../../src/isPromise.ts","../../src/isStringValue.ts","../../src/mapFirst.ts","../../src/nonnullish.ts","../../src/noop.ts"],"sourcesContent":["export default function bindNot<T extends (...args: any[]) => unknown>(fn: T) {\n return (...args: Parameters<T>): boolean => !fn(...args);\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 { isNumeric } from 'isNumeric';\n\nexport function greaterThan(\n value: number | string,\n gt: number | string\n): boolean {\n return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);\n}\n","import { greaterThan } from 'greaterThan';\n\nexport function longerThan(\n value: string | unknown[],\n arg1: string | number\n): boolean {\n return greaterThan(value.length, arg1);\n}\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","/**\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","export default function isFunction(\n value: unknown\n): value is (...args: unknown[]) => unknown {\n return typeof value === 'function';\n}\n","import isFunction from 'isFunction';\nimport { DynamicValue } from 'utilityTypes';\n\nexport default function optionalFunctionValue<T>(\n value: DynamicValue<T>,\n ...args: unknown[]\n): T {\n return isFunction(value) ? value(...args) : value;\n}\n","export default Object.assign;\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport type { Stringable } from 'utilityTypes';\n\nexport default function invariant(\n condition: any,\n // eslint-disable-next-line @typescript-eslint/ban-types\n message?: String | Stringable\n): asserts condition {\n if (condition) {\n return;\n }\n\n // If message is a string object (rather than string literal)\n // Throw the value directly as a string\n // Alternatively, throw an error with the message\n throw message instanceof String\n ? message.valueOf()\n : new Error(message ? optionalFunctionValue(message) : message);\n}\n","import type { CB } from 'utilityTypes';\n\nexport function createBus(): BusType {\n const listeners: Record<string, CB[]> = {};\n\n return {\n emit(event: string, data?: any) {\n listener(event).forEach(handler => {\n handler(data);\n });\n },\n\n on(event: string, handler: CB): OnReturn {\n listeners[event] = listener(event).concat(handler);\n\n return {\n off() {\n listeners[event] = listener(event).filter(h => h !== handler);\n },\n };\n },\n };\n\n function listener(event: string): CB[] {\n return listeners[event] || [];\n }\n}\n\ntype OnReturn = { off: CB<void> };\n\nexport type BusType = {\n on: (event: string, handler: CB) => OnReturn;\n emit: (event: string, data?: any) => void;\n};\n","/**\n * @returns a unique numeric id.\n */\n\nimport { CB } from 'utilityTypes';\n\nconst seq = genSeq();\n\nexport default seq;\n\nexport function genSeq(namespace?: string): CB<string> {\n return (\n (n: number) => () =>\n `${namespace ? namespace + '_' : ''}${n++}`\n )(0);\n}\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';\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';\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","import { isEmpty } from 'isEmpty';\nimport { isObject } from 'valueIsObject';\n\nconst regexp = /{(.*?)}/g;\n\nexport function text(str: string, ...substitutions: Array<unknown>): string {\n const first = substitutions[0];\n\n if (isObject(first)) {\n return str.replace(regexp, (placeholder, key: string) => {\n return `${first[key] ?? placeholder}`;\n });\n }\n\n const subs = [...substitutions];\n\n return str.replace(regexp, placeholder => {\n return `${isEmpty(subs) ? placeholder : subs.shift()}`;\n });\n}\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport { DynamicValue } from 'utilityTypes';\n\nexport function createTinyState<S>(\n initialValue: SetValueInput<S>\n): TinyState<S> {\n let value: S;\n\n resetValue();\n\n return () => [value, setValue, resetValue];\n\n function setValue(nextValue: SetValueInput<S>) {\n value = optionalFunctionValue(nextValue, value);\n }\n\n function resetValue() {\n setValue(optionalFunctionValue(initialValue));\n }\n}\n\nexport type TinyState<S> = () => [\n value: S,\n setValue: (next: SetValueInput<S>) => void,\n resetValue: () => void\n];\n\ntype SetValueInput<S> = DynamicValue<S, [prev: S]>;\n","import { CB } from 'utilityTypes';\n\nconst STATE_WILD_CARD = '*';\ntype TStateWildCard = typeof STATE_WILD_CARD;\n\nexport type TStateMachine<S extends string, A extends string> = {\n initial: S;\n states: Partial<{\n [key in S & TStateWildCard]: {\n [key in A]?: S | [S, CB<boolean, [payload?: any]>];\n };\n }>;\n};\n\nexport type TStateMachineApi<S extends string, A extends string> = {\n getState: CB<S>;\n transition: (action: A, payload?: any) => void;\n staticTransition: (from: S, action: A, payload?: any) => S;\n};\n\nexport function StateMachine<S extends string, A extends string>(\n machine: TStateMachine<S, A>\n): TStateMachineApi<S, A> {\n let state = machine.initial;\n\n const api = { getState, transition, staticTransition };\n\n return api;\n\n function getState(): S {\n return state;\n }\n\n function transition(action: A, payload?: any): S {\n return (state = staticTransition(state, action, payload));\n }\n\n // eslint-disable-next-line complexity\n function staticTransition(from: S, action: A, payload?: any): S {\n const transitionTo =\n machine.states[from]?.[action] ??\n // @ts-expect-error - This is a valid state\n machine.states[STATE_WILD_CARD]?.[action];\n\n let target = transitionTo;\n\n if (Array.isArray(target)) {\n const [, conditional] = target;\n if (!conditional(payload)) {\n return from;\n }\n\n target = target[0];\n }\n\n if (!target || target === from) {\n return from;\n }\n\n return target as S;\n }\n}\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport type { Stringable } from 'utilityTypes';\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function StringObject(value?: Stringable): String {\n return new String(optionalFunctionValue(value));\n}\n","export default function asArray<T>(possibleArg: T | T[]): T[] {\n return ([] as T[]).concat(possibleArg);\n}\n","import { lengthEquals } from 'lengthEquals';\nimport { longerThan } from 'longerThan';\nimport { Nullable } from 'utilityTypes';\n\n/**\n * Creates a cache function\n */\nexport default function createCache<T = unknown>(maxSize = 1): CacheApi<T> {\n const cacheStorage: Array<[unknown[], T]> = [];\n\n const cache = (\n deps: unknown[],\n cacheAction: (...args: unknown[]) => T\n ): T => {\n const cacheHit = cache.get(deps);\n // cache hit is not null\n if (cacheHit) return cacheHit[1];\n\n const result = cacheAction();\n cacheStorage.unshift([deps.concat(), result]);\n\n if (longerThan(cacheStorage, maxSize)) cacheStorage.length = maxSize;\n\n return result;\n };\n\n // invalidate an item in the cache by its dependencies\n cache.invalidate = (deps: any[]): void => {\n const index = findIndex(deps);\n if (index > -1) cacheStorage.splice(index, 1);\n };\n\n // Retrieves an item from the cache.\n cache.get = (deps: unknown[]): Nullable<[unknown[], T]> =>\n cacheStorage[findIndex(deps)] || null;\n\n return cache;\n\n function findIndex(deps: unknown[]): number {\n return cacheStorage.findIndex(\n ([cachedDeps]) =>\n lengthEquals(deps, cachedDeps.length) &&\n deps.every((dep, i) => dep === cachedDeps[i])\n );\n }\n}\n\nexport type CacheApi<T = unknown> = {\n (deps: unknown[], cacheAction: (...args: unknown[]) => T): T;\n get(deps: unknown[]): Nullable<[unknown[], T]>;\n invalidate(item: any): void;\n};\n","import type { CB } from 'utilityTypes';\n\nexport default function callEach(arr: CB[]): void {\n return arr.forEach(fn => fn());\n}\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport { DynamicValue, Nullish } from 'utilityTypes';\n\nexport default function defaultTo<T>(\n value: DynamicValue<Nullish<T>>,\n defaultValue: DynamicValue<T>\n): T {\n return optionalFunctionValue(value) ?? optionalFunctionValue(defaultValue);\n}\n","export default function deferThrow(message?: string): void {\n setTimeout(() => {\n throw new Error(message);\n }, 0);\n}\n\nexport type TDeferThrow = typeof deferThrow;\n","export default function either(a: unknown, b: unknown): boolean {\n return !!a !== !!b;\n}\n","export default function isBoolean(value: unknown): value is boolean {\n return !!value === value;\n}\n","import { greaterThan } from 'greaterThan';\n\nexport function isPositive(value: number | string): boolean {\n return greaterThan(value, 0);\n}\n","import isFunction from 'isFunction';\n\nexport default function isPromise(value: any): value is Promise<unknown> {\n return !!value && isFunction(value.then);\n}\n","export default function isStringValue(v: unknown): v is string {\n return String(v) === v;\n}\n","export default function mapFirst<T>(\n array: T[],\n callback: (\n item: T,\n breakout: (conditional: boolean, value: unknown) => void,\n index: number\n ) => unknown\n): any {\n let broke = false;\n let breakoutValue = null;\n for (let i = 0; i < array.length; i++) {\n callback(array[i], breakout, i);\n\n if (broke) {\n return breakoutValue;\n }\n }\n\n function breakout(conditional: boolean, value: unknown) {\n if (conditional) {\n broke = true;\n breakoutValue = value;\n }\n }\n}\n","import invariant from 'invariant';\n\nimport { isNullish } from 'isNullish';\nimport { Nullish } from 'utilityTypes';\n\nexport function nonnullish<T>(value: Nullish<T>, error?: string): T {\n invariant(!isNullish(value), error);\n\n return value;\n}\n","// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport function noop() {}\n"],"names":["bindNot","fn","args","isNumeric","value","str","String","num","Number","result","isNaN","parseFloat","isFinite","Boolean","isNotNumeric","numberEquals","eq","numberNotEquals","lengthEquals","arg1","length","lengthNotEquals","greaterThan","gt","longerThan","isNull","isNotNull","isUndefined","undefined","isNotUndefined","isNullish","isNotNullish","hasOwnProperty","obj","key","Object","prototype","call","isFunction","optionalFunctionValue","assign","invariant","condition","message","valueOf","Error","listeners","emit","event","data","listener","forEach","handler","on","concat","off","filter","h","seq","genSeq","namespace","n","isObject","v","isArray","Array","isNotArray","isEmpty","keys","isNotEmpty","regexp","initialValue","resetValue","setValue","nextValue","machine","state","initial","getState","transition","action","payload","staticTransition","from","target","_b","_a","states","_c","conditional","possibleArg","maxSize","cacheStorage","cache","deps","cacheAction","cacheHit","get","unshift","invalidate","index","findIndex","splice","cachedDeps","every","dep","i","arr","defaultValue","setTimeout","a","b","then","array","callback","broke","breakoutValue","breakout","error","substitutions","first","replace","placeholder","subs","shift"],"mappings":"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"}
1
+ {"version":3,"file":"vest-utils.production.js","sources":["../../src/bindNot.ts","../../src/isNumeric.ts","../../src/numberEquals.ts","../../src/lengthEquals.ts","../../src/greaterThan.ts","../../src/longerThan.ts","../../src/isNull.ts","../../src/isUndefined.ts","../../src/isNullish.ts","../../src/hasOwnProperty.ts","../../src/isFunction.ts","../../src/optionalFunctionValue.ts","../../src/assign.ts","../../src/invariant.ts","../../src/bus.ts","../../src/seq.ts","../../src/valueIsObject.ts","../../src/isArrayValue.ts","../../src/isEmpty.ts","../../src/text.ts","../../src/tinyState.ts","../../src/SimpleStateMachine.ts","../../src/StringObject.ts","../../src/asArray.ts","../../src/cache.ts","../../src/callEach.ts","../../src/defaultTo.ts","../../src/deferThrow.ts","../../src/either.ts","../../src/isBooleanValue.ts","../../src/isPositive.ts","../../src/isPromise.ts","../../src/isStringValue.ts","../../src/mapFirst.ts","../../src/nonnullish.ts","../../src/noop.ts"],"sourcesContent":["export default function bindNot<T extends (...args: any[]) => unknown>(fn: T) {\n return (...args: Parameters<T>): boolean => !fn(...args);\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 { isNumeric } from 'isNumeric';\n\nexport function greaterThan(\n value: number | string,\n gt: number | string\n): boolean {\n return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);\n}\n","import { greaterThan } from 'greaterThan';\n\nexport function longerThan(\n value: string | unknown[],\n arg1: string | number\n): boolean {\n return greaterThan(value.length, arg1);\n}\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","/**\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","export default function isFunction(\n value: unknown\n): value is (...args: unknown[]) => unknown {\n return typeof value === 'function';\n}\n","import isFunction from 'isFunction';\nimport { DynamicValue } from 'utilityTypes';\n\nexport default function optionalFunctionValue<T>(\n value: DynamicValue<T>,\n ...args: unknown[]\n): T {\n return isFunction(value) ? value(...args) : value;\n}\n","export default Object.assign;\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport type { Stringable } from 'utilityTypes';\n\nexport default function invariant(\n condition: any,\n // eslint-disable-next-line @typescript-eslint/ban-types\n message?: String | Stringable\n): asserts condition {\n if (condition) {\n return;\n }\n\n // If message is a string object (rather than string literal)\n // Throw the value directly as a string\n // Alternatively, throw an error with the message\n throw message instanceof String\n ? message.valueOf()\n : new Error(message ? optionalFunctionValue(message) : message);\n}\n","import type { CB } from 'utilityTypes';\n\nconst EVENT_WILDCARD = '*';\n\nexport function createBus(): BusType {\n const listeners: Record<string, CB[]> = {};\n\n return {\n emit(event: string, data?: any) {\n getListeners(event)\n .concat(getListeners(EVENT_WILDCARD))\n .forEach(handler => {\n handler(data);\n });\n },\n\n on(event: string, handler: CB): OnReturn {\n listeners[event] = getListeners(event).concat(handler);\n\n return {\n off() {\n listeners[event] = getListeners(event).filter(h => h !== handler);\n },\n };\n },\n };\n\n function getListeners(event: string): CB[] {\n return listeners[event] || [];\n }\n}\n\ntype OnReturn = { off: CB<void> };\n\nexport type BusType = {\n on: (event: string, handler: CB) => OnReturn;\n emit: (event: string, data?: any) => void;\n};\n","/**\n * @returns a unique numeric id.\n */\n\nimport { CB } from 'utilityTypes';\n\nconst seq = genSeq();\n\nexport default seq;\n\nexport function genSeq(namespace?: string): CB<string> {\n return (\n (n: number) => () =>\n `${namespace ? namespace + '_' : ''}${n++}`\n )(0);\n}\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';\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';\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","import { isEmpty } from 'isEmpty';\nimport { isObject } from 'valueIsObject';\n\nconst regexp = /{(.*?)}/g;\n\nexport function text(str: string, ...substitutions: Array<unknown>): string {\n const first = substitutions[0];\n\n if (isObject(first)) {\n return str.replace(regexp, (placeholder, key: string) => {\n return `${first[key] ?? placeholder}`;\n });\n }\n\n const subs = [...substitutions];\n\n return str.replace(regexp, placeholder => {\n return `${isEmpty(subs) ? placeholder : subs.shift()}`;\n });\n}\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport { DynamicValue } from 'utilityTypes';\n\nexport function createTinyState<S>(\n initialValue: SetValueInput<S>\n): TinyState<S> {\n let value: S;\n\n resetValue();\n\n return () => [value, setValue, resetValue];\n\n function setValue(nextValue: SetValueInput<S>) {\n value = optionalFunctionValue(nextValue, value);\n }\n\n function resetValue() {\n setValue(optionalFunctionValue(initialValue));\n }\n}\n\nexport type TinyState<S> = () => [\n value: S,\n setValue: (next: SetValueInput<S>) => void,\n resetValue: () => void\n];\n\ntype SetValueInput<S> = DynamicValue<S, [prev: S]>;\n","import { CB } from 'utilityTypes';\n\nconst STATE_WILD_CARD = '*';\ntype TStateWildCard = typeof STATE_WILD_CARD;\n\nexport type TStateMachine<S extends string, A extends string> = {\n initial: S;\n states: Partial<{\n [key in S & TStateWildCard]: {\n [key in A]?: S | [S, CB<boolean, [payload?: any]>];\n };\n }>;\n};\n\nexport type TStateMachineApi<S extends string, A extends string> = {\n getState: CB<S>;\n transition: (action: A, payload?: any) => void;\n staticTransition: (from: S, action: A, payload?: any) => S;\n};\n\nexport function StateMachine<S extends string, A extends string>(\n machine: TStateMachine<S, A>\n): TStateMachineApi<S, A> {\n let state = machine.initial;\n\n const api = { getState, transition, staticTransition };\n\n return api;\n\n function getState(): S {\n return state;\n }\n\n function transition(action: A, payload?: any): S {\n return (state = staticTransition(state, action, payload));\n }\n\n // eslint-disable-next-line complexity\n function staticTransition(from: S, action: A, payload?: any): S {\n const transitionTo =\n machine.states[from]?.[action] ??\n // @ts-expect-error - This is a valid state\n machine.states[STATE_WILD_CARD]?.[action];\n\n let target = transitionTo;\n\n if (Array.isArray(target)) {\n const [, conditional] = target;\n if (!conditional(payload)) {\n return from;\n }\n\n target = target[0];\n }\n\n if (!target || target === from) {\n return from;\n }\n\n return target as S;\n }\n}\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport type { Stringable } from 'utilityTypes';\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function StringObject(value?: Stringable): String {\n return new String(optionalFunctionValue(value));\n}\n","export default function asArray<T>(possibleArg: T | T[]): T[] {\n return ([] as T[]).concat(possibleArg);\n}\n","import { lengthEquals } from 'lengthEquals';\nimport { longerThan } from 'longerThan';\nimport { Nullable } from 'utilityTypes';\n\n/**\n * Creates a cache function\n */\nexport default function createCache<T = unknown>(maxSize = 1): CacheApi<T> {\n const cacheStorage: Array<[unknown[], T]> = [];\n\n const cache = (\n deps: unknown[],\n cacheAction: (...args: unknown[]) => T\n ): T => {\n const cacheHit = cache.get(deps);\n // cache hit is not null\n if (cacheHit) return cacheHit[1];\n\n const result = cacheAction();\n cacheStorage.unshift([deps.concat(), result]);\n\n if (longerThan(cacheStorage, maxSize)) cacheStorage.length = maxSize;\n\n return result;\n };\n\n // invalidate an item in the cache by its dependencies\n cache.invalidate = (deps: any[]): void => {\n const index = findIndex(deps);\n if (index > -1) cacheStorage.splice(index, 1);\n };\n\n // Retrieves an item from the cache.\n cache.get = (deps: unknown[]): Nullable<[unknown[], T]> =>\n cacheStorage[findIndex(deps)] || null;\n\n return cache;\n\n function findIndex(deps: unknown[]): number {\n return cacheStorage.findIndex(\n ([cachedDeps]) =>\n lengthEquals(deps, cachedDeps.length) &&\n deps.every((dep, i) => dep === cachedDeps[i])\n );\n }\n}\n\nexport type CacheApi<T = unknown> = {\n (deps: unknown[], cacheAction: (...args: unknown[]) => T): T;\n get(deps: unknown[]): Nullable<[unknown[], T]>;\n invalidate(item: any): void;\n};\n","import type { CB } from 'utilityTypes';\n\nexport default function callEach(arr: CB[]): void {\n return arr.forEach(fn => fn());\n}\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport { DynamicValue, Nullish } from 'utilityTypes';\n\nexport default function defaultTo<T>(\n value: DynamicValue<Nullish<T>>,\n defaultValue: DynamicValue<T>\n): T {\n return optionalFunctionValue(value) ?? optionalFunctionValue(defaultValue);\n}\n","export default function deferThrow(message?: string): void {\n setTimeout(() => {\n throw new Error(message);\n }, 0);\n}\n\nexport type TDeferThrow = typeof deferThrow;\n","export default function either(a: unknown, b: unknown): boolean {\n return !!a !== !!b;\n}\n","export default function isBoolean(value: unknown): value is boolean {\n return !!value === value;\n}\n","import { greaterThan } from 'greaterThan';\n\nexport function isPositive(value: number | string): boolean {\n return greaterThan(value, 0);\n}\n","import isFunction from 'isFunction';\n\nexport default function isPromise(value: any): value is Promise<unknown> {\n return !!value && isFunction(value.then);\n}\n","export default function isStringValue(v: unknown): v is string {\n return String(v) === v;\n}\n","export default function mapFirst<T>(\n array: T[],\n callback: (\n item: T,\n breakout: (conditional: boolean, value: unknown) => void,\n index: number\n ) => unknown\n): any {\n let broke = false;\n let breakoutValue = null;\n for (let i = 0; i < array.length; i++) {\n callback(array[i], breakout, i);\n\n if (broke) {\n return breakoutValue;\n }\n }\n\n function breakout(conditional: boolean, value: unknown) {\n if (conditional) {\n broke = true;\n breakoutValue = value;\n }\n }\n}\n","import invariant from 'invariant';\n\nimport { isNullish } from 'isNullish';\nimport { Nullish } from 'utilityTypes';\n\nexport function nonnullish<T>(value: Nullish<T>, error?: string): T {\n invariant(!isNullish(value), error);\n\n return value;\n}\n","// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport function noop() {}\n"],"names":["bindNot","fn","args","isNumeric","value","str","String","num","Number","result","isNaN","parseFloat","isFinite","Boolean","isNotNumeric","numberEquals","eq","numberNotEquals","lengthEquals","arg1","length","lengthNotEquals","greaterThan","gt","longerThan","isNull","isNotNull","isUndefined","undefined","isNotUndefined","isNullish","isNotNullish","hasOwnProperty","obj","key","Object","prototype","call","isFunction","optionalFunctionValue","assign","invariant","condition","message","valueOf","Error","listeners","emit","event","data","getListeners","concat","forEach","handler","on","off","filter","h","seq","genSeq","namespace","n","isObject","v","isArray","Array","isNotArray","isEmpty","keys","isNotEmpty","regexp","initialValue","resetValue","setValue","nextValue","machine","state","initial","getState","transition","action","payload","staticTransition","from","target","_b","_a","states","_c","conditional","possibleArg","maxSize","cacheStorage","cache","deps","cacheAction","cacheHit","get","unshift","invalidate","index","findIndex","splice","cachedDeps","every","dep","i","arr","defaultValue","setTimeout","a","b","then","array","callback","broke","breakoutValue","breakout","error","substitutions","first","replace","placeholder","subs","shift"],"mappings":"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"}
@@ -140,24 +140,27 @@ function deferThrow(message) {
140
140
  }, 0);
141
141
  }
142
142
 
143
+ const EVENT_WILDCARD = '*';
143
144
  function createBus() {
144
145
  const listeners = {};
145
146
  return {
146
147
  emit(event, data) {
147
- listener(event).forEach(handler => {
148
+ getListeners(event)
149
+ .concat(getListeners(EVENT_WILDCARD))
150
+ .forEach(handler => {
148
151
  handler(data);
149
152
  });
150
153
  },
151
154
  on(event, handler) {
152
- listeners[event] = listener(event).concat(handler);
155
+ listeners[event] = getListeners(event).concat(handler);
153
156
  return {
154
157
  off() {
155
- listeners[event] = listener(event).filter(h => h !== handler);
158
+ listeners[event] = getListeners(event).filter(h => h !== handler);
156
159
  },
157
160
  };
158
161
  },
159
162
  };
160
- function listener(event) {
163
+ function getListeners(event) {
161
164
  return listeners[event] || [];
162
165
  }
163
166
  }
@@ -1 +1 @@
1
- {"version":3,"file":"vest-utils.development.js","sources":["../../src/bindNot.ts","../../src/isNumeric.ts","../../src/numberEquals.ts","../../src/lengthEquals.ts","../../src/greaterThan.ts","../../src/longerThan.ts","../../src/cache.ts","../../src/isNull.ts","../../src/isUndefined.ts","../../src/isNullish.ts","../../src/asArray.ts","../../src/callEach.ts","../../src/hasOwnProperty.ts","../../src/isFunction.ts","../../src/isPromise.ts","../../src/optionalFunctionValue.ts","../../src/assign.ts","../../src/defaultTo.ts","../../src/invariant.ts","../../src/isStringValue.ts","../../src/either.ts","../../src/isBooleanValue.ts","../../src/deferThrow.ts","../../src/bus.ts","../../src/seq.ts","../../src/mapFirst.ts","../../src/valueIsObject.ts","../../src/isArrayValue.ts","../../src/isEmpty.ts","../../src/isPositive.ts","../../src/text.ts","../../src/SimpleStateMachine.ts","../../src/nonnullish.ts","../../src/tinyState.ts","../../src/StringObject.ts","../../src/noop.ts"],"sourcesContent":["export default function bindNot<T extends (...args: any[]) => unknown>(fn: T) {\n return (...args: Parameters<T>): boolean => !fn(...args);\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 { isNumeric } from 'isNumeric';\n\nexport function greaterThan(\n value: number | string,\n gt: number | string\n): boolean {\n return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);\n}\n","import { greaterThan } from 'greaterThan';\n\nexport function longerThan(\n value: string | unknown[],\n arg1: string | number\n): boolean {\n return greaterThan(value.length, arg1);\n}\n","import { lengthEquals } from 'lengthEquals';\nimport { longerThan } from 'longerThan';\nimport { Nullable } from 'utilityTypes';\n\n/**\n * Creates a cache function\n */\nexport default function createCache<T = unknown>(maxSize = 1): CacheApi<T> {\n const cacheStorage: Array<[unknown[], T]> = [];\n\n const cache = (\n deps: unknown[],\n cacheAction: (...args: unknown[]) => T\n ): T => {\n const cacheHit = cache.get(deps);\n // cache hit is not null\n if (cacheHit) return cacheHit[1];\n\n const result = cacheAction();\n cacheStorage.unshift([deps.concat(), result]);\n\n if (longerThan(cacheStorage, maxSize)) cacheStorage.length = maxSize;\n\n return result;\n };\n\n // invalidate an item in the cache by its dependencies\n cache.invalidate = (deps: any[]): void => {\n const index = findIndex(deps);\n if (index > -1) cacheStorage.splice(index, 1);\n };\n\n // Retrieves an item from the cache.\n cache.get = (deps: unknown[]): Nullable<[unknown[], T]> =>\n cacheStorage[findIndex(deps)] || null;\n\n return cache;\n\n function findIndex(deps: unknown[]): number {\n return cacheStorage.findIndex(\n ([cachedDeps]) =>\n lengthEquals(deps, cachedDeps.length) &&\n deps.every((dep, i) => dep === cachedDeps[i])\n );\n }\n}\n\nexport type CacheApi<T = unknown> = {\n (deps: unknown[], cacheAction: (...args: unknown[]) => T): T;\n get(deps: unknown[]): Nullable<[unknown[], T]>;\n invalidate(item: any): void;\n};\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","export default function asArray<T>(possibleArg: T | T[]): T[] {\n return ([] as T[]).concat(possibleArg);\n}\n","import type { CB } from 'utilityTypes';\n\nexport default function callEach(arr: CB[]): void {\n return arr.forEach(fn => fn());\n}\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","export default function isFunction(\n value: unknown\n): value is (...args: unknown[]) => unknown {\n return typeof value === 'function';\n}\n","import isFunction from 'isFunction';\n\nexport default function isPromise(value: any): value is Promise<unknown> {\n return !!value && isFunction(value.then);\n}\n","import isFunction from 'isFunction';\nimport { DynamicValue } from 'utilityTypes';\n\nexport default function optionalFunctionValue<T>(\n value: DynamicValue<T>,\n ...args: unknown[]\n): T {\n return isFunction(value) ? value(...args) : value;\n}\n","export default Object.assign;\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport { DynamicValue, Nullish } from 'utilityTypes';\n\nexport default function defaultTo<T>(\n value: DynamicValue<Nullish<T>>,\n defaultValue: DynamicValue<T>\n): T {\n return optionalFunctionValue(value) ?? optionalFunctionValue(defaultValue);\n}\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport type { Stringable } from 'utilityTypes';\n\nexport default function invariant(\n condition: any,\n // eslint-disable-next-line @typescript-eslint/ban-types\n message?: String | Stringable\n): asserts condition {\n if (condition) {\n return;\n }\n\n // If message is a string object (rather than string literal)\n // Throw the value directly as a string\n // Alternatively, throw an error with the message\n throw message instanceof String\n ? message.valueOf()\n : new Error(message ? optionalFunctionValue(message) : message);\n}\n","export default function isStringValue(v: unknown): v is string {\n return String(v) === v;\n}\n","export default function either(a: unknown, b: unknown): boolean {\n return !!a !== !!b;\n}\n","export default function isBoolean(value: unknown): value is boolean {\n return !!value === value;\n}\n","export default function deferThrow(message?: string): void {\n setTimeout(() => {\n throw new Error(message);\n }, 0);\n}\n\nexport type TDeferThrow = typeof deferThrow;\n","import type { CB } from 'utilityTypes';\n\nexport function createBus(): BusType {\n const listeners: Record<string, CB[]> = {};\n\n return {\n emit(event: string, data?: any) {\n listener(event).forEach(handler => {\n handler(data);\n });\n },\n\n on(event: string, handler: CB): OnReturn {\n listeners[event] = listener(event).concat(handler);\n\n return {\n off() {\n listeners[event] = listener(event).filter(h => h !== handler);\n },\n };\n },\n };\n\n function listener(event: string): CB[] {\n return listeners[event] || [];\n }\n}\n\ntype OnReturn = { off: CB<void> };\n\nexport type BusType = {\n on: (event: string, handler: CB) => OnReturn;\n emit: (event: string, data?: any) => void;\n};\n","/**\n * @returns a unique numeric id.\n */\n\nimport { CB } from 'utilityTypes';\n\nconst seq = genSeq();\n\nexport default seq;\n\nexport function genSeq(namespace?: string): CB<string> {\n return (\n (n: number) => () =>\n `${namespace ? namespace + '_' : ''}${n++}`\n )(0);\n}\n","export default function mapFirst<T>(\n array: T[],\n callback: (\n item: T,\n breakout: (conditional: boolean, value: unknown) => void,\n index: number\n ) => unknown\n): any {\n let broke = false;\n let breakoutValue = null;\n for (let i = 0; i < array.length; i++) {\n callback(array[i], breakout, i);\n\n if (broke) {\n return breakoutValue;\n }\n }\n\n function breakout(conditional: boolean, value: unknown) {\n if (conditional) {\n broke = true;\n breakoutValue = value;\n }\n }\n}\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';\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';\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","import { greaterThan } from 'greaterThan';\n\nexport function isPositive(value: number | string): boolean {\n return greaterThan(value, 0);\n}\n","import { isEmpty } from 'isEmpty';\nimport { isObject } from 'valueIsObject';\n\nconst regexp = /{(.*?)}/g;\n\nexport function text(str: string, ...substitutions: Array<unknown>): string {\n const first = substitutions[0];\n\n if (isObject(first)) {\n return str.replace(regexp, (placeholder, key: string) => {\n return `${first[key] ?? placeholder}`;\n });\n }\n\n const subs = [...substitutions];\n\n return str.replace(regexp, placeholder => {\n return `${isEmpty(subs) ? placeholder : subs.shift()}`;\n });\n}\n","import { CB } from 'utilityTypes';\n\nconst STATE_WILD_CARD = '*';\ntype TStateWildCard = typeof STATE_WILD_CARD;\n\nexport type TStateMachine<S extends string, A extends string> = {\n initial: S;\n states: Partial<{\n [key in S & TStateWildCard]: {\n [key in A]?: S | [S, CB<boolean, [payload?: any]>];\n };\n }>;\n};\n\nexport type TStateMachineApi<S extends string, A extends string> = {\n getState: CB<S>;\n transition: (action: A, payload?: any) => void;\n staticTransition: (from: S, action: A, payload?: any) => S;\n};\n\nexport function StateMachine<S extends string, A extends string>(\n machine: TStateMachine<S, A>\n): TStateMachineApi<S, A> {\n let state = machine.initial;\n\n const api = { getState, transition, staticTransition };\n\n return api;\n\n function getState(): S {\n return state;\n }\n\n function transition(action: A, payload?: any): S {\n return (state = staticTransition(state, action, payload));\n }\n\n // eslint-disable-next-line complexity\n function staticTransition(from: S, action: A, payload?: any): S {\n const transitionTo =\n machine.states[from]?.[action] ??\n // @ts-expect-error - This is a valid state\n machine.states[STATE_WILD_CARD]?.[action];\n\n let target = transitionTo;\n\n if (Array.isArray(target)) {\n const [, conditional] = target;\n if (!conditional(payload)) {\n return from;\n }\n\n target = target[0];\n }\n\n if (!target || target === from) {\n return from;\n }\n\n return target as S;\n }\n}\n","import invariant from 'invariant';\n\nimport { isNullish } from 'isNullish';\nimport { Nullish } from 'utilityTypes';\n\nexport function nonnullish<T>(value: Nullish<T>, error?: string): T {\n invariant(!isNullish(value), error);\n\n return value;\n}\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport { DynamicValue } from 'utilityTypes';\n\nexport function createTinyState<S>(\n initialValue: SetValueInput<S>\n): TinyState<S> {\n let value: S;\n\n resetValue();\n\n return () => [value, setValue, resetValue];\n\n function setValue(nextValue: SetValueInput<S>) {\n value = optionalFunctionValue(nextValue, value);\n }\n\n function resetValue() {\n setValue(optionalFunctionValue(initialValue));\n }\n}\n\nexport type TinyState<S> = () => [\n value: S,\n setValue: (next: SetValueInput<S>) => void,\n resetValue: () => void\n];\n\ntype SetValueInput<S> = DynamicValue<S, [prev: S]>;\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport type { Stringable } from 'utilityTypes';\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function StringObject(value?: Stringable): String {\n return new String(optionalFunctionValue(value));\n}\n","// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport function noop() {}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vest-utils.development.js","sources":["../../src/bindNot.ts","../../src/isNumeric.ts","../../src/numberEquals.ts","../../src/lengthEquals.ts","../../src/greaterThan.ts","../../src/longerThan.ts","../../src/cache.ts","../../src/isNull.ts","../../src/isUndefined.ts","../../src/isNullish.ts","../../src/asArray.ts","../../src/callEach.ts","../../src/hasOwnProperty.ts","../../src/isFunction.ts","../../src/isPromise.ts","../../src/optionalFunctionValue.ts","../../src/assign.ts","../../src/defaultTo.ts","../../src/invariant.ts","../../src/isStringValue.ts","../../src/either.ts","../../src/isBooleanValue.ts","../../src/deferThrow.ts","../../src/bus.ts","../../src/seq.ts","../../src/mapFirst.ts","../../src/valueIsObject.ts","../../src/isArrayValue.ts","../../src/isEmpty.ts","../../src/isPositive.ts","../../src/text.ts","../../src/SimpleStateMachine.ts","../../src/nonnullish.ts","../../src/tinyState.ts","../../src/StringObject.ts","../../src/noop.ts"],"sourcesContent":["export default function bindNot<T extends (...args: any[]) => unknown>(fn: T) {\n return (...args: Parameters<T>): boolean => !fn(...args);\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 { isNumeric } from 'isNumeric';\n\nexport function greaterThan(\n value: number | string,\n gt: number | string\n): boolean {\n return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);\n}\n","import { greaterThan } from 'greaterThan';\n\nexport function longerThan(\n value: string | unknown[],\n arg1: string | number\n): boolean {\n return greaterThan(value.length, arg1);\n}\n","import { lengthEquals } from 'lengthEquals';\nimport { longerThan } from 'longerThan';\nimport { Nullable } from 'utilityTypes';\n\n/**\n * Creates a cache function\n */\nexport default function createCache<T = unknown>(maxSize = 1): CacheApi<T> {\n const cacheStorage: Array<[unknown[], T]> = [];\n\n const cache = (\n deps: unknown[],\n cacheAction: (...args: unknown[]) => T\n ): T => {\n const cacheHit = cache.get(deps);\n // cache hit is not null\n if (cacheHit) return cacheHit[1];\n\n const result = cacheAction();\n cacheStorage.unshift([deps.concat(), result]);\n\n if (longerThan(cacheStorage, maxSize)) cacheStorage.length = maxSize;\n\n return result;\n };\n\n // invalidate an item in the cache by its dependencies\n cache.invalidate = (deps: any[]): void => {\n const index = findIndex(deps);\n if (index > -1) cacheStorage.splice(index, 1);\n };\n\n // Retrieves an item from the cache.\n cache.get = (deps: unknown[]): Nullable<[unknown[], T]> =>\n cacheStorage[findIndex(deps)] || null;\n\n return cache;\n\n function findIndex(deps: unknown[]): number {\n return cacheStorage.findIndex(\n ([cachedDeps]) =>\n lengthEquals(deps, cachedDeps.length) &&\n deps.every((dep, i) => dep === cachedDeps[i])\n );\n }\n}\n\nexport type CacheApi<T = unknown> = {\n (deps: unknown[], cacheAction: (...args: unknown[]) => T): T;\n get(deps: unknown[]): Nullable<[unknown[], T]>;\n invalidate(item: any): void;\n};\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","export default function asArray<T>(possibleArg: T | T[]): T[] {\n return ([] as T[]).concat(possibleArg);\n}\n","import type { CB } from 'utilityTypes';\n\nexport default function callEach(arr: CB[]): void {\n return arr.forEach(fn => fn());\n}\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","export default function isFunction(\n value: unknown\n): value is (...args: unknown[]) => unknown {\n return typeof value === 'function';\n}\n","import isFunction from 'isFunction';\n\nexport default function isPromise(value: any): value is Promise<unknown> {\n return !!value && isFunction(value.then);\n}\n","import isFunction from 'isFunction';\nimport { DynamicValue } from 'utilityTypes';\n\nexport default function optionalFunctionValue<T>(\n value: DynamicValue<T>,\n ...args: unknown[]\n): T {\n return isFunction(value) ? value(...args) : value;\n}\n","export default Object.assign;\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport { DynamicValue, Nullish } from 'utilityTypes';\n\nexport default function defaultTo<T>(\n value: DynamicValue<Nullish<T>>,\n defaultValue: DynamicValue<T>\n): T {\n return optionalFunctionValue(value) ?? optionalFunctionValue(defaultValue);\n}\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport type { Stringable } from 'utilityTypes';\n\nexport default function invariant(\n condition: any,\n // eslint-disable-next-line @typescript-eslint/ban-types\n message?: String | Stringable\n): asserts condition {\n if (condition) {\n return;\n }\n\n // If message is a string object (rather than string literal)\n // Throw the value directly as a string\n // Alternatively, throw an error with the message\n throw message instanceof String\n ? message.valueOf()\n : new Error(message ? optionalFunctionValue(message) : message);\n}\n","export default function isStringValue(v: unknown): v is string {\n return String(v) === v;\n}\n","export default function either(a: unknown, b: unknown): boolean {\n return !!a !== !!b;\n}\n","export default function isBoolean(value: unknown): value is boolean {\n return !!value === value;\n}\n","export default function deferThrow(message?: string): void {\n setTimeout(() => {\n throw new Error(message);\n }, 0);\n}\n\nexport type TDeferThrow = typeof deferThrow;\n","import type { CB } from 'utilityTypes';\n\nconst EVENT_WILDCARD = '*';\n\nexport function createBus(): BusType {\n const listeners: Record<string, CB[]> = {};\n\n return {\n emit(event: string, data?: any) {\n getListeners(event)\n .concat(getListeners(EVENT_WILDCARD))\n .forEach(handler => {\n handler(data);\n });\n },\n\n on(event: string, handler: CB): OnReturn {\n listeners[event] = getListeners(event).concat(handler);\n\n return {\n off() {\n listeners[event] = getListeners(event).filter(h => h !== handler);\n },\n };\n },\n };\n\n function getListeners(event: string): CB[] {\n return listeners[event] || [];\n }\n}\n\ntype OnReturn = { off: CB<void> };\n\nexport type BusType = {\n on: (event: string, handler: CB) => OnReturn;\n emit: (event: string, data?: any) => void;\n};\n","/**\n * @returns a unique numeric id.\n */\n\nimport { CB } from 'utilityTypes';\n\nconst seq = genSeq();\n\nexport default seq;\n\nexport function genSeq(namespace?: string): CB<string> {\n return (\n (n: number) => () =>\n `${namespace ? namespace + '_' : ''}${n++}`\n )(0);\n}\n","export default function mapFirst<T>(\n array: T[],\n callback: (\n item: T,\n breakout: (conditional: boolean, value: unknown) => void,\n index: number\n ) => unknown\n): any {\n let broke = false;\n let breakoutValue = null;\n for (let i = 0; i < array.length; i++) {\n callback(array[i], breakout, i);\n\n if (broke) {\n return breakoutValue;\n }\n }\n\n function breakout(conditional: boolean, value: unknown) {\n if (conditional) {\n broke = true;\n breakoutValue = value;\n }\n }\n}\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';\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';\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","import { greaterThan } from 'greaterThan';\n\nexport function isPositive(value: number | string): boolean {\n return greaterThan(value, 0);\n}\n","import { isEmpty } from 'isEmpty';\nimport { isObject } from 'valueIsObject';\n\nconst regexp = /{(.*?)}/g;\n\nexport function text(str: string, ...substitutions: Array<unknown>): string {\n const first = substitutions[0];\n\n if (isObject(first)) {\n return str.replace(regexp, (placeholder, key: string) => {\n return `${first[key] ?? placeholder}`;\n });\n }\n\n const subs = [...substitutions];\n\n return str.replace(regexp, placeholder => {\n return `${isEmpty(subs) ? placeholder : subs.shift()}`;\n });\n}\n","import { CB } from 'utilityTypes';\n\nconst STATE_WILD_CARD = '*';\ntype TStateWildCard = typeof STATE_WILD_CARD;\n\nexport type TStateMachine<S extends string, A extends string> = {\n initial: S;\n states: Partial<{\n [key in S & TStateWildCard]: {\n [key in A]?: S | [S, CB<boolean, [payload?: any]>];\n };\n }>;\n};\n\nexport type TStateMachineApi<S extends string, A extends string> = {\n getState: CB<S>;\n transition: (action: A, payload?: any) => void;\n staticTransition: (from: S, action: A, payload?: any) => S;\n};\n\nexport function StateMachine<S extends string, A extends string>(\n machine: TStateMachine<S, A>\n): TStateMachineApi<S, A> {\n let state = machine.initial;\n\n const api = { getState, transition, staticTransition };\n\n return api;\n\n function getState(): S {\n return state;\n }\n\n function transition(action: A, payload?: any): S {\n return (state = staticTransition(state, action, payload));\n }\n\n // eslint-disable-next-line complexity\n function staticTransition(from: S, action: A, payload?: any): S {\n const transitionTo =\n machine.states[from]?.[action] ??\n // @ts-expect-error - This is a valid state\n machine.states[STATE_WILD_CARD]?.[action];\n\n let target = transitionTo;\n\n if (Array.isArray(target)) {\n const [, conditional] = target;\n if (!conditional(payload)) {\n return from;\n }\n\n target = target[0];\n }\n\n if (!target || target === from) {\n return from;\n }\n\n return target as S;\n }\n}\n","import invariant from 'invariant';\n\nimport { isNullish } from 'isNullish';\nimport { Nullish } from 'utilityTypes';\n\nexport function nonnullish<T>(value: Nullish<T>, error?: string): T {\n invariant(!isNullish(value), error);\n\n return value;\n}\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport { DynamicValue } from 'utilityTypes';\n\nexport function createTinyState<S>(\n initialValue: SetValueInput<S>\n): TinyState<S> {\n let value: S;\n\n resetValue();\n\n return () => [value, setValue, resetValue];\n\n function setValue(nextValue: SetValueInput<S>) {\n value = optionalFunctionValue(nextValue, value);\n }\n\n function resetValue() {\n setValue(optionalFunctionValue(initialValue));\n }\n}\n\nexport type TinyState<S> = () => [\n value: S,\n setValue: (next: SetValueInput<S>) => void,\n resetValue: () => void\n];\n\ntype SetValueInput<S> = DynamicValue<S, [prev: S]>;\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport type { Stringable } from 'utilityTypes';\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function StringObject(value?: Stringable): String {\n return new String(optionalFunctionValue(value));\n}\n","// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport function noop() {}\n"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- function n(n){return(...t)=>!n(...t)}function t(n){const t=String(n),r=Number(n),e=!isNaN(parseFloat(t))&&!isNaN(Number(n))&&isFinite(r);return Boolean(e)}const r=n(t);function e(n,r){return t(n)&&t(r)&&Number(n)===Number(r)}const u=n(e);function o(n,t){return e(n.length,t)}const i=n(o);function c(n,r){return t(n)&&t(r)&&Number(n)>Number(r)}function f(n,t){return c(n.length,t)}function a(n=1){const t=[],r=(e,u)=>{const o=r.get(e);if(o)return o[1];const i=u();return t.unshift([e.concat(),i]),f(t,n)&&(t.length=n),i};return r.invalidate=n=>{const r=e(n);r>-1&&t.splice(r,1)},r.get=n=>t[e(n)]||null,r;function e(n){return t.findIndex((([t])=>o(n,t.length)&&n.every(((n,r)=>n===t[r]))))}}function l(n){return null===n}const s=n(l);function v(n){return void 0===n}const g=n(v);function h(n){return l(n)||v(n)}const b=n(h);function p(n){return[].concat(n)}function d(n){return n.forEach((n=>n()))}function y(n,t){return Object.prototype.hasOwnProperty.call(n,t)}function N(n){return"function"==typeof n}function _(n){return!!n&&N(n.then)}function m(n,...t){return N(n)?n(...t):n}var O=Object.assign;function j(n,t){var r;return null!==(r=m(n))&&void 0!==r?r:m(t)}function w(n,t){if(!n)throw t instanceof String?t.valueOf():new Error(t?m(t):t)}function S(n){return String(n)===n}function A(n,t){return!!n!=!!t}function E(n){return!!n===n}function $(n){setTimeout((()=>{throw new Error(n)}),0)}var B=Object.freeze({__proto__:null,createBus:function(){const n={};return{emit(n,r){t(n).forEach((n=>{n(r)}))},on:(r,e)=>(n[r]=t(r).concat(e),{off(){n[r]=t(r).filter((n=>n!==e))}})};function t(t){return n[t]||[]}}});const T=x();function x(n){return t=0,()=>`${n?n+"_":""}${t++}`;var t}function z(n,t){let r=!1,e=null;for(let o=0;o<n.length;o++)if(t(n[o],u,o),r)return e;function u(n,t){n&&(r=!0,e=t)}}function F(n){return"object"==typeof n&&!h(n)}function k(n){return Boolean(Array.isArray(n))}const I=n(k);function P(n){return!n||(y(n,"length")?o(n,0):!!F(n)&&o(Object.keys(n),0))}const q=n(P);function C(n){return c(n,0)}const D=/{(.*?)}/g;function G(n,...t){const r=t[0];if(F(r))return n.replace(D,((n,t)=>{var e;return`${null!==(e=r[t])&&void 0!==e?e:n}`}));const e=[...t];return n.replace(D,(n=>`${P(e)?n:e.shift()}`))}function H(n){let t=n.initial;return{getState:function(){return t},transition:function(n,e){return t=r(t,n,e)},staticTransition:r};function r(t,r,e){var u,o,i;let c=null!==(o=null===(u=n.states[t])||void 0===u?void 0:u[r])&&void 0!==o?o:null===(i=n.states["*"])||void 0===i?void 0:i[r];if(Array.isArray(c)){const[,n]=c;if(!n(e))return t;c=c[0]}return c&&c!==t?c:t}}function J(n,t){return w(!h(n),t),n}var K=Object.freeze({__proto__:null,createTinyState:function(n){let t;return e(),()=>[t,r,e];function r(n){t=m(n,t)}function e(){r(m(n))}}});function L(n){return new String(m(n))}function M(){}export{H as StateMachine,L as StringObject,p as asArray,O as assign,n as bindNot,B as bus,a as cache,d as callEach,j as defaultTo,$ as deferThrow,A as either,x as genSeq,c as greaterThan,y as hasOwnProperty,w as invariant,k as isArray,E as isBoolean,P as isEmpty,N as isFunction,I as isNotArray,q as isNotEmpty,s as isNotNull,b as isNotNullish,r as isNotNumeric,g as isNotUndefined,l as isNull,h as isNullish,t as isNumeric,F as isObject,C as isPositive,_ as isPromise,S as isStringValue,v as isUndefined,o as lengthEquals,i as lengthNotEquals,f as longerThan,z as mapFirst,J as nonnullish,M as noop,e as numberEquals,u as numberNotEquals,m as optionalFunctionValue,T as seq,G as text,K as tinyState};
1
+ function n(n){return(...t)=>!n(...t)}function t(n){const t=String(n),r=Number(n),e=!isNaN(parseFloat(t))&&!isNaN(Number(n))&&isFinite(r);return Boolean(e)}const r=n(t);function e(n,r){return t(n)&&t(r)&&Number(n)===Number(r)}const u=n(e);function o(n,t){return e(n.length,t)}const c=n(o);function i(n,r){return t(n)&&t(r)&&Number(n)>Number(r)}function f(n,t){return i(n.length,t)}function a(n=1){const t=[],r=(e,u)=>{const o=r.get(e);if(o)return o[1];const c=u();return t.unshift([e.concat(),c]),f(t,n)&&(t.length=n),c};return r.invalidate=n=>{const r=e(n);r>-1&&t.splice(r,1)},r.get=n=>t[e(n)]||null,r;function e(n){return t.findIndex((([t])=>o(n,t.length)&&n.every(((n,r)=>n===t[r]))))}}function l(n){return null===n}const s=n(l);function v(n){return void 0===n}const g=n(v);function h(n){return l(n)||v(n)}const b=n(h);function p(n){return[].concat(n)}function d(n){return n.forEach((n=>n()))}function y(n,t){return Object.prototype.hasOwnProperty.call(n,t)}function N(n){return"function"==typeof n}function _(n){return!!n&&N(n.then)}function m(n,...t){return N(n)?n(...t):n}var O=Object.assign;function j(n,t){var r;return null!==(r=m(n))&&void 0!==r?r:m(t)}function w(n,t){if(!n)throw t instanceof String?t.valueOf():new Error(t?m(t):t)}function S(n){return String(n)===n}function A(n,t){return!!n!=!!t}function E(n){return!!n===n}function $(n){setTimeout((()=>{throw new Error(n)}),0)}var B=Object.freeze({__proto__:null,createBus:function(){const n={};return{emit(n,r){t(n).concat(t("*")).forEach((n=>{n(r)}))},on:(r,e)=>(n[r]=t(r).concat(e),{off(){n[r]=t(r).filter((n=>n!==e))}})};function t(t){return n[t]||[]}}});const T=x();function x(n){return t=0,()=>`${n?n+"_":""}${t++}`;var t}function z(n,t){let r=!1,e=null;for(let o=0;o<n.length;o++)if(t(n[o],u,o),r)return e;function u(n,t){n&&(r=!0,e=t)}}function F(n){return"object"==typeof n&&!h(n)}function k(n){return Boolean(Array.isArray(n))}const I=n(k);function P(n){return!n||(y(n,"length")?o(n,0):!!F(n)&&o(Object.keys(n),0))}const q=n(P);function C(n){return i(n,0)}const D=/{(.*?)}/g;function G(n,...t){const r=t[0];if(F(r))return n.replace(D,((n,t)=>{var e;return`${null!==(e=r[t])&&void 0!==e?e:n}`}));const e=[...t];return n.replace(D,(n=>`${P(e)?n:e.shift()}`))}function H(n){let t=n.initial;return{getState:function(){return t},transition:function(n,e){return t=r(t,n,e)},staticTransition:r};function r(t,r,e){var u,o,c;let i=null!==(o=null===(u=n.states[t])||void 0===u?void 0:u[r])&&void 0!==o?o:null===(c=n.states["*"])||void 0===c?void 0:c[r];if(Array.isArray(i)){const[,n]=i;if(!n(e))return t;i=i[0]}return i&&i!==t?i:t}}function J(n,t){return w(!h(n),t),n}var K=Object.freeze({__proto__:null,createTinyState:function(n){let t;return e(),()=>[t,r,e];function r(n){t=m(n,t)}function e(){r(m(n))}}});function L(n){return new String(m(n))}function M(){}export{H as StateMachine,L as StringObject,p as asArray,O as assign,n as bindNot,B as bus,a as cache,d as callEach,j as defaultTo,$ as deferThrow,A as either,x as genSeq,i as greaterThan,y as hasOwnProperty,w as invariant,k as isArray,E as isBoolean,P as isEmpty,N as isFunction,I as isNotArray,q as isNotEmpty,s as isNotNull,b as isNotNullish,r as isNotNumeric,g as isNotUndefined,l as isNull,h as isNullish,t as isNumeric,F as isObject,C as isPositive,_ as isPromise,S as isStringValue,v as isUndefined,o as lengthEquals,c as lengthNotEquals,f as longerThan,z as mapFirst,J as nonnullish,M as noop,e as numberEquals,u as numberNotEquals,m as optionalFunctionValue,T as seq,G as text,K as tinyState};
2
2
  //# sourceMappingURL=vest-utils.production.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vest-utils.production.js","sources":["../../src/bindNot.ts","../../src/isNumeric.ts","../../src/numberEquals.ts","../../src/lengthEquals.ts","../../src/greaterThan.ts","../../src/longerThan.ts","../../src/cache.ts","../../src/isNull.ts","../../src/isUndefined.ts","../../src/isNullish.ts","../../src/asArray.ts","../../src/callEach.ts","../../src/hasOwnProperty.ts","../../src/isFunction.ts","../../src/isPromise.ts","../../src/optionalFunctionValue.ts","../../src/assign.ts","../../src/defaultTo.ts","../../src/invariant.ts","../../src/isStringValue.ts","../../src/either.ts","../../src/isBooleanValue.ts","../../src/deferThrow.ts","../../src/bus.ts","../../src/seq.ts","../../src/mapFirst.ts","../../src/valueIsObject.ts","../../src/isArrayValue.ts","../../src/isEmpty.ts","../../src/isPositive.ts","../../src/text.ts","../../src/SimpleStateMachine.ts","../../src/nonnullish.ts","../../src/tinyState.ts","../../src/StringObject.ts","../../src/noop.ts"],"sourcesContent":["export default function bindNot<T extends (...args: any[]) => unknown>(fn: T) {\n return (...args: Parameters<T>): boolean => !fn(...args);\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 { isNumeric } from 'isNumeric';\n\nexport function greaterThan(\n value: number | string,\n gt: number | string\n): boolean {\n return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);\n}\n","import { greaterThan } from 'greaterThan';\n\nexport function longerThan(\n value: string | unknown[],\n arg1: string | number\n): boolean {\n return greaterThan(value.length, arg1);\n}\n","import { lengthEquals } from 'lengthEquals';\nimport { longerThan } from 'longerThan';\nimport { Nullable } from 'utilityTypes';\n\n/**\n * Creates a cache function\n */\nexport default function createCache<T = unknown>(maxSize = 1): CacheApi<T> {\n const cacheStorage: Array<[unknown[], T]> = [];\n\n const cache = (\n deps: unknown[],\n cacheAction: (...args: unknown[]) => T\n ): T => {\n const cacheHit = cache.get(deps);\n // cache hit is not null\n if (cacheHit) return cacheHit[1];\n\n const result = cacheAction();\n cacheStorage.unshift([deps.concat(), result]);\n\n if (longerThan(cacheStorage, maxSize)) cacheStorage.length = maxSize;\n\n return result;\n };\n\n // invalidate an item in the cache by its dependencies\n cache.invalidate = (deps: any[]): void => {\n const index = findIndex(deps);\n if (index > -1) cacheStorage.splice(index, 1);\n };\n\n // Retrieves an item from the cache.\n cache.get = (deps: unknown[]): Nullable<[unknown[], T]> =>\n cacheStorage[findIndex(deps)] || null;\n\n return cache;\n\n function findIndex(deps: unknown[]): number {\n return cacheStorage.findIndex(\n ([cachedDeps]) =>\n lengthEquals(deps, cachedDeps.length) &&\n deps.every((dep, i) => dep === cachedDeps[i])\n );\n }\n}\n\nexport type CacheApi<T = unknown> = {\n (deps: unknown[], cacheAction: (...args: unknown[]) => T): T;\n get(deps: unknown[]): Nullable<[unknown[], T]>;\n invalidate(item: any): void;\n};\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","export default function asArray<T>(possibleArg: T | T[]): T[] {\n return ([] as T[]).concat(possibleArg);\n}\n","import type { CB } from 'utilityTypes';\n\nexport default function callEach(arr: CB[]): void {\n return arr.forEach(fn => fn());\n}\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","export default function isFunction(\n value: unknown\n): value is (...args: unknown[]) => unknown {\n return typeof value === 'function';\n}\n","import isFunction from 'isFunction';\n\nexport default function isPromise(value: any): value is Promise<unknown> {\n return !!value && isFunction(value.then);\n}\n","import isFunction from 'isFunction';\nimport { DynamicValue } from 'utilityTypes';\n\nexport default function optionalFunctionValue<T>(\n value: DynamicValue<T>,\n ...args: unknown[]\n): T {\n return isFunction(value) ? value(...args) : value;\n}\n","export default Object.assign;\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport { DynamicValue, Nullish } from 'utilityTypes';\n\nexport default function defaultTo<T>(\n value: DynamicValue<Nullish<T>>,\n defaultValue: DynamicValue<T>\n): T {\n return optionalFunctionValue(value) ?? optionalFunctionValue(defaultValue);\n}\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport type { Stringable } from 'utilityTypes';\n\nexport default function invariant(\n condition: any,\n // eslint-disable-next-line @typescript-eslint/ban-types\n message?: String | Stringable\n): asserts condition {\n if (condition) {\n return;\n }\n\n // If message is a string object (rather than string literal)\n // Throw the value directly as a string\n // Alternatively, throw an error with the message\n throw message instanceof String\n ? message.valueOf()\n : new Error(message ? optionalFunctionValue(message) : message);\n}\n","export default function isStringValue(v: unknown): v is string {\n return String(v) === v;\n}\n","export default function either(a: unknown, b: unknown): boolean {\n return !!a !== !!b;\n}\n","export default function isBoolean(value: unknown): value is boolean {\n return !!value === value;\n}\n","export default function deferThrow(message?: string): void {\n setTimeout(() => {\n throw new Error(message);\n }, 0);\n}\n\nexport type TDeferThrow = typeof deferThrow;\n","import type { CB } from 'utilityTypes';\n\nexport function createBus(): BusType {\n const listeners: Record<string, CB[]> = {};\n\n return {\n emit(event: string, data?: any) {\n listener(event).forEach(handler => {\n handler(data);\n });\n },\n\n on(event: string, handler: CB): OnReturn {\n listeners[event] = listener(event).concat(handler);\n\n return {\n off() {\n listeners[event] = listener(event).filter(h => h !== handler);\n },\n };\n },\n };\n\n function listener(event: string): CB[] {\n return listeners[event] || [];\n }\n}\n\ntype OnReturn = { off: CB<void> };\n\nexport type BusType = {\n on: (event: string, handler: CB) => OnReturn;\n emit: (event: string, data?: any) => void;\n};\n","/**\n * @returns a unique numeric id.\n */\n\nimport { CB } from 'utilityTypes';\n\nconst seq = genSeq();\n\nexport default seq;\n\nexport function genSeq(namespace?: string): CB<string> {\n return (\n (n: number) => () =>\n `${namespace ? namespace + '_' : ''}${n++}`\n )(0);\n}\n","export default function mapFirst<T>(\n array: T[],\n callback: (\n item: T,\n breakout: (conditional: boolean, value: unknown) => void,\n index: number\n ) => unknown\n): any {\n let broke = false;\n let breakoutValue = null;\n for (let i = 0; i < array.length; i++) {\n callback(array[i], breakout, i);\n\n if (broke) {\n return breakoutValue;\n }\n }\n\n function breakout(conditional: boolean, value: unknown) {\n if (conditional) {\n broke = true;\n breakoutValue = value;\n }\n }\n}\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';\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';\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","import { greaterThan } from 'greaterThan';\n\nexport function isPositive(value: number | string): boolean {\n return greaterThan(value, 0);\n}\n","import { isEmpty } from 'isEmpty';\nimport { isObject } from 'valueIsObject';\n\nconst regexp = /{(.*?)}/g;\n\nexport function text(str: string, ...substitutions: Array<unknown>): string {\n const first = substitutions[0];\n\n if (isObject(first)) {\n return str.replace(regexp, (placeholder, key: string) => {\n return `${first[key] ?? placeholder}`;\n });\n }\n\n const subs = [...substitutions];\n\n return str.replace(regexp, placeholder => {\n return `${isEmpty(subs) ? placeholder : subs.shift()}`;\n });\n}\n","import { CB } from 'utilityTypes';\n\nconst STATE_WILD_CARD = '*';\ntype TStateWildCard = typeof STATE_WILD_CARD;\n\nexport type TStateMachine<S extends string, A extends string> = {\n initial: S;\n states: Partial<{\n [key in S & TStateWildCard]: {\n [key in A]?: S | [S, CB<boolean, [payload?: any]>];\n };\n }>;\n};\n\nexport type TStateMachineApi<S extends string, A extends string> = {\n getState: CB<S>;\n transition: (action: A, payload?: any) => void;\n staticTransition: (from: S, action: A, payload?: any) => S;\n};\n\nexport function StateMachine<S extends string, A extends string>(\n machine: TStateMachine<S, A>\n): TStateMachineApi<S, A> {\n let state = machine.initial;\n\n const api = { getState, transition, staticTransition };\n\n return api;\n\n function getState(): S {\n return state;\n }\n\n function transition(action: A, payload?: any): S {\n return (state = staticTransition(state, action, payload));\n }\n\n // eslint-disable-next-line complexity\n function staticTransition(from: S, action: A, payload?: any): S {\n const transitionTo =\n machine.states[from]?.[action] ??\n // @ts-expect-error - This is a valid state\n machine.states[STATE_WILD_CARD]?.[action];\n\n let target = transitionTo;\n\n if (Array.isArray(target)) {\n const [, conditional] = target;\n if (!conditional(payload)) {\n return from;\n }\n\n target = target[0];\n }\n\n if (!target || target === from) {\n return from;\n }\n\n return target as S;\n }\n}\n","import invariant from 'invariant';\n\nimport { isNullish } from 'isNullish';\nimport { Nullish } from 'utilityTypes';\n\nexport function nonnullish<T>(value: Nullish<T>, error?: string): T {\n invariant(!isNullish(value), error);\n\n return value;\n}\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport { DynamicValue } from 'utilityTypes';\n\nexport function createTinyState<S>(\n initialValue: SetValueInput<S>\n): TinyState<S> {\n let value: S;\n\n resetValue();\n\n return () => [value, setValue, resetValue];\n\n function setValue(nextValue: SetValueInput<S>) {\n value = optionalFunctionValue(nextValue, value);\n }\n\n function resetValue() {\n setValue(optionalFunctionValue(initialValue));\n }\n}\n\nexport type TinyState<S> = () => [\n value: S,\n setValue: (next: SetValueInput<S>) => void,\n resetValue: () => void\n];\n\ntype SetValueInput<S> = DynamicValue<S, [prev: S]>;\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport type { Stringable } from 'utilityTypes';\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function StringObject(value?: Stringable): String {\n return new String(optionalFunctionValue(value));\n}\n","// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport function noop() {}\n"],"names":["bindNot","fn","args","isNumeric","value","str","String","num","Number","result","isNaN","parseFloat","isFinite","Boolean","isNotNumeric","numberEquals","eq","numberNotEquals","lengthEquals","arg1","length","lengthNotEquals","greaterThan","gt","longerThan","createCache","maxSize","cacheStorage","cache","deps","cacheAction","cacheHit","get","unshift","concat","invalidate","index","findIndex","splice","cachedDeps","every","dep","i","isNull","isNotNull","isUndefined","undefined","isNotUndefined","isNullish","isNotNullish","asArray","possibleArg","callEach","arr","forEach","hasOwnProperty","obj","key","Object","prototype","call","isFunction","isPromise","then","optionalFunctionValue","assign","defaultTo","defaultValue","_a","invariant","condition","message","valueOf","Error","isStringValue","v","either","a","b","isBoolean","deferThrow","setTimeout","listeners","emit","event","data","listener","handler","on","off","filter","h","seq","genSeq","namespace","n","mapFirst","array","callback","broke","breakoutValue","breakout","conditional","isObject","isArray","Array","isNotArray","isEmpty","keys","isNotEmpty","isPositive","regexp","text","substitutions","first","replace","placeholder","subs","shift","StateMachine","machine","state","initial","getState","transition","action","payload","staticTransition","from","target","_b","states","_c","nonnullish","error","initialValue","resetValue","setValue","nextValue","StringObject","noop"],"mappings":"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"}
1
+ {"version":3,"file":"vest-utils.production.js","sources":["../../src/bindNot.ts","../../src/isNumeric.ts","../../src/numberEquals.ts","../../src/lengthEquals.ts","../../src/greaterThan.ts","../../src/longerThan.ts","../../src/cache.ts","../../src/isNull.ts","../../src/isUndefined.ts","../../src/isNullish.ts","../../src/asArray.ts","../../src/callEach.ts","../../src/hasOwnProperty.ts","../../src/isFunction.ts","../../src/isPromise.ts","../../src/optionalFunctionValue.ts","../../src/assign.ts","../../src/defaultTo.ts","../../src/invariant.ts","../../src/isStringValue.ts","../../src/either.ts","../../src/isBooleanValue.ts","../../src/deferThrow.ts","../../src/bus.ts","../../src/seq.ts","../../src/mapFirst.ts","../../src/valueIsObject.ts","../../src/isArrayValue.ts","../../src/isEmpty.ts","../../src/isPositive.ts","../../src/text.ts","../../src/SimpleStateMachine.ts","../../src/nonnullish.ts","../../src/tinyState.ts","../../src/StringObject.ts","../../src/noop.ts"],"sourcesContent":["export default function bindNot<T extends (...args: any[]) => unknown>(fn: T) {\n return (...args: Parameters<T>): boolean => !fn(...args);\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 { isNumeric } from 'isNumeric';\n\nexport function greaterThan(\n value: number | string,\n gt: number | string\n): boolean {\n return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);\n}\n","import { greaterThan } from 'greaterThan';\n\nexport function longerThan(\n value: string | unknown[],\n arg1: string | number\n): boolean {\n return greaterThan(value.length, arg1);\n}\n","import { lengthEquals } from 'lengthEquals';\nimport { longerThan } from 'longerThan';\nimport { Nullable } from 'utilityTypes';\n\n/**\n * Creates a cache function\n */\nexport default function createCache<T = unknown>(maxSize = 1): CacheApi<T> {\n const cacheStorage: Array<[unknown[], T]> = [];\n\n const cache = (\n deps: unknown[],\n cacheAction: (...args: unknown[]) => T\n ): T => {\n const cacheHit = cache.get(deps);\n // cache hit is not null\n if (cacheHit) return cacheHit[1];\n\n const result = cacheAction();\n cacheStorage.unshift([deps.concat(), result]);\n\n if (longerThan(cacheStorage, maxSize)) cacheStorage.length = maxSize;\n\n return result;\n };\n\n // invalidate an item in the cache by its dependencies\n cache.invalidate = (deps: any[]): void => {\n const index = findIndex(deps);\n if (index > -1) cacheStorage.splice(index, 1);\n };\n\n // Retrieves an item from the cache.\n cache.get = (deps: unknown[]): Nullable<[unknown[], T]> =>\n cacheStorage[findIndex(deps)] || null;\n\n return cache;\n\n function findIndex(deps: unknown[]): number {\n return cacheStorage.findIndex(\n ([cachedDeps]) =>\n lengthEquals(deps, cachedDeps.length) &&\n deps.every((dep, i) => dep === cachedDeps[i])\n );\n }\n}\n\nexport type CacheApi<T = unknown> = {\n (deps: unknown[], cacheAction: (...args: unknown[]) => T): T;\n get(deps: unknown[]): Nullable<[unknown[], T]>;\n invalidate(item: any): void;\n};\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","export default function asArray<T>(possibleArg: T | T[]): T[] {\n return ([] as T[]).concat(possibleArg);\n}\n","import type { CB } from 'utilityTypes';\n\nexport default function callEach(arr: CB[]): void {\n return arr.forEach(fn => fn());\n}\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","export default function isFunction(\n value: unknown\n): value is (...args: unknown[]) => unknown {\n return typeof value === 'function';\n}\n","import isFunction from 'isFunction';\n\nexport default function isPromise(value: any): value is Promise<unknown> {\n return !!value && isFunction(value.then);\n}\n","import isFunction from 'isFunction';\nimport { DynamicValue } from 'utilityTypes';\n\nexport default function optionalFunctionValue<T>(\n value: DynamicValue<T>,\n ...args: unknown[]\n): T {\n return isFunction(value) ? value(...args) : value;\n}\n","export default Object.assign;\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport { DynamicValue, Nullish } from 'utilityTypes';\n\nexport default function defaultTo<T>(\n value: DynamicValue<Nullish<T>>,\n defaultValue: DynamicValue<T>\n): T {\n return optionalFunctionValue(value) ?? optionalFunctionValue(defaultValue);\n}\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport type { Stringable } from 'utilityTypes';\n\nexport default function invariant(\n condition: any,\n // eslint-disable-next-line @typescript-eslint/ban-types\n message?: String | Stringable\n): asserts condition {\n if (condition) {\n return;\n }\n\n // If message is a string object (rather than string literal)\n // Throw the value directly as a string\n // Alternatively, throw an error with the message\n throw message instanceof String\n ? message.valueOf()\n : new Error(message ? optionalFunctionValue(message) : message);\n}\n","export default function isStringValue(v: unknown): v is string {\n return String(v) === v;\n}\n","export default function either(a: unknown, b: unknown): boolean {\n return !!a !== !!b;\n}\n","export default function isBoolean(value: unknown): value is boolean {\n return !!value === value;\n}\n","export default function deferThrow(message?: string): void {\n setTimeout(() => {\n throw new Error(message);\n }, 0);\n}\n\nexport type TDeferThrow = typeof deferThrow;\n","import type { CB } from 'utilityTypes';\n\nconst EVENT_WILDCARD = '*';\n\nexport function createBus(): BusType {\n const listeners: Record<string, CB[]> = {};\n\n return {\n emit(event: string, data?: any) {\n getListeners(event)\n .concat(getListeners(EVENT_WILDCARD))\n .forEach(handler => {\n handler(data);\n });\n },\n\n on(event: string, handler: CB): OnReturn {\n listeners[event] = getListeners(event).concat(handler);\n\n return {\n off() {\n listeners[event] = getListeners(event).filter(h => h !== handler);\n },\n };\n },\n };\n\n function getListeners(event: string): CB[] {\n return listeners[event] || [];\n }\n}\n\ntype OnReturn = { off: CB<void> };\n\nexport type BusType = {\n on: (event: string, handler: CB) => OnReturn;\n emit: (event: string, data?: any) => void;\n};\n","/**\n * @returns a unique numeric id.\n */\n\nimport { CB } from 'utilityTypes';\n\nconst seq = genSeq();\n\nexport default seq;\n\nexport function genSeq(namespace?: string): CB<string> {\n return (\n (n: number) => () =>\n `${namespace ? namespace + '_' : ''}${n++}`\n )(0);\n}\n","export default function mapFirst<T>(\n array: T[],\n callback: (\n item: T,\n breakout: (conditional: boolean, value: unknown) => void,\n index: number\n ) => unknown\n): any {\n let broke = false;\n let breakoutValue = null;\n for (let i = 0; i < array.length; i++) {\n callback(array[i], breakout, i);\n\n if (broke) {\n return breakoutValue;\n }\n }\n\n function breakout(conditional: boolean, value: unknown) {\n if (conditional) {\n broke = true;\n breakoutValue = value;\n }\n }\n}\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';\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';\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","import { greaterThan } from 'greaterThan';\n\nexport function isPositive(value: number | string): boolean {\n return greaterThan(value, 0);\n}\n","import { isEmpty } from 'isEmpty';\nimport { isObject } from 'valueIsObject';\n\nconst regexp = /{(.*?)}/g;\n\nexport function text(str: string, ...substitutions: Array<unknown>): string {\n const first = substitutions[0];\n\n if (isObject(first)) {\n return str.replace(regexp, (placeholder, key: string) => {\n return `${first[key] ?? placeholder}`;\n });\n }\n\n const subs = [...substitutions];\n\n return str.replace(regexp, placeholder => {\n return `${isEmpty(subs) ? placeholder : subs.shift()}`;\n });\n}\n","import { CB } from 'utilityTypes';\n\nconst STATE_WILD_CARD = '*';\ntype TStateWildCard = typeof STATE_WILD_CARD;\n\nexport type TStateMachine<S extends string, A extends string> = {\n initial: S;\n states: Partial<{\n [key in S & TStateWildCard]: {\n [key in A]?: S | [S, CB<boolean, [payload?: any]>];\n };\n }>;\n};\n\nexport type TStateMachineApi<S extends string, A extends string> = {\n getState: CB<S>;\n transition: (action: A, payload?: any) => void;\n staticTransition: (from: S, action: A, payload?: any) => S;\n};\n\nexport function StateMachine<S extends string, A extends string>(\n machine: TStateMachine<S, A>\n): TStateMachineApi<S, A> {\n let state = machine.initial;\n\n const api = { getState, transition, staticTransition };\n\n return api;\n\n function getState(): S {\n return state;\n }\n\n function transition(action: A, payload?: any): S {\n return (state = staticTransition(state, action, payload));\n }\n\n // eslint-disable-next-line complexity\n function staticTransition(from: S, action: A, payload?: any): S {\n const transitionTo =\n machine.states[from]?.[action] ??\n // @ts-expect-error - This is a valid state\n machine.states[STATE_WILD_CARD]?.[action];\n\n let target = transitionTo;\n\n if (Array.isArray(target)) {\n const [, conditional] = target;\n if (!conditional(payload)) {\n return from;\n }\n\n target = target[0];\n }\n\n if (!target || target === from) {\n return from;\n }\n\n return target as S;\n }\n}\n","import invariant from 'invariant';\n\nimport { isNullish } from 'isNullish';\nimport { Nullish } from 'utilityTypes';\n\nexport function nonnullish<T>(value: Nullish<T>, error?: string): T {\n invariant(!isNullish(value), error);\n\n return value;\n}\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport { DynamicValue } from 'utilityTypes';\n\nexport function createTinyState<S>(\n initialValue: SetValueInput<S>\n): TinyState<S> {\n let value: S;\n\n resetValue();\n\n return () => [value, setValue, resetValue];\n\n function setValue(nextValue: SetValueInput<S>) {\n value = optionalFunctionValue(nextValue, value);\n }\n\n function resetValue() {\n setValue(optionalFunctionValue(initialValue));\n }\n}\n\nexport type TinyState<S> = () => [\n value: S,\n setValue: (next: SetValueInput<S>) => void,\n resetValue: () => void\n];\n\ntype SetValueInput<S> = DynamicValue<S, [prev: S]>;\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport type { Stringable } from 'utilityTypes';\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function StringObject(value?: Stringable): String {\n return new String(optionalFunctionValue(value));\n}\n","// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport function noop() {}\n"],"names":["bindNot","fn","args","isNumeric","value","str","String","num","Number","result","isNaN","parseFloat","isFinite","Boolean","isNotNumeric","numberEquals","eq","numberNotEquals","lengthEquals","arg1","length","lengthNotEquals","greaterThan","gt","longerThan","createCache","maxSize","cacheStorage","cache","deps","cacheAction","cacheHit","get","unshift","concat","invalidate","index","findIndex","splice","cachedDeps","every","dep","i","isNull","isNotNull","isUndefined","undefined","isNotUndefined","isNullish","isNotNullish","asArray","possibleArg","callEach","arr","forEach","hasOwnProperty","obj","key","Object","prototype","call","isFunction","isPromise","then","optionalFunctionValue","assign","defaultTo","defaultValue","_a","invariant","condition","message","valueOf","Error","isStringValue","v","either","a","b","isBoolean","deferThrow","setTimeout","listeners","emit","event","data","getListeners","handler","on","off","filter","h","seq","genSeq","namespace","n","mapFirst","array","callback","broke","breakoutValue","breakout","conditional","isObject","isArray","Array","isNotArray","isEmpty","keys","isNotEmpty","isPositive","regexp","text","substitutions","first","replace","placeholder","subs","shift","StateMachine","machine","state","initial","getState","transition","action","payload","staticTransition","from","target","_b","states","_c","nonnullish","error","initialValue","resetValue","setValue","nextValue","StringObject","noop"],"mappings":"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"}
@@ -146,24 +146,27 @@
146
146
  }, 0);
147
147
  }
148
148
 
149
+ const EVENT_WILDCARD = '*';
149
150
  function createBus() {
150
151
  const listeners = {};
151
152
  return {
152
153
  emit(event, data) {
153
- listener(event).forEach(handler => {
154
+ getListeners(event)
155
+ .concat(getListeners(EVENT_WILDCARD))
156
+ .forEach(handler => {
154
157
  handler(data);
155
158
  });
156
159
  },
157
160
  on(event, handler) {
158
- listeners[event] = listener(event).concat(handler);
161
+ listeners[event] = getListeners(event).concat(handler);
159
162
  return {
160
163
  off() {
161
- listeners[event] = listener(event).filter(h => h !== handler);
164
+ listeners[event] = getListeners(event).filter(h => h !== handler);
162
165
  },
163
166
  };
164
167
  },
165
168
  };
166
- function listener(event) {
169
+ function getListeners(event) {
167
170
  return listeners[event] || [];
168
171
  }
169
172
  }
@@ -1 +1 @@
1
- {"version":3,"file":"vest-utils.development.js","sources":["../../src/bindNot.ts","../../src/isNumeric.ts","../../src/numberEquals.ts","../../src/lengthEquals.ts","../../src/greaterThan.ts","../../src/longerThan.ts","../../src/cache.ts","../../src/isNull.ts","../../src/isUndefined.ts","../../src/isNullish.ts","../../src/asArray.ts","../../src/callEach.ts","../../src/hasOwnProperty.ts","../../src/isFunction.ts","../../src/isPromise.ts","../../src/optionalFunctionValue.ts","../../src/assign.ts","../../src/defaultTo.ts","../../src/invariant.ts","../../src/isStringValue.ts","../../src/either.ts","../../src/isBooleanValue.ts","../../src/deferThrow.ts","../../src/bus.ts","../../src/seq.ts","../../src/mapFirst.ts","../../src/valueIsObject.ts","../../src/isArrayValue.ts","../../src/isEmpty.ts","../../src/isPositive.ts","../../src/text.ts","../../src/SimpleStateMachine.ts","../../src/nonnullish.ts","../../src/tinyState.ts","../../src/StringObject.ts","../../src/noop.ts"],"sourcesContent":["export default function bindNot<T extends (...args: any[]) => unknown>(fn: T) {\n return (...args: Parameters<T>): boolean => !fn(...args);\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 { isNumeric } from 'isNumeric';\n\nexport function greaterThan(\n value: number | string,\n gt: number | string\n): boolean {\n return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);\n}\n","import { greaterThan } from 'greaterThan';\n\nexport function longerThan(\n value: string | unknown[],\n arg1: string | number\n): boolean {\n return greaterThan(value.length, arg1);\n}\n","import { lengthEquals } from 'lengthEquals';\nimport { longerThan } from 'longerThan';\nimport { Nullable } from 'utilityTypes';\n\n/**\n * Creates a cache function\n */\nexport default function createCache<T = unknown>(maxSize = 1): CacheApi<T> {\n const cacheStorage: Array<[unknown[], T]> = [];\n\n const cache = (\n deps: unknown[],\n cacheAction: (...args: unknown[]) => T\n ): T => {\n const cacheHit = cache.get(deps);\n // cache hit is not null\n if (cacheHit) return cacheHit[1];\n\n const result = cacheAction();\n cacheStorage.unshift([deps.concat(), result]);\n\n if (longerThan(cacheStorage, maxSize)) cacheStorage.length = maxSize;\n\n return result;\n };\n\n // invalidate an item in the cache by its dependencies\n cache.invalidate = (deps: any[]): void => {\n const index = findIndex(deps);\n if (index > -1) cacheStorage.splice(index, 1);\n };\n\n // Retrieves an item from the cache.\n cache.get = (deps: unknown[]): Nullable<[unknown[], T]> =>\n cacheStorage[findIndex(deps)] || null;\n\n return cache;\n\n function findIndex(deps: unknown[]): number {\n return cacheStorage.findIndex(\n ([cachedDeps]) =>\n lengthEquals(deps, cachedDeps.length) &&\n deps.every((dep, i) => dep === cachedDeps[i])\n );\n }\n}\n\nexport type CacheApi<T = unknown> = {\n (deps: unknown[], cacheAction: (...args: unknown[]) => T): T;\n get(deps: unknown[]): Nullable<[unknown[], T]>;\n invalidate(item: any): void;\n};\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","export default function asArray<T>(possibleArg: T | T[]): T[] {\n return ([] as T[]).concat(possibleArg);\n}\n","import type { CB } from 'utilityTypes';\n\nexport default function callEach(arr: CB[]): void {\n return arr.forEach(fn => fn());\n}\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","export default function isFunction(\n value: unknown\n): value is (...args: unknown[]) => unknown {\n return typeof value === 'function';\n}\n","import isFunction from 'isFunction';\n\nexport default function isPromise(value: any): value is Promise<unknown> {\n return !!value && isFunction(value.then);\n}\n","import isFunction from 'isFunction';\nimport { DynamicValue } from 'utilityTypes';\n\nexport default function optionalFunctionValue<T>(\n value: DynamicValue<T>,\n ...args: unknown[]\n): T {\n return isFunction(value) ? value(...args) : value;\n}\n","export default Object.assign;\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport { DynamicValue, Nullish } from 'utilityTypes';\n\nexport default function defaultTo<T>(\n value: DynamicValue<Nullish<T>>,\n defaultValue: DynamicValue<T>\n): T {\n return optionalFunctionValue(value) ?? optionalFunctionValue(defaultValue);\n}\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport type { Stringable } from 'utilityTypes';\n\nexport default function invariant(\n condition: any,\n // eslint-disable-next-line @typescript-eslint/ban-types\n message?: String | Stringable\n): asserts condition {\n if (condition) {\n return;\n }\n\n // If message is a string object (rather than string literal)\n // Throw the value directly as a string\n // Alternatively, throw an error with the message\n throw message instanceof String\n ? message.valueOf()\n : new Error(message ? optionalFunctionValue(message) : message);\n}\n","export default function isStringValue(v: unknown): v is string {\n return String(v) === v;\n}\n","export default function either(a: unknown, b: unknown): boolean {\n return !!a !== !!b;\n}\n","export default function isBoolean(value: unknown): value is boolean {\n return !!value === value;\n}\n","export default function deferThrow(message?: string): void {\n setTimeout(() => {\n throw new Error(message);\n }, 0);\n}\n\nexport type TDeferThrow = typeof deferThrow;\n","import type { CB } from 'utilityTypes';\n\nexport function createBus(): BusType {\n const listeners: Record<string, CB[]> = {};\n\n return {\n emit(event: string, data?: any) {\n listener(event).forEach(handler => {\n handler(data);\n });\n },\n\n on(event: string, handler: CB): OnReturn {\n listeners[event] = listener(event).concat(handler);\n\n return {\n off() {\n listeners[event] = listener(event).filter(h => h !== handler);\n },\n };\n },\n };\n\n function listener(event: string): CB[] {\n return listeners[event] || [];\n }\n}\n\ntype OnReturn = { off: CB<void> };\n\nexport type BusType = {\n on: (event: string, handler: CB) => OnReturn;\n emit: (event: string, data?: any) => void;\n};\n","/**\n * @returns a unique numeric id.\n */\n\nimport { CB } from 'utilityTypes';\n\nconst seq = genSeq();\n\nexport default seq;\n\nexport function genSeq(namespace?: string): CB<string> {\n return (\n (n: number) => () =>\n `${namespace ? namespace + '_' : ''}${n++}`\n )(0);\n}\n","export default function mapFirst<T>(\n array: T[],\n callback: (\n item: T,\n breakout: (conditional: boolean, value: unknown) => void,\n index: number\n ) => unknown\n): any {\n let broke = false;\n let breakoutValue = null;\n for (let i = 0; i < array.length; i++) {\n callback(array[i], breakout, i);\n\n if (broke) {\n return breakoutValue;\n }\n }\n\n function breakout(conditional: boolean, value: unknown) {\n if (conditional) {\n broke = true;\n breakoutValue = value;\n }\n }\n}\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';\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';\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","import { greaterThan } from 'greaterThan';\n\nexport function isPositive(value: number | string): boolean {\n return greaterThan(value, 0);\n}\n","import { isEmpty } from 'isEmpty';\nimport { isObject } from 'valueIsObject';\n\nconst regexp = /{(.*?)}/g;\n\nexport function text(str: string, ...substitutions: Array<unknown>): string {\n const first = substitutions[0];\n\n if (isObject(first)) {\n return str.replace(regexp, (placeholder, key: string) => {\n return `${first[key] ?? placeholder}`;\n });\n }\n\n const subs = [...substitutions];\n\n return str.replace(regexp, placeholder => {\n return `${isEmpty(subs) ? placeholder : subs.shift()}`;\n });\n}\n","import { CB } from 'utilityTypes';\n\nconst STATE_WILD_CARD = '*';\ntype TStateWildCard = typeof STATE_WILD_CARD;\n\nexport type TStateMachine<S extends string, A extends string> = {\n initial: S;\n states: Partial<{\n [key in S & TStateWildCard]: {\n [key in A]?: S | [S, CB<boolean, [payload?: any]>];\n };\n }>;\n};\n\nexport type TStateMachineApi<S extends string, A extends string> = {\n getState: CB<S>;\n transition: (action: A, payload?: any) => void;\n staticTransition: (from: S, action: A, payload?: any) => S;\n};\n\nexport function StateMachine<S extends string, A extends string>(\n machine: TStateMachine<S, A>\n): TStateMachineApi<S, A> {\n let state = machine.initial;\n\n const api = { getState, transition, staticTransition };\n\n return api;\n\n function getState(): S {\n return state;\n }\n\n function transition(action: A, payload?: any): S {\n return (state = staticTransition(state, action, payload));\n }\n\n // eslint-disable-next-line complexity\n function staticTransition(from: S, action: A, payload?: any): S {\n const transitionTo =\n machine.states[from]?.[action] ??\n // @ts-expect-error - This is a valid state\n machine.states[STATE_WILD_CARD]?.[action];\n\n let target = transitionTo;\n\n if (Array.isArray(target)) {\n const [, conditional] = target;\n if (!conditional(payload)) {\n return from;\n }\n\n target = target[0];\n }\n\n if (!target || target === from) {\n return from;\n }\n\n return target as S;\n }\n}\n","import invariant from 'invariant';\n\nimport { isNullish } from 'isNullish';\nimport { Nullish } from 'utilityTypes';\n\nexport function nonnullish<T>(value: Nullish<T>, error?: string): T {\n invariant(!isNullish(value), error);\n\n return value;\n}\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport { DynamicValue } from 'utilityTypes';\n\nexport function createTinyState<S>(\n initialValue: SetValueInput<S>\n): TinyState<S> {\n let value: S;\n\n resetValue();\n\n return () => [value, setValue, resetValue];\n\n function setValue(nextValue: SetValueInput<S>) {\n value = optionalFunctionValue(nextValue, value);\n }\n\n function resetValue() {\n setValue(optionalFunctionValue(initialValue));\n }\n}\n\nexport type TinyState<S> = () => [\n value: S,\n setValue: (next: SetValueInput<S>) => void,\n resetValue: () => void\n];\n\ntype SetValueInput<S> = DynamicValue<S, [prev: S]>;\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport type { Stringable } from 'utilityTypes';\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function StringObject(value?: Stringable): String {\n return new String(optionalFunctionValue(value));\n}\n","// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport function noop() {}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vest-utils.development.js","sources":["../../src/bindNot.ts","../../src/isNumeric.ts","../../src/numberEquals.ts","../../src/lengthEquals.ts","../../src/greaterThan.ts","../../src/longerThan.ts","../../src/cache.ts","../../src/isNull.ts","../../src/isUndefined.ts","../../src/isNullish.ts","../../src/asArray.ts","../../src/callEach.ts","../../src/hasOwnProperty.ts","../../src/isFunction.ts","../../src/isPromise.ts","../../src/optionalFunctionValue.ts","../../src/assign.ts","../../src/defaultTo.ts","../../src/invariant.ts","../../src/isStringValue.ts","../../src/either.ts","../../src/isBooleanValue.ts","../../src/deferThrow.ts","../../src/bus.ts","../../src/seq.ts","../../src/mapFirst.ts","../../src/valueIsObject.ts","../../src/isArrayValue.ts","../../src/isEmpty.ts","../../src/isPositive.ts","../../src/text.ts","../../src/SimpleStateMachine.ts","../../src/nonnullish.ts","../../src/tinyState.ts","../../src/StringObject.ts","../../src/noop.ts"],"sourcesContent":["export default function bindNot<T extends (...args: any[]) => unknown>(fn: T) {\n return (...args: Parameters<T>): boolean => !fn(...args);\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 { isNumeric } from 'isNumeric';\n\nexport function greaterThan(\n value: number | string,\n gt: number | string\n): boolean {\n return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);\n}\n","import { greaterThan } from 'greaterThan';\n\nexport function longerThan(\n value: string | unknown[],\n arg1: string | number\n): boolean {\n return greaterThan(value.length, arg1);\n}\n","import { lengthEquals } from 'lengthEquals';\nimport { longerThan } from 'longerThan';\nimport { Nullable } from 'utilityTypes';\n\n/**\n * Creates a cache function\n */\nexport default function createCache<T = unknown>(maxSize = 1): CacheApi<T> {\n const cacheStorage: Array<[unknown[], T]> = [];\n\n const cache = (\n deps: unknown[],\n cacheAction: (...args: unknown[]) => T\n ): T => {\n const cacheHit = cache.get(deps);\n // cache hit is not null\n if (cacheHit) return cacheHit[1];\n\n const result = cacheAction();\n cacheStorage.unshift([deps.concat(), result]);\n\n if (longerThan(cacheStorage, maxSize)) cacheStorage.length = maxSize;\n\n return result;\n };\n\n // invalidate an item in the cache by its dependencies\n cache.invalidate = (deps: any[]): void => {\n const index = findIndex(deps);\n if (index > -1) cacheStorage.splice(index, 1);\n };\n\n // Retrieves an item from the cache.\n cache.get = (deps: unknown[]): Nullable<[unknown[], T]> =>\n cacheStorage[findIndex(deps)] || null;\n\n return cache;\n\n function findIndex(deps: unknown[]): number {\n return cacheStorage.findIndex(\n ([cachedDeps]) =>\n lengthEquals(deps, cachedDeps.length) &&\n deps.every((dep, i) => dep === cachedDeps[i])\n );\n }\n}\n\nexport type CacheApi<T = unknown> = {\n (deps: unknown[], cacheAction: (...args: unknown[]) => T): T;\n get(deps: unknown[]): Nullable<[unknown[], T]>;\n invalidate(item: any): void;\n};\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","export default function asArray<T>(possibleArg: T | T[]): T[] {\n return ([] as T[]).concat(possibleArg);\n}\n","import type { CB } from 'utilityTypes';\n\nexport default function callEach(arr: CB[]): void {\n return arr.forEach(fn => fn());\n}\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","export default function isFunction(\n value: unknown\n): value is (...args: unknown[]) => unknown {\n return typeof value === 'function';\n}\n","import isFunction from 'isFunction';\n\nexport default function isPromise(value: any): value is Promise<unknown> {\n return !!value && isFunction(value.then);\n}\n","import isFunction from 'isFunction';\nimport { DynamicValue } from 'utilityTypes';\n\nexport default function optionalFunctionValue<T>(\n value: DynamicValue<T>,\n ...args: unknown[]\n): T {\n return isFunction(value) ? value(...args) : value;\n}\n","export default Object.assign;\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport { DynamicValue, Nullish } from 'utilityTypes';\n\nexport default function defaultTo<T>(\n value: DynamicValue<Nullish<T>>,\n defaultValue: DynamicValue<T>\n): T {\n return optionalFunctionValue(value) ?? optionalFunctionValue(defaultValue);\n}\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport type { Stringable } from 'utilityTypes';\n\nexport default function invariant(\n condition: any,\n // eslint-disable-next-line @typescript-eslint/ban-types\n message?: String | Stringable\n): asserts condition {\n if (condition) {\n return;\n }\n\n // If message is a string object (rather than string literal)\n // Throw the value directly as a string\n // Alternatively, throw an error with the message\n throw message instanceof String\n ? message.valueOf()\n : new Error(message ? optionalFunctionValue(message) : message);\n}\n","export default function isStringValue(v: unknown): v is string {\n return String(v) === v;\n}\n","export default function either(a: unknown, b: unknown): boolean {\n return !!a !== !!b;\n}\n","export default function isBoolean(value: unknown): value is boolean {\n return !!value === value;\n}\n","export default function deferThrow(message?: string): void {\n setTimeout(() => {\n throw new Error(message);\n }, 0);\n}\n\nexport type TDeferThrow = typeof deferThrow;\n","import type { CB } from 'utilityTypes';\n\nconst EVENT_WILDCARD = '*';\n\nexport function createBus(): BusType {\n const listeners: Record<string, CB[]> = {};\n\n return {\n emit(event: string, data?: any) {\n getListeners(event)\n .concat(getListeners(EVENT_WILDCARD))\n .forEach(handler => {\n handler(data);\n });\n },\n\n on(event: string, handler: CB): OnReturn {\n listeners[event] = getListeners(event).concat(handler);\n\n return {\n off() {\n listeners[event] = getListeners(event).filter(h => h !== handler);\n },\n };\n },\n };\n\n function getListeners(event: string): CB[] {\n return listeners[event] || [];\n }\n}\n\ntype OnReturn = { off: CB<void> };\n\nexport type BusType = {\n on: (event: string, handler: CB) => OnReturn;\n emit: (event: string, data?: any) => void;\n};\n","/**\n * @returns a unique numeric id.\n */\n\nimport { CB } from 'utilityTypes';\n\nconst seq = genSeq();\n\nexport default seq;\n\nexport function genSeq(namespace?: string): CB<string> {\n return (\n (n: number) => () =>\n `${namespace ? namespace + '_' : ''}${n++}`\n )(0);\n}\n","export default function mapFirst<T>(\n array: T[],\n callback: (\n item: T,\n breakout: (conditional: boolean, value: unknown) => void,\n index: number\n ) => unknown\n): any {\n let broke = false;\n let breakoutValue = null;\n for (let i = 0; i < array.length; i++) {\n callback(array[i], breakout, i);\n\n if (broke) {\n return breakoutValue;\n }\n }\n\n function breakout(conditional: boolean, value: unknown) {\n if (conditional) {\n broke = true;\n breakoutValue = value;\n }\n }\n}\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';\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';\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","import { greaterThan } from 'greaterThan';\n\nexport function isPositive(value: number | string): boolean {\n return greaterThan(value, 0);\n}\n","import { isEmpty } from 'isEmpty';\nimport { isObject } from 'valueIsObject';\n\nconst regexp = /{(.*?)}/g;\n\nexport function text(str: string, ...substitutions: Array<unknown>): string {\n const first = substitutions[0];\n\n if (isObject(first)) {\n return str.replace(regexp, (placeholder, key: string) => {\n return `${first[key] ?? placeholder}`;\n });\n }\n\n const subs = [...substitutions];\n\n return str.replace(regexp, placeholder => {\n return `${isEmpty(subs) ? placeholder : subs.shift()}`;\n });\n}\n","import { CB } from 'utilityTypes';\n\nconst STATE_WILD_CARD = '*';\ntype TStateWildCard = typeof STATE_WILD_CARD;\n\nexport type TStateMachine<S extends string, A extends string> = {\n initial: S;\n states: Partial<{\n [key in S & TStateWildCard]: {\n [key in A]?: S | [S, CB<boolean, [payload?: any]>];\n };\n }>;\n};\n\nexport type TStateMachineApi<S extends string, A extends string> = {\n getState: CB<S>;\n transition: (action: A, payload?: any) => void;\n staticTransition: (from: S, action: A, payload?: any) => S;\n};\n\nexport function StateMachine<S extends string, A extends string>(\n machine: TStateMachine<S, A>\n): TStateMachineApi<S, A> {\n let state = machine.initial;\n\n const api = { getState, transition, staticTransition };\n\n return api;\n\n function getState(): S {\n return state;\n }\n\n function transition(action: A, payload?: any): S {\n return (state = staticTransition(state, action, payload));\n }\n\n // eslint-disable-next-line complexity\n function staticTransition(from: S, action: A, payload?: any): S {\n const transitionTo =\n machine.states[from]?.[action] ??\n // @ts-expect-error - This is a valid state\n machine.states[STATE_WILD_CARD]?.[action];\n\n let target = transitionTo;\n\n if (Array.isArray(target)) {\n const [, conditional] = target;\n if (!conditional(payload)) {\n return from;\n }\n\n target = target[0];\n }\n\n if (!target || target === from) {\n return from;\n }\n\n return target as S;\n }\n}\n","import invariant from 'invariant';\n\nimport { isNullish } from 'isNullish';\nimport { Nullish } from 'utilityTypes';\n\nexport function nonnullish<T>(value: Nullish<T>, error?: string): T {\n invariant(!isNullish(value), error);\n\n return value;\n}\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport { DynamicValue } from 'utilityTypes';\n\nexport function createTinyState<S>(\n initialValue: SetValueInput<S>\n): TinyState<S> {\n let value: S;\n\n resetValue();\n\n return () => [value, setValue, resetValue];\n\n function setValue(nextValue: SetValueInput<S>) {\n value = optionalFunctionValue(nextValue, value);\n }\n\n function resetValue() {\n setValue(optionalFunctionValue(initialValue));\n }\n}\n\nexport type TinyState<S> = () => [\n value: S,\n setValue: (next: SetValueInput<S>) => void,\n resetValue: () => void\n];\n\ntype SetValueInput<S> = DynamicValue<S, [prev: S]>;\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport type { Stringable } from 'utilityTypes';\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function StringObject(value?: Stringable): String {\n return new String(optionalFunctionValue(value));\n}\n","// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport function noop() {}\n"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- !function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self)["vest-utils"]={})}(this,(function(n){"use strict";function t(n){return(...t)=>!n(...t)}function e(n){const t=String(n),e=Number(n),r=!isNaN(parseFloat(t))&&!isNaN(Number(n))&&isFinite(e);return Boolean(r)}const r=t(e);function i(n,t){return e(n)&&e(t)&&Number(n)===Number(t)}const o=t(i);function u(n,t){return i(n.length,t)}const c=t(u);function s(n,t){return e(n)&&e(t)&&Number(n)>Number(t)}function f(n,t){return s(n.length,t)}function l(n){return null===n}const a=t(l);function h(n){return void 0===n}const d=t(h);function g(n){return l(n)||h(n)}const N=t(g);function p(n,t){return Object.prototype.hasOwnProperty.call(n,t)}function y(n){return"function"==typeof n}function b(n,...t){return y(n)?n(...t):n}var v=Object.assign;function m(n,t){if(!n)throw t instanceof String?t.valueOf():new Error(t?b(t):t)}var E=Object.freeze({__proto__:null,createBus:function(){const n={};return{emit(n,e){t(n).forEach((n=>{n(e)}))},on:(e,r)=>(n[e]=t(e).concat(r),{off(){n[e]=t(e).filter((n=>n!==r))}})};function t(t){return n[t]||[]}}});const S=O();function O(n){return t=0,()=>`${n?n+"_":""}${t++}`;var t}function j(n){return"object"==typeof n&&!g(n)}function T(n){return Boolean(Array.isArray(n))}const _=t(T);function w(n){return!n||(p(n,"length")?u(n,0):!!j(n)&&u(Object.keys(n),0))}const A=t(w);const q=/{(.*?)}/g;var x=Object.freeze({__proto__:null,createTinyState:function(n){let t;return r(),()=>[t,e,r];function e(n){t=b(n,t)}function r(){e(b(n))}}});n.StateMachine=function(n){let t=n.initial;return{getState:function(){return t},transition:function(n,r){return t=e(t,n,r)},staticTransition:e};function e(t,e,r){var i,o,u;let c=null!==(o=null===(i=n.states[t])||void 0===i?void 0:i[e])&&void 0!==o?o:null===(u=n.states["*"])||void 0===u?void 0:u[e];if(Array.isArray(c)){const[,n]=c;if(!n(r))return t;c=c[0]}return c&&c!==t?c:t}},n.StringObject=function(n){return new String(b(n))},n.asArray=function(n){return[].concat(n)},n.assign=v,n.bindNot=t,n.bus=E,n.cache=function(n=1){const t=[],e=(r,i)=>{const o=e.get(r);if(o)return o[1];const u=i();return t.unshift([r.concat(),u]),f(t,n)&&(t.length=n),u};return e.invalidate=n=>{const e=r(n);e>-1&&t.splice(e,1)},e.get=n=>t[r(n)]||null,e;function r(n){return t.findIndex((([t])=>u(n,t.length)&&n.every(((n,e)=>n===t[e]))))}},n.callEach=function(n){return n.forEach((n=>n()))},n.defaultTo=function(n,t){var e;return null!==(e=b(n))&&void 0!==e?e:b(t)},n.deferThrow=function(n){setTimeout((()=>{throw new Error(n)}),0)},n.either=function(n,t){return!!n!=!!t},n.genSeq=O,n.greaterThan=s,n.hasOwnProperty=p,n.invariant=m,n.isArray=T,n.isBoolean=function(n){return!!n===n},n.isEmpty=w,n.isFunction=y,n.isNotArray=_,n.isNotEmpty=A,n.isNotNull=a,n.isNotNullish=N,n.isNotNumeric=r,n.isNotUndefined=d,n.isNull=l,n.isNullish=g,n.isNumeric=e,n.isObject=j,n.isPositive=function(n){return s(n,0)},n.isPromise=function(n){return!!n&&y(n.then)},n.isStringValue=function(n){return String(n)===n},n.isUndefined=h,n.lengthEquals=u,n.lengthNotEquals=c,n.longerThan=f,n.mapFirst=function(n,t){let e=!1,r=null;for(let o=0;o<n.length;o++)if(t(n[o],i,o),e)return r;function i(n,t){n&&(e=!0,r=t)}},n.nonnullish=function(n,t){return m(!g(n),t),n},n.noop=function(){},n.numberEquals=i,n.numberNotEquals=o,n.optionalFunctionValue=b,n.seq=S,n.text=function(n,...t){const e=t[0];if(j(e))return n.replace(q,((n,t)=>{var r;return`${null!==(r=e[t])&&void 0!==r?r:n}`}));const r=[...t];return n.replace(q,(n=>`${w(r)?n:r.shift()}`))},n.tinyState=x}));
1
+ !function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self)["vest-utils"]={})}(this,(function(n){"use strict";function t(n){return(...t)=>!n(...t)}function e(n){const t=String(n),e=Number(n),r=!isNaN(parseFloat(t))&&!isNaN(Number(n))&&isFinite(e);return Boolean(r)}const r=t(e);function i(n,t){return e(n)&&e(t)&&Number(n)===Number(t)}const o=t(i);function u(n,t){return i(n.length,t)}const c=t(u);function s(n,t){return e(n)&&e(t)&&Number(n)>Number(t)}function f(n,t){return s(n.length,t)}function l(n){return null===n}const a=t(l);function h(n){return void 0===n}const d=t(h);function g(n){return l(n)||h(n)}const N=t(g);function p(n,t){return Object.prototype.hasOwnProperty.call(n,t)}function y(n){return"function"==typeof n}function b(n,...t){return y(n)?n(...t):n}var v=Object.assign;function m(n,t){if(!n)throw t instanceof String?t.valueOf():new Error(t?b(t):t)}var E=Object.freeze({__proto__:null,createBus:function(){const n={};return{emit(n,e){t(n).concat(t("*")).forEach((n=>{n(e)}))},on:(e,r)=>(n[e]=t(e).concat(r),{off(){n[e]=t(e).filter((n=>n!==r))}})};function t(t){return n[t]||[]}}});const S=O();function O(n){return t=0,()=>`${n?n+"_":""}${t++}`;var t}function j(n){return"object"==typeof n&&!g(n)}function T(n){return Boolean(Array.isArray(n))}const _=t(T);function w(n){return!n||(p(n,"length")?u(n,0):!!j(n)&&u(Object.keys(n),0))}const A=t(w);const q=/{(.*?)}/g;var x=Object.freeze({__proto__:null,createTinyState:function(n){let t;return r(),()=>[t,e,r];function e(n){t=b(n,t)}function r(){e(b(n))}}});n.StateMachine=function(n){let t=n.initial;return{getState:function(){return t},transition:function(n,r){return t=e(t,n,r)},staticTransition:e};function e(t,e,r){var i,o,u;let c=null!==(o=null===(i=n.states[t])||void 0===i?void 0:i[e])&&void 0!==o?o:null===(u=n.states["*"])||void 0===u?void 0:u[e];if(Array.isArray(c)){const[,n]=c;if(!n(r))return t;c=c[0]}return c&&c!==t?c:t}},n.StringObject=function(n){return new String(b(n))},n.asArray=function(n){return[].concat(n)},n.assign=v,n.bindNot=t,n.bus=E,n.cache=function(n=1){const t=[],e=(r,i)=>{const o=e.get(r);if(o)return o[1];const u=i();return t.unshift([r.concat(),u]),f(t,n)&&(t.length=n),u};return e.invalidate=n=>{const e=r(n);e>-1&&t.splice(e,1)},e.get=n=>t[r(n)]||null,e;function r(n){return t.findIndex((([t])=>u(n,t.length)&&n.every(((n,e)=>n===t[e]))))}},n.callEach=function(n){return n.forEach((n=>n()))},n.defaultTo=function(n,t){var e;return null!==(e=b(n))&&void 0!==e?e:b(t)},n.deferThrow=function(n){setTimeout((()=>{throw new Error(n)}),0)},n.either=function(n,t){return!!n!=!!t},n.genSeq=O,n.greaterThan=s,n.hasOwnProperty=p,n.invariant=m,n.isArray=T,n.isBoolean=function(n){return!!n===n},n.isEmpty=w,n.isFunction=y,n.isNotArray=_,n.isNotEmpty=A,n.isNotNull=a,n.isNotNullish=N,n.isNotNumeric=r,n.isNotUndefined=d,n.isNull=l,n.isNullish=g,n.isNumeric=e,n.isObject=j,n.isPositive=function(n){return s(n,0)},n.isPromise=function(n){return!!n&&y(n.then)},n.isStringValue=function(n){return String(n)===n},n.isUndefined=h,n.lengthEquals=u,n.lengthNotEquals=c,n.longerThan=f,n.mapFirst=function(n,t){let e=!1,r=null;for(let o=0;o<n.length;o++)if(t(n[o],i,o),e)return r;function i(n,t){n&&(e=!0,r=t)}},n.nonnullish=function(n,t){return m(!g(n),t),n},n.noop=function(){},n.numberEquals=i,n.numberNotEquals=o,n.optionalFunctionValue=b,n.seq=S,n.text=function(n,...t){const e=t[0];if(j(e))return n.replace(q,((n,t)=>{var r;return`${null!==(r=e[t])&&void 0!==r?r:n}`}));const r=[...t];return n.replace(q,(n=>`${w(r)?n:r.shift()}`))},n.tinyState=x}));
2
2
  //# sourceMappingURL=vest-utils.production.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vest-utils.production.js","sources":["../../src/bindNot.ts","../../src/isNumeric.ts","../../src/numberEquals.ts","../../src/lengthEquals.ts","../../src/greaterThan.ts","../../src/longerThan.ts","../../src/isNull.ts","../../src/isUndefined.ts","../../src/isNullish.ts","../../src/hasOwnProperty.ts","../../src/isFunction.ts","../../src/optionalFunctionValue.ts","../../src/assign.ts","../../src/invariant.ts","../../src/bus.ts","../../src/seq.ts","../../src/valueIsObject.ts","../../src/isArrayValue.ts","../../src/isEmpty.ts","../../src/text.ts","../../src/tinyState.ts","../../src/SimpleStateMachine.ts","../../src/StringObject.ts","../../src/asArray.ts","../../src/cache.ts","../../src/callEach.ts","../../src/defaultTo.ts","../../src/deferThrow.ts","../../src/either.ts","../../src/isBooleanValue.ts","../../src/isPositive.ts","../../src/isPromise.ts","../../src/isStringValue.ts","../../src/mapFirst.ts","../../src/nonnullish.ts","../../src/noop.ts"],"sourcesContent":["export default function bindNot<T extends (...args: any[]) => unknown>(fn: T) {\n return (...args: Parameters<T>): boolean => !fn(...args);\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 { isNumeric } from 'isNumeric';\n\nexport function greaterThan(\n value: number | string,\n gt: number | string\n): boolean {\n return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);\n}\n","import { greaterThan } from 'greaterThan';\n\nexport function longerThan(\n value: string | unknown[],\n arg1: string | number\n): boolean {\n return greaterThan(value.length, arg1);\n}\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","/**\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","export default function isFunction(\n value: unknown\n): value is (...args: unknown[]) => unknown {\n return typeof value === 'function';\n}\n","import isFunction from 'isFunction';\nimport { DynamicValue } from 'utilityTypes';\n\nexport default function optionalFunctionValue<T>(\n value: DynamicValue<T>,\n ...args: unknown[]\n): T {\n return isFunction(value) ? value(...args) : value;\n}\n","export default Object.assign;\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport type { Stringable } from 'utilityTypes';\n\nexport default function invariant(\n condition: any,\n // eslint-disable-next-line @typescript-eslint/ban-types\n message?: String | Stringable\n): asserts condition {\n if (condition) {\n return;\n }\n\n // If message is a string object (rather than string literal)\n // Throw the value directly as a string\n // Alternatively, throw an error with the message\n throw message instanceof String\n ? message.valueOf()\n : new Error(message ? optionalFunctionValue(message) : message);\n}\n","import type { CB } from 'utilityTypes';\n\nexport function createBus(): BusType {\n const listeners: Record<string, CB[]> = {};\n\n return {\n emit(event: string, data?: any) {\n listener(event).forEach(handler => {\n handler(data);\n });\n },\n\n on(event: string, handler: CB): OnReturn {\n listeners[event] = listener(event).concat(handler);\n\n return {\n off() {\n listeners[event] = listener(event).filter(h => h !== handler);\n },\n };\n },\n };\n\n function listener(event: string): CB[] {\n return listeners[event] || [];\n }\n}\n\ntype OnReturn = { off: CB<void> };\n\nexport type BusType = {\n on: (event: string, handler: CB) => OnReturn;\n emit: (event: string, data?: any) => void;\n};\n","/**\n * @returns a unique numeric id.\n */\n\nimport { CB } from 'utilityTypes';\n\nconst seq = genSeq();\n\nexport default seq;\n\nexport function genSeq(namespace?: string): CB<string> {\n return (\n (n: number) => () =>\n `${namespace ? namespace + '_' : ''}${n++}`\n )(0);\n}\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';\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';\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","import { isEmpty } from 'isEmpty';\nimport { isObject } from 'valueIsObject';\n\nconst regexp = /{(.*?)}/g;\n\nexport function text(str: string, ...substitutions: Array<unknown>): string {\n const first = substitutions[0];\n\n if (isObject(first)) {\n return str.replace(regexp, (placeholder, key: string) => {\n return `${first[key] ?? placeholder}`;\n });\n }\n\n const subs = [...substitutions];\n\n return str.replace(regexp, placeholder => {\n return `${isEmpty(subs) ? placeholder : subs.shift()}`;\n });\n}\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport { DynamicValue } from 'utilityTypes';\n\nexport function createTinyState<S>(\n initialValue: SetValueInput<S>\n): TinyState<S> {\n let value: S;\n\n resetValue();\n\n return () => [value, setValue, resetValue];\n\n function setValue(nextValue: SetValueInput<S>) {\n value = optionalFunctionValue(nextValue, value);\n }\n\n function resetValue() {\n setValue(optionalFunctionValue(initialValue));\n }\n}\n\nexport type TinyState<S> = () => [\n value: S,\n setValue: (next: SetValueInput<S>) => void,\n resetValue: () => void\n];\n\ntype SetValueInput<S> = DynamicValue<S, [prev: S]>;\n","import { CB } from 'utilityTypes';\n\nconst STATE_WILD_CARD = '*';\ntype TStateWildCard = typeof STATE_WILD_CARD;\n\nexport type TStateMachine<S extends string, A extends string> = {\n initial: S;\n states: Partial<{\n [key in S & TStateWildCard]: {\n [key in A]?: S | [S, CB<boolean, [payload?: any]>];\n };\n }>;\n};\n\nexport type TStateMachineApi<S extends string, A extends string> = {\n getState: CB<S>;\n transition: (action: A, payload?: any) => void;\n staticTransition: (from: S, action: A, payload?: any) => S;\n};\n\nexport function StateMachine<S extends string, A extends string>(\n machine: TStateMachine<S, A>\n): TStateMachineApi<S, A> {\n let state = machine.initial;\n\n const api = { getState, transition, staticTransition };\n\n return api;\n\n function getState(): S {\n return state;\n }\n\n function transition(action: A, payload?: any): S {\n return (state = staticTransition(state, action, payload));\n }\n\n // eslint-disable-next-line complexity\n function staticTransition(from: S, action: A, payload?: any): S {\n const transitionTo =\n machine.states[from]?.[action] ??\n // @ts-expect-error - This is a valid state\n machine.states[STATE_WILD_CARD]?.[action];\n\n let target = transitionTo;\n\n if (Array.isArray(target)) {\n const [, conditional] = target;\n if (!conditional(payload)) {\n return from;\n }\n\n target = target[0];\n }\n\n if (!target || target === from) {\n return from;\n }\n\n return target as S;\n }\n}\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport type { Stringable } from 'utilityTypes';\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function StringObject(value?: Stringable): String {\n return new String(optionalFunctionValue(value));\n}\n","export default function asArray<T>(possibleArg: T | T[]): T[] {\n return ([] as T[]).concat(possibleArg);\n}\n","import { lengthEquals } from 'lengthEquals';\nimport { longerThan } from 'longerThan';\nimport { Nullable } from 'utilityTypes';\n\n/**\n * Creates a cache function\n */\nexport default function createCache<T = unknown>(maxSize = 1): CacheApi<T> {\n const cacheStorage: Array<[unknown[], T]> = [];\n\n const cache = (\n deps: unknown[],\n cacheAction: (...args: unknown[]) => T\n ): T => {\n const cacheHit = cache.get(deps);\n // cache hit is not null\n if (cacheHit) return cacheHit[1];\n\n const result = cacheAction();\n cacheStorage.unshift([deps.concat(), result]);\n\n if (longerThan(cacheStorage, maxSize)) cacheStorage.length = maxSize;\n\n return result;\n };\n\n // invalidate an item in the cache by its dependencies\n cache.invalidate = (deps: any[]): void => {\n const index = findIndex(deps);\n if (index > -1) cacheStorage.splice(index, 1);\n };\n\n // Retrieves an item from the cache.\n cache.get = (deps: unknown[]): Nullable<[unknown[], T]> =>\n cacheStorage[findIndex(deps)] || null;\n\n return cache;\n\n function findIndex(deps: unknown[]): number {\n return cacheStorage.findIndex(\n ([cachedDeps]) =>\n lengthEquals(deps, cachedDeps.length) &&\n deps.every((dep, i) => dep === cachedDeps[i])\n );\n }\n}\n\nexport type CacheApi<T = unknown> = {\n (deps: unknown[], cacheAction: (...args: unknown[]) => T): T;\n get(deps: unknown[]): Nullable<[unknown[], T]>;\n invalidate(item: any): void;\n};\n","import type { CB } from 'utilityTypes';\n\nexport default function callEach(arr: CB[]): void {\n return arr.forEach(fn => fn());\n}\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport { DynamicValue, Nullish } from 'utilityTypes';\n\nexport default function defaultTo<T>(\n value: DynamicValue<Nullish<T>>,\n defaultValue: DynamicValue<T>\n): T {\n return optionalFunctionValue(value) ?? optionalFunctionValue(defaultValue);\n}\n","export default function deferThrow(message?: string): void {\n setTimeout(() => {\n throw new Error(message);\n }, 0);\n}\n\nexport type TDeferThrow = typeof deferThrow;\n","export default function either(a: unknown, b: unknown): boolean {\n return !!a !== !!b;\n}\n","export default function isBoolean(value: unknown): value is boolean {\n return !!value === value;\n}\n","import { greaterThan } from 'greaterThan';\n\nexport function isPositive(value: number | string): boolean {\n return greaterThan(value, 0);\n}\n","import isFunction from 'isFunction';\n\nexport default function isPromise(value: any): value is Promise<unknown> {\n return !!value && isFunction(value.then);\n}\n","export default function isStringValue(v: unknown): v is string {\n return String(v) === v;\n}\n","export default function mapFirst<T>(\n array: T[],\n callback: (\n item: T,\n breakout: (conditional: boolean, value: unknown) => void,\n index: number\n ) => unknown\n): any {\n let broke = false;\n let breakoutValue = null;\n for (let i = 0; i < array.length; i++) {\n callback(array[i], breakout, i);\n\n if (broke) {\n return breakoutValue;\n }\n }\n\n function breakout(conditional: boolean, value: unknown) {\n if (conditional) {\n broke = true;\n breakoutValue = value;\n }\n }\n}\n","import invariant from 'invariant';\n\nimport { isNullish } from 'isNullish';\nimport { Nullish } from 'utilityTypes';\n\nexport function nonnullish<T>(value: Nullish<T>, error?: string): T {\n invariant(!isNullish(value), error);\n\n return value;\n}\n","// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport function noop() {}\n"],"names":["bindNot","fn","args","isNumeric","value","str","String","num","Number","result","isNaN","parseFloat","isFinite","Boolean","isNotNumeric","numberEquals","eq","numberNotEquals","lengthEquals","arg1","length","lengthNotEquals","greaterThan","gt","longerThan","isNull","isNotNull","isUndefined","undefined","isNotUndefined","isNullish","isNotNullish","hasOwnProperty","obj","key","Object","prototype","call","isFunction","optionalFunctionValue","assign","invariant","condition","message","valueOf","Error","listeners","emit","event","data","listener","forEach","handler","on","concat","off","filter","h","seq","genSeq","namespace","n","isObject","v","isArray","Array","isNotArray","isEmpty","keys","isNotEmpty","regexp","initialValue","resetValue","setValue","nextValue","machine","state","initial","getState","transition","action","payload","staticTransition","from","target","_b","_a","states","_c","conditional","possibleArg","maxSize","cacheStorage","cache","deps","cacheAction","cacheHit","get","unshift","invalidate","index","findIndex","splice","cachedDeps","every","dep","i","arr","defaultValue","setTimeout","a","b","then","array","callback","broke","breakoutValue","breakout","error","substitutions","first","replace","placeholder","subs","shift"],"mappings":"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"}
1
+ {"version":3,"file":"vest-utils.production.js","sources":["../../src/bindNot.ts","../../src/isNumeric.ts","../../src/numberEquals.ts","../../src/lengthEquals.ts","../../src/greaterThan.ts","../../src/longerThan.ts","../../src/isNull.ts","../../src/isUndefined.ts","../../src/isNullish.ts","../../src/hasOwnProperty.ts","../../src/isFunction.ts","../../src/optionalFunctionValue.ts","../../src/assign.ts","../../src/invariant.ts","../../src/bus.ts","../../src/seq.ts","../../src/valueIsObject.ts","../../src/isArrayValue.ts","../../src/isEmpty.ts","../../src/text.ts","../../src/tinyState.ts","../../src/SimpleStateMachine.ts","../../src/StringObject.ts","../../src/asArray.ts","../../src/cache.ts","../../src/callEach.ts","../../src/defaultTo.ts","../../src/deferThrow.ts","../../src/either.ts","../../src/isBooleanValue.ts","../../src/isPositive.ts","../../src/isPromise.ts","../../src/isStringValue.ts","../../src/mapFirst.ts","../../src/nonnullish.ts","../../src/noop.ts"],"sourcesContent":["export default function bindNot<T extends (...args: any[]) => unknown>(fn: T) {\n return (...args: Parameters<T>): boolean => !fn(...args);\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 { isNumeric } from 'isNumeric';\n\nexport function greaterThan(\n value: number | string,\n gt: number | string\n): boolean {\n return isNumeric(value) && isNumeric(gt) && Number(value) > Number(gt);\n}\n","import { greaterThan } from 'greaterThan';\n\nexport function longerThan(\n value: string | unknown[],\n arg1: string | number\n): boolean {\n return greaterThan(value.length, arg1);\n}\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","/**\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","export default function isFunction(\n value: unknown\n): value is (...args: unknown[]) => unknown {\n return typeof value === 'function';\n}\n","import isFunction from 'isFunction';\nimport { DynamicValue } from 'utilityTypes';\n\nexport default function optionalFunctionValue<T>(\n value: DynamicValue<T>,\n ...args: unknown[]\n): T {\n return isFunction(value) ? value(...args) : value;\n}\n","export default Object.assign;\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport type { Stringable } from 'utilityTypes';\n\nexport default function invariant(\n condition: any,\n // eslint-disable-next-line @typescript-eslint/ban-types\n message?: String | Stringable\n): asserts condition {\n if (condition) {\n return;\n }\n\n // If message is a string object (rather than string literal)\n // Throw the value directly as a string\n // Alternatively, throw an error with the message\n throw message instanceof String\n ? message.valueOf()\n : new Error(message ? optionalFunctionValue(message) : message);\n}\n","import type { CB } from 'utilityTypes';\n\nconst EVENT_WILDCARD = '*';\n\nexport function createBus(): BusType {\n const listeners: Record<string, CB[]> = {};\n\n return {\n emit(event: string, data?: any) {\n getListeners(event)\n .concat(getListeners(EVENT_WILDCARD))\n .forEach(handler => {\n handler(data);\n });\n },\n\n on(event: string, handler: CB): OnReturn {\n listeners[event] = getListeners(event).concat(handler);\n\n return {\n off() {\n listeners[event] = getListeners(event).filter(h => h !== handler);\n },\n };\n },\n };\n\n function getListeners(event: string): CB[] {\n return listeners[event] || [];\n }\n}\n\ntype OnReturn = { off: CB<void> };\n\nexport type BusType = {\n on: (event: string, handler: CB) => OnReturn;\n emit: (event: string, data?: any) => void;\n};\n","/**\n * @returns a unique numeric id.\n */\n\nimport { CB } from 'utilityTypes';\n\nconst seq = genSeq();\n\nexport default seq;\n\nexport function genSeq(namespace?: string): CB<string> {\n return (\n (n: number) => () =>\n `${namespace ? namespace + '_' : ''}${n++}`\n )(0);\n}\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';\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';\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","import { isEmpty } from 'isEmpty';\nimport { isObject } from 'valueIsObject';\n\nconst regexp = /{(.*?)}/g;\n\nexport function text(str: string, ...substitutions: Array<unknown>): string {\n const first = substitutions[0];\n\n if (isObject(first)) {\n return str.replace(regexp, (placeholder, key: string) => {\n return `${first[key] ?? placeholder}`;\n });\n }\n\n const subs = [...substitutions];\n\n return str.replace(regexp, placeholder => {\n return `${isEmpty(subs) ? placeholder : subs.shift()}`;\n });\n}\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport { DynamicValue } from 'utilityTypes';\n\nexport function createTinyState<S>(\n initialValue: SetValueInput<S>\n): TinyState<S> {\n let value: S;\n\n resetValue();\n\n return () => [value, setValue, resetValue];\n\n function setValue(nextValue: SetValueInput<S>) {\n value = optionalFunctionValue(nextValue, value);\n }\n\n function resetValue() {\n setValue(optionalFunctionValue(initialValue));\n }\n}\n\nexport type TinyState<S> = () => [\n value: S,\n setValue: (next: SetValueInput<S>) => void,\n resetValue: () => void\n];\n\ntype SetValueInput<S> = DynamicValue<S, [prev: S]>;\n","import { CB } from 'utilityTypes';\n\nconst STATE_WILD_CARD = '*';\ntype TStateWildCard = typeof STATE_WILD_CARD;\n\nexport type TStateMachine<S extends string, A extends string> = {\n initial: S;\n states: Partial<{\n [key in S & TStateWildCard]: {\n [key in A]?: S | [S, CB<boolean, [payload?: any]>];\n };\n }>;\n};\n\nexport type TStateMachineApi<S extends string, A extends string> = {\n getState: CB<S>;\n transition: (action: A, payload?: any) => void;\n staticTransition: (from: S, action: A, payload?: any) => S;\n};\n\nexport function StateMachine<S extends string, A extends string>(\n machine: TStateMachine<S, A>\n): TStateMachineApi<S, A> {\n let state = machine.initial;\n\n const api = { getState, transition, staticTransition };\n\n return api;\n\n function getState(): S {\n return state;\n }\n\n function transition(action: A, payload?: any): S {\n return (state = staticTransition(state, action, payload));\n }\n\n // eslint-disable-next-line complexity\n function staticTransition(from: S, action: A, payload?: any): S {\n const transitionTo =\n machine.states[from]?.[action] ??\n // @ts-expect-error - This is a valid state\n machine.states[STATE_WILD_CARD]?.[action];\n\n let target = transitionTo;\n\n if (Array.isArray(target)) {\n const [, conditional] = target;\n if (!conditional(payload)) {\n return from;\n }\n\n target = target[0];\n }\n\n if (!target || target === from) {\n return from;\n }\n\n return target as S;\n }\n}\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport type { Stringable } from 'utilityTypes';\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function StringObject(value?: Stringable): String {\n return new String(optionalFunctionValue(value));\n}\n","export default function asArray<T>(possibleArg: T | T[]): T[] {\n return ([] as T[]).concat(possibleArg);\n}\n","import { lengthEquals } from 'lengthEquals';\nimport { longerThan } from 'longerThan';\nimport { Nullable } from 'utilityTypes';\n\n/**\n * Creates a cache function\n */\nexport default function createCache<T = unknown>(maxSize = 1): CacheApi<T> {\n const cacheStorage: Array<[unknown[], T]> = [];\n\n const cache = (\n deps: unknown[],\n cacheAction: (...args: unknown[]) => T\n ): T => {\n const cacheHit = cache.get(deps);\n // cache hit is not null\n if (cacheHit) return cacheHit[1];\n\n const result = cacheAction();\n cacheStorage.unshift([deps.concat(), result]);\n\n if (longerThan(cacheStorage, maxSize)) cacheStorage.length = maxSize;\n\n return result;\n };\n\n // invalidate an item in the cache by its dependencies\n cache.invalidate = (deps: any[]): void => {\n const index = findIndex(deps);\n if (index > -1) cacheStorage.splice(index, 1);\n };\n\n // Retrieves an item from the cache.\n cache.get = (deps: unknown[]): Nullable<[unknown[], T]> =>\n cacheStorage[findIndex(deps)] || null;\n\n return cache;\n\n function findIndex(deps: unknown[]): number {\n return cacheStorage.findIndex(\n ([cachedDeps]) =>\n lengthEquals(deps, cachedDeps.length) &&\n deps.every((dep, i) => dep === cachedDeps[i])\n );\n }\n}\n\nexport type CacheApi<T = unknown> = {\n (deps: unknown[], cacheAction: (...args: unknown[]) => T): T;\n get(deps: unknown[]): Nullable<[unknown[], T]>;\n invalidate(item: any): void;\n};\n","import type { CB } from 'utilityTypes';\n\nexport default function callEach(arr: CB[]): void {\n return arr.forEach(fn => fn());\n}\n","import optionalFunctionValue from 'optionalFunctionValue';\nimport { DynamicValue, Nullish } from 'utilityTypes';\n\nexport default function defaultTo<T>(\n value: DynamicValue<Nullish<T>>,\n defaultValue: DynamicValue<T>\n): T {\n return optionalFunctionValue(value) ?? optionalFunctionValue(defaultValue);\n}\n","export default function deferThrow(message?: string): void {\n setTimeout(() => {\n throw new Error(message);\n }, 0);\n}\n\nexport type TDeferThrow = typeof deferThrow;\n","export default function either(a: unknown, b: unknown): boolean {\n return !!a !== !!b;\n}\n","export default function isBoolean(value: unknown): value is boolean {\n return !!value === value;\n}\n","import { greaterThan } from 'greaterThan';\n\nexport function isPositive(value: number | string): boolean {\n return greaterThan(value, 0);\n}\n","import isFunction from 'isFunction';\n\nexport default function isPromise(value: any): value is Promise<unknown> {\n return !!value && isFunction(value.then);\n}\n","export default function isStringValue(v: unknown): v is string {\n return String(v) === v;\n}\n","export default function mapFirst<T>(\n array: T[],\n callback: (\n item: T,\n breakout: (conditional: boolean, value: unknown) => void,\n index: number\n ) => unknown\n): any {\n let broke = false;\n let breakoutValue = null;\n for (let i = 0; i < array.length; i++) {\n callback(array[i], breakout, i);\n\n if (broke) {\n return breakoutValue;\n }\n }\n\n function breakout(conditional: boolean, value: unknown) {\n if (conditional) {\n broke = true;\n breakoutValue = value;\n }\n }\n}\n","import invariant from 'invariant';\n\nimport { isNullish } from 'isNullish';\nimport { Nullish } from 'utilityTypes';\n\nexport function nonnullish<T>(value: Nullish<T>, error?: string): T {\n invariant(!isNullish(value), error);\n\n return value;\n}\n","// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport function noop() {}\n"],"names":["bindNot","fn","args","isNumeric","value","str","String","num","Number","result","isNaN","parseFloat","isFinite","Boolean","isNotNumeric","numberEquals","eq","numberNotEquals","lengthEquals","arg1","length","lengthNotEquals","greaterThan","gt","longerThan","isNull","isNotNull","isUndefined","undefined","isNotUndefined","isNullish","isNotNullish","hasOwnProperty","obj","key","Object","prototype","call","isFunction","optionalFunctionValue","assign","invariant","condition","message","valueOf","Error","listeners","emit","event","data","getListeners","concat","forEach","handler","on","off","filter","h","seq","genSeq","namespace","n","isObject","v","isArray","Array","isNotArray","isEmpty","keys","isNotEmpty","regexp","initialValue","resetValue","setValue","nextValue","machine","state","initial","getState","transition","action","payload","staticTransition","from","target","_b","_a","states","_c","conditional","possibleArg","maxSize","cacheStorage","cache","deps","cacheAction","cacheHit","get","unshift","invalidate","index","findIndex","splice","cachedDeps","every","dep","i","arr","defaultValue","setTimeout","a","b","then","array","callback","broke","breakoutValue","breakout","error","substitutions","first","replace","placeholder","subs","shift"],"mappings":"qPAAwB,SAAAA,EAA+CC,GACrE,MAAO,IAAIC,KAAkCD,KAAMC,EACrD,CCAM,SAAUC,EAAUC,GACxB,MAAMC,EAAMC,OAAOF,GACbG,EAAMC,OAAOJ,GACbK,GACHC,MAAMC,WAAWN,MAAUK,MAAMF,OAAOJ,KAAWQ,SAASL,GAC/D,OAAOM,QAAQJ,EACjB,OAEaK,EAAed,EAAQG,GCPpB,SAAAY,EACdX,EACAY,GAEA,OAAOb,EAAUC,IAAUD,EAAUa,IAAOR,OAAOJ,KAAWI,OAAOQ,EACvE,OAEaC,EAAkBjB,EAAQe,GCPvB,SAAAG,EACdd,EACAe,GAEA,OAAOJ,EAAaX,EAAMgB,OAAQD,EACpC,OAEaE,EAAkBrB,EAAQkB,GCRvB,SAAAI,EACdlB,EACAmB,GAEA,OAAOpB,EAAUC,IAAUD,EAAUoB,IAAOf,OAAOJ,GAASI,OAAOe,EACrE,CCLgB,SAAAC,EACdpB,EACAe,GAEA,OAAOG,EAAYlB,EAAMgB,OAAQD,EACnC,CCLM,SAAUM,EAAOrB,GACrB,OAAiB,OAAVA,CACT,OAEasB,EAAY1B,EAAQyB,GCJ3B,SAAUE,EAAYvB,GAC1B,YAAiBwB,IAAVxB,CACT,OAEayB,EAAiB7B,EAAQ2B,GCDhC,SAAUG,EAAU1B,GACxB,OAAOqB,EAAOrB,IAAUuB,EAAYvB,EACtC,OAEa2B,EAAe/B,EAAQ8B,GCNtB,SAAUE,EACtBC,EACAC,GAEA,OAAOC,OAAOC,UAAUJ,eAAeK,KAAKJ,EAAKC,EACnD,CCRwB,SAAAI,EACtBlC,GAEA,MAAwB,mBAAVA,CAChB,CCDwB,SAAAmC,EACtBnC,KACGF,GAEH,OAAOoC,EAAWlC,GAASA,KAASF,GAAQE,CAC9C,CCRe,IAAAoC,EAAAL,OAAOK,OCGE,SAAAC,EACtBC,EAEAC,GAEA,IAAID,EAOJ,MAAMC,aAAmBrC,OACrBqC,EAAQC,UACR,IAAIC,MAAMF,EAAUJ,EAAsBI,GAAWA,EAC3D,0DCbE,MAAMG,EAAkC,CAAA,EAExC,MAAO,CACLC,KAAKC,EAAeC,GAClBC,EAAaF,GACVG,OAAOD,EARO,MASdE,SAAQC,IACPA,EAAQJ,EAAK,GAElB,EAEDK,GAAE,CAACN,EAAeK,KAChBP,EAAUE,GAASE,EAAaF,GAAOG,OAAOE,GAEvC,CACLE,MACET,EAAUE,GAASE,EAAaF,GAAOQ,QAAOC,GAAKA,IAAMJ,GAC1D,KAKP,SAASH,EAAaF,GACpB,OAAOF,EAAUE,IAAU,EAC5B,CACH,ICxBM,MAAAU,EAAMC,IAIN,SAAUA,EAAOC,GACrB,OACGC,EAED,EAFe,IACb,GAAGD,EAAYA,EAAY,IAAM,KAAKC,MAFnC,IACJA,CAGL,CCbM,SAAUC,EAASC,GACvB,MAAoB,iBAANA,IAAmBjC,EAAUiC,EAC7C,CCEM,SAAUC,EAAQ5D,GACtB,OAAOS,QAAQoD,MAAMD,QAAQ5D,GAC/B,OAEa8D,EAAalE,EAAQgE,GCL5B,SAAUG,EAAQ/D,GACtB,OAAKA,IAEM4B,EAAe5B,EAAO,UACxBc,EAAad,EAA6B,KACxC0D,EAAS1D,IACXc,EAAaiB,OAAOiC,KAAKhE,GAAmC,GAIvE,OAEaiE,EAAarE,EAAQmE,GCdlC,MAAMG,EAAS,+DCAT,SACJC,GAEA,IAAInE,EAIJ,OAFAoE,IAEO,IAAM,CAACpE,EAAOqE,EAAUD,GAE/B,SAASC,EAASC,GAChBtE,EAAQmC,EAAsBmC,EAAWtE,EAC1C,CAED,SAASoE,IACPC,EAASlC,EAAsBgC,GAChC,CACH,mBCCM,SACJI,GAEA,IAAIC,EAAQD,EAAQE,QAIpB,MAFY,CAAEC,SAId,WACE,OAAOF,CACR,EANuBG,WAQxB,SAAoBC,EAAWC,GAC7B,OAAQL,EAAQM,EAAiBN,EAAOI,EAAQC,EACjD,EAVmCC,oBAapC,SAASA,EAAiBC,EAASH,EAAWC,aAM5C,IAAIG,EAJ4B,QAA9BC,EAAuB,QAAvBC,EAAAX,EAAQY,OAAOJ,UAAQ,IAAAG,OAAA,EAAAA,EAAAN,UAAO,IAAAK,EAAAA,EAEC,QAA/BG,EAAAb,EAAQY,OAxCU,YAwCa,IAAAC,OAAA,EAAAA,EAAGR,GAIpC,GAAIf,MAAMD,QAAQoB,GAAS,CACzB,MAAS,CAAAK,GAAeL,EACxB,IAAKK,EAAYR,GACf,OAAOE,EAGTC,EAASA,EAAO,EACjB,CAED,OAAKA,GAAUA,IAAWD,EAInBC,EAHED,CAIV,CACH,iBCzDM,SAAuB/E,GAC3B,OAAO,IAAIE,OAAOiC,EAAsBnC,GAC1C,YCNwB,SAAWsF,GACjC,MAAQ,GAAWvC,OAAOuC,EAC5B,yCCKc,SAAmCC,EAAU,GACzD,MAAMC,EAAsC,GAEtCC,EAAQ,CACZC,EACAC,KAEA,MAAMC,EAAWH,EAAMI,IAAIH,GAE3B,GAAIE,EAAU,OAAOA,EAAS,GAE9B,MAAMvF,EAASsF,IAKf,OAJAH,EAAaM,QAAQ,CAACJ,EAAK3C,SAAU1C,IAEjCe,EAAWoE,EAAcD,KAAUC,EAAaxE,OAASuE,GAEtDlF,CAAM,EAaf,OATAoF,EAAMM,WAAcL,IAClB,MAAMM,EAAQC,EAAUP,GACpBM,GAAS,GAAGR,EAAaU,OAAOF,EAAO,EAAE,EAI/CP,EAAMI,IAAOH,GACXF,EAAaS,EAAUP,KAAU,KAE5BD,EAEP,SAASQ,EAAUP,GACjB,OAAOF,EAAaS,WAClB,EAAEE,KACArF,EAAa4E,EAAMS,EAAWnF,SAC9B0E,EAAKU,OAAM,CAACC,EAAKC,IAAMD,IAAQF,EAAWG,MAE/C,CACH,aC3CwB,SAASC,GAC/B,OAAOA,EAAIvD,SAAQnD,GAAMA,KAC3B,cCDc,SACZG,EACAwG,SAEA,eAAOtB,EAAA/C,EAAsBnC,kBAAUmC,EAAsBqE,EAC/D,eCRwB,SAAWjE,GACjCkE,YAAW,KACT,MAAM,IAAIhE,MAAMF,EAAQ,GACvB,EACL,WCJc,SAAiBmE,EAAYC,GACzC,QAASD,KAAQC,CACnB,sFCFwB,SAAU3G,GAChC,QAASA,IAAUA,CACrB,+LCAM,SAAqBA,GACzB,OAAOkB,EAAYlB,EAAO,EAC5B,cCFwB,SAAUA,GAChC,QAASA,GAASkC,EAAWlC,EAAM4G,KACrC,kBCJwB,SAAcjD,GACpC,OAAOzD,OAAOyD,KAAOA,CACvB,iFCFc,SACZkD,EACAC,GAMA,IAAIC,GAAQ,EACRC,EAAgB,KACpB,IAAK,IAAIV,EAAI,EAAGA,EAAIO,EAAM7F,OAAQsF,IAGhC,GAFAQ,EAASD,EAAMP,GAAIW,EAAUX,GAEzBS,EACF,OAAOC,EAIX,SAASC,EAAS5B,EAAsBrF,GAClCqF,IACF0B,GAAQ,EACRC,EAAgBhH,EAEnB,CACH,eCnBgB,SAAcA,EAAmBkH,GAG/C,OAFA7E,GAAWX,EAAU1B,GAAQkH,GAEtBlH,CACT,SCRM,WAAc,yFhBICC,KAAgBkH,GACnC,MAAMC,EAAQD,EAAc,GAE5B,GAAIzD,EAAS0D,GACX,OAAOnH,EAAIoH,QAAQnD,GAAQ,CAACoD,EAAaxF,WACvC,MAAO,GAAa,UAAVsF,EAAMtF,UAAI,IAAAoD,EAAAA,EAAIoC,GAAa,IAIzC,MAAMC,EAAO,IAAIJ,GAEjB,OAAOlH,EAAIoH,QAAQnD,GAAQoD,GAClB,GAAGvD,EAAQwD,GAAQD,EAAcC,EAAKC,WAEjD"}
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.3",
2
+ "version": "1.1.0",
3
3
  "name": "vest-utils",
4
4
  "author": "ealush",
5
5
  "scripts": {