@bessemer/cornerstone 0.5.109 → 0.5.113
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/array.d.ts +4 -3
- package/dist/array.d.ts.map +1 -1
- package/dist/array.js +18 -5
- package/dist/array.js.map +1 -1
- package/dist/either.d.ts +23 -40
- package/dist/either.d.ts.map +1 -1
- package/dist/either.js +50 -88
- package/dist/either.js.map +1 -1
- package/dist/error/error-event.d.ts.map +1 -1
- package/dist/error/error-event.js +3 -2
- package/dist/error/error-event.js.map +1 -1
- package/dist/error/error.d.ts +10 -0
- package/dist/error/error.d.ts.map +1 -1
- package/dist/error/error.js +21 -2
- package/dist/error/error.js.map +1 -1
- package/dist/generators.d.ts +4 -0
- package/dist/generators.d.ts.map +1 -0
- package/dist/generators.js +24 -0
- package/dist/generators.js.map +1 -0
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -1
- package/dist/json.d.ts +2 -1
- package/dist/json.d.ts.map +1 -1
- package/dist/json.js.map +1 -1
- package/dist/math.d.ts +3 -0
- package/dist/math.d.ts.map +1 -1
- package/dist/math.js +11 -1
- package/dist/math.js.map +1 -1
- package/dist/mime-type.d.ts +4 -3
- package/dist/mime-type.d.ts.map +1 -1
- package/dist/mime-type.js +9 -6
- package/dist/mime-type.js.map +1 -1
- package/dist/net/content-type.d.ts +21 -0
- package/dist/net/content-type.d.ts.map +1 -0
- package/dist/net/content-type.js +120 -0
- package/dist/net/content-type.js.map +1 -0
- package/dist/net/fetch.d.ts +18 -0
- package/dist/net/fetch.d.ts.map +1 -0
- package/dist/net/fetch.js +65 -0
- package/dist/net/fetch.js.map +1 -0
- package/dist/net/http-method.d.ts +18 -0
- package/dist/net/http-method.d.ts.map +1 -0
- package/dist/net/http-method.js +37 -0
- package/dist/net/http-method.js.map +1 -0
- package/dist/net/http-request.d.ts +12 -0
- package/dist/net/http-request.d.ts.map +1 -0
- package/dist/net/http-request.js +1 -0
- package/dist/net/http-request.js.map +1 -0
- package/dist/net/uri-host-name.d.ts +1 -1
- package/dist/net/uri-host-name.d.ts.map +1 -1
- package/dist/net/uri-host-name.js +6 -6
- package/dist/net/uri-host-name.js.map +1 -1
- package/dist/net/uri.d.ts +12 -4
- package/dist/net/uri.d.ts.map +1 -1
- package/dist/net/uri.js +87 -36
- package/dist/net/uri.js.map +1 -1
- package/dist/net/url.d.ts +9 -6
- package/dist/net/url.d.ts.map +1 -1
- package/dist/net/url.js +58 -21
- package/dist/net/url.js.map +1 -1
- package/dist/object/object-diff.d.ts.map +1 -1
- package/dist/object/object-diff.js.map +1 -1
- package/dist/object/type-path.d.ts.map +1 -1
- package/dist/object/type-path.js +12 -14
- package/dist/object/type-path.js.map +1 -1
- package/dist/object.d.ts +2 -0
- package/dist/object.d.ts.map +1 -1
- package/dist/object.js +17 -1
- package/dist/object.js.map +1 -1
- package/dist/promise.d.ts +3 -1
- package/dist/promise.d.ts.map +1 -1
- package/dist/promise.js +9 -0
- package/dist/promise.js.map +1 -1
- package/dist/proxy.d.ts +2 -0
- package/dist/proxy.d.ts.map +1 -0
- package/dist/proxy.js +20 -0
- package/dist/proxy.js.map +1 -0
- package/dist/range.d.ts +0 -1
- package/dist/range.d.ts.map +1 -1
- package/dist/range.js.map +1 -1
- package/dist/result.d.ts +18 -20
- package/dist/result.d.ts.map +1 -1
- package/dist/result.js +41 -61
- package/dist/result.js.map +1 -1
- package/dist/retry.d.ts.map +1 -1
- package/dist/retry.js +3 -3
- package/dist/retry.js.map +1 -1
- package/dist/sql/sql-expression-parser.d.ts.map +1 -1
- package/dist/sql/sql-expression-parser.js +5 -5
- package/dist/sql/sql-expression-parser.js.map +1 -1
- package/dist/string.d.ts +1 -0
- package/dist/string.d.ts.map +1 -1
- package/dist/string.js +4 -0
- package/dist/string.js.map +1 -1
- package/dist/temporal/duration.d.ts.map +1 -1
- package/dist/temporal/duration.js +2 -1
- package/dist/temporal/duration.js.map +1 -1
- package/dist/temporal/instant.d.ts.map +1 -1
- package/dist/temporal/instant.js +2 -1
- package/dist/temporal/instant.js.map +1 -1
- package/dist/temporal/plain-date-time.d.ts.map +1 -1
- package/dist/temporal/plain-date-time.js +2 -1
- package/dist/temporal/plain-date-time.js.map +1 -1
- package/dist/temporal/plain-date.d.ts.map +1 -1
- package/dist/temporal/plain-date.js +2 -1
- package/dist/temporal/plain-date.js.map +1 -1
- package/dist/temporal/plain-time.d.ts.map +1 -1
- package/dist/temporal/plain-time.js +2 -1
- package/dist/temporal/plain-time.js.map +1 -1
- package/dist/temporal/zoned-date-time.d.ts.map +1 -1
- package/dist/temporal/zoned-date-time.js +2 -1
- package/dist/temporal/zoned-date-time.js.map +1 -1
- package/dist/types.d.ts +23 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -1
- package/dist/zod-util.d.ts +55 -6
- package/dist/zod-util.d.ts.map +1 -1
- package/dist/zod-util.js +99 -11
- package/dist/zod-util.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/error/error-event.ts"],"sourcesContent":["import { Dictionary, Throwable } from '@bessemer/cornerstone/types'\nimport { deepMerge, isNil, isObject, isPresent } from '@bessemer/cornerstone/object'\nimport Zod from 'zod'\nimport { evaluate, LazyValue } from '@bessemer/cornerstone/lazy'\nimport { findInCausalChain as errorsFindInCausalChain, isError } from '@bessemer/cornerstone/error/error'\nimport { isPromise } from '@bessemer/cornerstone/promise'\nimport { createNamespace } from '@bessemer/cornerstone/resource-key'\nimport { Result } from '@bessemer/cornerstone/result'\nimport * as ErrorCauses from '@bessemer/cornerstone/error/error-cause'\nimport { ErrorCause, ErrorCauseAugment, ErrorCauseBuilder } from '@bessemer/cornerstone/error/error-cause'\nimport * as Assertions from '@bessemer/cornerstone/assertion'\nimport { MergeExclusive } from 'type-fest'\nimport { isEmpty } from '@bessemer/cornerstone/array'\n\nexport const Namespace = createNamespace('error-event')\n\nexport const Schema = Zod.object({\n _type: Namespace,\n message: Zod.string(),\n causes: Zod.array(ErrorCauses.Schema),\n context: Zod.record(Zod.string(), Zod.unknown()),\n})\n\nexport type ErrorEvent = {\n _type: typeof Namespace\n message: string\n causes: Array<ErrorCause>\n context: Dictionary<unknown>\n}\n\ntype ErrorEventCommonBuilder = {\n message: string\n context?: Dictionary<unknown>\n}\n\ntype ErrorEventFullBuilder = ErrorEventCommonBuilder & {\n causes: Array<ErrorCauseBuilder>\n}\ntype ErrorEventSingletonBuilder = ErrorEventCommonBuilder & ErrorCauseBuilder\nexport type ErrorEventBuilder = MergeExclusive<ErrorEventFullBuilder, ErrorEventSingletonBuilder>\n\n// An exception type that contains an ErrorEvent\nexport class ErrorEventException extends Error {\n readonly errorEvent: ErrorEvent\n\n constructor(errorEvent: ErrorEvent, cause?: unknown) {\n super(errorEvent.message ?? '', { cause })\n this.name = this.constructor.name\n this.errorEvent = errorEvent\n }\n}\n\nexport const from = (builder: ErrorEventBuilder): ErrorEvent => {\n if (isPresent(builder.code)) {\n const code = builder.code\n return {\n _type: Namespace,\n causes: [ErrorCauses.from({ code, ...builder })],\n message: builder.message,\n context: builder.context ?? {},\n }\n } else {\n Assertions.assertPresent(builder.causes)\n Assertions.assert(!isEmpty(builder.causes), () => 'ErrorEvent - Unable to construct ErrorEvent with empty causes array.')\n\n return {\n _type: Namespace,\n causes: builder.causes.map(ErrorCauses.from),\n message: builder.message,\n context: builder.context ?? {},\n }\n }\n}\n\nexport const fromThrowable = (throwable: Throwable): ErrorEvent => {\n if (isErrorEvent(throwable)) {\n return throwable\n }\n\n if (!isError(throwable)) {\n return unhandled()\n }\n\n const errorEventException = errorsFindInCausalChain(throwable, isErrorEventException) as ErrorEventException | undefined\n if (isNil(errorEventException)) {\n return unhandled()\n }\n\n return errorEventException.errorEvent\n}\n\nexport const isErrorEvent = (value: unknown): value is ErrorEvent => {\n if (!isObject(value)) {\n return false\n }\n\n const errorEvent = value as ErrorEvent\n return errorEvent._type === Namespace\n}\n\nexport const isErrorEventException = (value: unknown): value is ErrorEventException => {\n return value instanceof ErrorEventException\n}\n\nexport function withPropagation<ReturnType>(runnable: () => ReturnType, attributes: LazyValue<Dictionary<unknown>>): ReturnType\nexport function withPropagation<ReturnType>(runnable: () => Promise<ReturnType>, attributes: LazyValue<Dictionary<unknown>>): Promise<ReturnType>\nexport function withPropagation<ReturnType>(\n runnable: () => ReturnType | Promise<ReturnType>,\n attributes: LazyValue<Dictionary<unknown>>\n): ReturnType | Promise<ReturnType> {\n try {\n let result = runnable()\n if (isPromise(result)) {\n return result.then((it) => it).catch((it) => propagate(it, evaluate(attributes)))\n } else {\n return result\n }\n } catch (throwable: Throwable) {\n throw propagate(throwable, evaluate(attributes))\n }\n}\n\nexport const propagate = (throwable: Throwable, context: Dictionary<unknown>): never => {\n if (isErrorEventException(throwable)) {\n // We just mutate the existing error event to avoid nested exceptions\n const errorEvent = throwable.errorEvent\n errorEvent.context = { ...errorEvent.context, ...context }\n throw throwable\n } else {\n const errorEvent = fromThrowable(throwable)\n const contextualizedEvent = from({ ...errorEvent, context: { ...errorEvent.context, ...context } })\n throw new ErrorEventException(contextualizedEvent, throwable)\n }\n}\n\nexport type ErrorEventAugment = ErrorCauseAugment & {\n context?: Dictionary<unknown>\n}\n\nexport const unhandled = (builder?: ErrorEventAugment): ErrorEvent => from(deepMerge(ErrorCauses.unhandled(builder), builder))\n\nexport const required = (builder?: ErrorEventAugment): ErrorEvent => from(deepMerge(ErrorCauses.required(builder), builder))\n\nexport const unauthorized = (builder?: ErrorEventAugment): ErrorEvent => from(deepMerge(ErrorCauses.unauthorized(builder), builder))\n\nexport const forbidden = (builder?: ErrorEventAugment): ErrorEvent => from(deepMerge(ErrorCauses.forbidden(builder), builder))\n\nexport const badRequest = (builder?: ErrorEventAugment): ErrorEvent => from(deepMerge(ErrorCauses.badRequest(builder), builder))\n\nexport const invalidValue = (value: unknown, builder?: ErrorEventAugment): ErrorEvent =>\n from(deepMerge(ErrorCauses.invalidValue(value, builder), builder))\n\nexport function assertPresent<T>(value: T, builder: LazyValue<ErrorEventAugment | undefined> = () => undefined): asserts value is NonNullable<T> {\n if (isNil(value)) {\n throw new ErrorEventException(required(evaluate(builder)))\n }\n}\n\nexport function assertAuthorized(value: boolean, builder: LazyValue<ErrorEventAugment | undefined> = () => undefined): asserts value is true {\n if (!value) {\n throw new ErrorEventException(unauthorized(evaluate(builder)))\n }\n}\n\nexport function assertPermitted(value: boolean, builder: LazyValue<ErrorEventAugment | undefined> = () => undefined): asserts value is true {\n if (!value) {\n throw new ErrorEventException(forbidden(evaluate(builder)))\n }\n}\n\nexport function assertValid(value: boolean, builder: LazyValue<ErrorEventAugment | undefined> = () => undefined): asserts value is true {\n if (!value) {\n throw new ErrorEventException(badRequest(evaluate(builder)))\n }\n}\n\nexport function assert(value: boolean, builder: LazyValue<ErrorEventBuilder>): asserts value is true {\n if (!value) {\n throw new ErrorEventException(from(evaluate(builder)))\n }\n}\n\nexport const unpackResult = <T>(result: Result<T, ErrorEvent>): T => {\n if (!result.isSuccess) {\n throw new ErrorEventException(result.value)\n }\n\n return result.value\n}\n"],"mappings":"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","names":["Schema","from","unhandled","required","unauthorized","forbidden","badRequest","invalidValue","assertPresent","assert"]}
|
|
1
|
+
{"version":3,"sources":["../../src/error/error-event.ts"],"sourcesContent":["import { Dictionary, Throwable } from '@bessemer/cornerstone/types'\nimport { deepMerge, isNil, isObject, isPresent } from '@bessemer/cornerstone/object'\nimport Zod from 'zod'\nimport { evaluate, LazyValue } from '@bessemer/cornerstone/lazy'\nimport { findInCausalChain as errorsFindInCausalChain, isError } from '@bessemer/cornerstone/error/error'\nimport { isPromise } from '@bessemer/cornerstone/promise'\nimport { createNamespace } from '@bessemer/cornerstone/resource-key'\nimport * as Results from '@bessemer/cornerstone/result'\nimport { Result } from '@bessemer/cornerstone/result'\nimport * as ErrorCauses from '@bessemer/cornerstone/error/error-cause'\nimport { ErrorCause, ErrorCauseAugment, ErrorCauseBuilder } from '@bessemer/cornerstone/error/error-cause'\nimport * as Assertions from '@bessemer/cornerstone/assertion'\nimport { MergeExclusive } from 'type-fest'\nimport { isEmpty } from '@bessemer/cornerstone/array'\n\nexport const Namespace = createNamespace('error-event')\n\nexport const Schema = Zod.object({\n _type: Namespace,\n message: Zod.string(),\n causes: Zod.array(ErrorCauses.Schema),\n context: Zod.record(Zod.string(), Zod.unknown()),\n})\n\nexport type ErrorEvent = {\n _type: typeof Namespace\n message: string\n causes: Array<ErrorCause>\n context: Dictionary<unknown>\n}\n\ntype ErrorEventCommonBuilder = {\n message: string\n context?: Dictionary<unknown>\n}\n\ntype ErrorEventFullBuilder = ErrorEventCommonBuilder & {\n causes: Array<ErrorCauseBuilder>\n}\ntype ErrorEventSingletonBuilder = ErrorEventCommonBuilder & ErrorCauseBuilder\nexport type ErrorEventBuilder = MergeExclusive<ErrorEventFullBuilder, ErrorEventSingletonBuilder>\n\n// An exception type that contains an ErrorEvent\nexport class ErrorEventException extends Error {\n readonly errorEvent: ErrorEvent\n\n constructor(errorEvent: ErrorEvent, cause?: unknown) {\n super(errorEvent.message ?? '', { cause })\n this.name = this.constructor.name\n this.errorEvent = errorEvent\n }\n}\n\nexport const from = (builder: ErrorEventBuilder): ErrorEvent => {\n if (isPresent(builder.code)) {\n const code = builder.code\n return {\n _type: Namespace,\n causes: [ErrorCauses.from({ code, ...builder })],\n message: builder.message,\n context: builder.context ?? {},\n }\n } else {\n Assertions.assertPresent(builder.causes)\n Assertions.assert(!isEmpty(builder.causes), () => 'ErrorEvent - Unable to construct ErrorEvent with empty causes array.')\n\n return {\n _type: Namespace,\n causes: builder.causes.map(ErrorCauses.from),\n message: builder.message,\n context: builder.context ?? {},\n }\n }\n}\n\nexport const fromThrowable = (throwable: Throwable): ErrorEvent => {\n if (isErrorEvent(throwable)) {\n return throwable\n }\n\n if (!isError(throwable)) {\n return unhandled()\n }\n\n const errorEventException = errorsFindInCausalChain(throwable, isErrorEventException) as ErrorEventException | undefined\n if (isNil(errorEventException)) {\n return unhandled()\n }\n\n return errorEventException.errorEvent\n}\n\nexport const isErrorEvent = (value: unknown): value is ErrorEvent => {\n if (!isObject(value)) {\n return false\n }\n\n const errorEvent = value as ErrorEvent\n return errorEvent._type === Namespace\n}\n\nexport const isErrorEventException = (value: unknown): value is ErrorEventException => {\n return value instanceof ErrorEventException\n}\n\nexport function withPropagation<ReturnType>(runnable: () => ReturnType, attributes: LazyValue<Dictionary<unknown>>): ReturnType\nexport function withPropagation<ReturnType>(runnable: () => Promise<ReturnType>, attributes: LazyValue<Dictionary<unknown>>): Promise<ReturnType>\nexport function withPropagation<ReturnType>(\n runnable: () => ReturnType | Promise<ReturnType>,\n attributes: LazyValue<Dictionary<unknown>>\n): ReturnType | Promise<ReturnType> {\n try {\n let result = runnable()\n if (isPromise(result)) {\n return result.then((it) => it).catch((it) => propagate(it, evaluate(attributes)))\n } else {\n return result\n }\n } catch (throwable: Throwable) {\n throw propagate(throwable, evaluate(attributes))\n }\n}\n\nexport const propagate = (throwable: Throwable, context: Dictionary<unknown>): never => {\n if (isErrorEventException(throwable)) {\n // We just mutate the existing error event to avoid nested exceptions\n const errorEvent = throwable.errorEvent\n errorEvent.context = { ...errorEvent.context, ...context }\n throw throwable\n } else {\n const errorEvent = fromThrowable(throwable)\n const contextualizedEvent = from({ ...errorEvent, context: { ...errorEvent.context, ...context } })\n throw new ErrorEventException(contextualizedEvent, throwable)\n }\n}\n\nexport type ErrorEventAugment = ErrorCauseAugment & {\n context?: Dictionary<unknown>\n}\n\nexport const unhandled = (builder?: ErrorEventAugment): ErrorEvent => from(deepMerge(ErrorCauses.unhandled(builder), builder))\n\nexport const required = (builder?: ErrorEventAugment): ErrorEvent => from(deepMerge(ErrorCauses.required(builder), builder))\n\nexport const unauthorized = (builder?: ErrorEventAugment): ErrorEvent => from(deepMerge(ErrorCauses.unauthorized(builder), builder))\n\nexport const forbidden = (builder?: ErrorEventAugment): ErrorEvent => from(deepMerge(ErrorCauses.forbidden(builder), builder))\n\nexport const badRequest = (builder?: ErrorEventAugment): ErrorEvent => from(deepMerge(ErrorCauses.badRequest(builder), builder))\n\nexport const invalidValue = (value: unknown, builder?: ErrorEventAugment): ErrorEvent =>\n from(deepMerge(ErrorCauses.invalidValue(value, builder), builder))\n\nexport function assertPresent<T>(value: T, builder: LazyValue<ErrorEventAugment | undefined> = () => undefined): asserts value is NonNullable<T> {\n if (isNil(value)) {\n throw new ErrorEventException(required(evaluate(builder)))\n }\n}\n\nexport function assertAuthorized(value: boolean, builder: LazyValue<ErrorEventAugment | undefined> = () => undefined): asserts value is true {\n if (!value) {\n throw new ErrorEventException(unauthorized(evaluate(builder)))\n }\n}\n\nexport function assertPermitted(value: boolean, builder: LazyValue<ErrorEventAugment | undefined> = () => undefined): asserts value is true {\n if (!value) {\n throw new ErrorEventException(forbidden(evaluate(builder)))\n }\n}\n\nexport function assertValid(value: boolean, builder: LazyValue<ErrorEventAugment | undefined> = () => undefined): asserts value is true {\n if (!value) {\n throw new ErrorEventException(badRequest(evaluate(builder)))\n }\n}\n\nexport function assert(value: boolean, builder: LazyValue<ErrorEventBuilder>): asserts value is true {\n if (!value) {\n throw new ErrorEventException(from(evaluate(builder)))\n }\n}\n\nexport const unpackResult = <T>(result: Result<T, ErrorEvent>): T => {\n if (Results.isFailure(result)) {\n throw new ErrorEventException(result.value)\n }\n\n return result\n}\n"],"mappings":"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","names":["Schema","from","unhandled","required","unauthorized","forbidden","badRequest","invalidValue","assertPresent","assert"]}
|
package/dist/error/error.d.ts
CHANGED
|
@@ -1,4 +1,14 @@
|
|
|
1
|
+
import { Throwable } from '@bessemer/cornerstone/types';
|
|
2
|
+
import { LazyValue } from '@bessemer/cornerstone/lazy';
|
|
1
3
|
export declare const isError: (value: unknown) => value is Error;
|
|
4
|
+
export declare function assertError(value: unknown, message?: LazyValue<string>): asserts value is Error;
|
|
2
5
|
export declare const getCausalChain: (error: Error) => Array<Error>;
|
|
3
6
|
export declare const findInCausalChain: (error: Error, predicate: (error: Error) => boolean) => Error | undefined;
|
|
7
|
+
export type ErrorDto = {
|
|
8
|
+
name: string;
|
|
9
|
+
message: string;
|
|
10
|
+
stack: string | null;
|
|
11
|
+
cause: ErrorDto | null;
|
|
12
|
+
};
|
|
13
|
+
export declare const serialize: (error: Throwable) => ErrorDto;
|
|
4
14
|
//# sourceMappingURL=error.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/error/error.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/error/error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAGtD,eAAO,MAAM,OAAO,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,KAUjD,CAAA;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,SAAS,CAAC,MAAM,CAAgD,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAE7I;AAED,eAAO,MAAM,cAAc,GAAI,OAAO,KAAK,KAAG,KAAK,CAAC,KAAK,CAexD,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,OAAO,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,KAAG,KAAK,GAAG,SAE9F,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,OAAO,SAAS,KAAG,QAgB5C,CAAA"}
|
package/dist/error/error.js
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
// src/error/error.ts
|
|
2
2
|
import { isPresent } from "@bessemer/cornerstone/object";
|
|
3
|
+
import { assert } from "@bessemer/cornerstone/assertion";
|
|
3
4
|
var isError = (value) => {
|
|
4
|
-
return value instanceof Error;
|
|
5
|
+
return value instanceof Error || typeof value === "object" && value !== null && "name" in value && "message" in value && (typeof value.name === "string" || typeof value.name === "undefined") && typeof value.message === "string";
|
|
5
6
|
};
|
|
7
|
+
function assertError(value, message = () => "Errors.assertError failed validation") {
|
|
8
|
+
return assert(isError(value), message);
|
|
9
|
+
}
|
|
6
10
|
var getCausalChain = (error) => {
|
|
7
11
|
const chain = [];
|
|
8
12
|
let current = error;
|
|
@@ -18,9 +22,24 @@ var getCausalChain = (error) => {
|
|
|
18
22
|
var findInCausalChain = (error, predicate) => {
|
|
19
23
|
return getCausalChain(error).find(predicate);
|
|
20
24
|
};
|
|
25
|
+
var serialize = (error) => {
|
|
26
|
+
if (!isError(error)) {
|
|
27
|
+
return { name: " Can't serialize error", message: "Error is not an instance of Error", stack: null, cause: null };
|
|
28
|
+
}
|
|
29
|
+
const cause = isPresent(error.cause) ? serialize(error.cause) : null;
|
|
30
|
+
const serialized = {
|
|
31
|
+
name: error.name,
|
|
32
|
+
message: error.message,
|
|
33
|
+
stack: error.stack ?? null,
|
|
34
|
+
cause
|
|
35
|
+
};
|
|
36
|
+
return serialized;
|
|
37
|
+
};
|
|
21
38
|
export {
|
|
39
|
+
assertError,
|
|
22
40
|
findInCausalChain,
|
|
23
41
|
getCausalChain,
|
|
24
|
-
isError
|
|
42
|
+
isError,
|
|
43
|
+
serialize
|
|
25
44
|
};
|
|
26
45
|
//# sourceMappingURL=error.js.map
|
package/dist/error/error.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/error/error.ts"],"sourcesContent":["import { isPresent } from '@bessemer/cornerstone/object'\nimport { Throwable } from '@bessemer/cornerstone/types'\n\nexport const isError = (value: unknown): value is Error => {\n return value instanceof Error\n}\n\nexport const getCausalChain = (error: Error): Array<Error> => {\n const chain: Array<Error> = []\n let current: Error = error\n\n while (true) {\n chain.push(current)\n\n if (!isPresent(current.cause) || !isError(current.cause)) {\n break\n }\n\n current = current.cause\n }\n\n return chain\n}\n\nexport const findInCausalChain = (error: Error, predicate: (error: Error) => boolean): Error | undefined => {\n return getCausalChain(error).find(predicate)\n}\n\
|
|
1
|
+
{"version":3,"sources":["../../src/error/error.ts"],"sourcesContent":["import { isPresent } from '@bessemer/cornerstone/object'\nimport { Throwable } from '@bessemer/cornerstone/types'\nimport { LazyValue } from '@bessemer/cornerstone/lazy'\nimport { assert } from '@bessemer/cornerstone/assertion'\n\nexport const isError = (value: unknown): value is Error => {\n return (\n value instanceof Error ||\n (typeof value === 'object' &&\n value !== null &&\n 'name' in value &&\n 'message' in value &&\n (typeof (value as any).name === 'string' || typeof (value as any).name === 'undefined') &&\n typeof (value as any).message === 'string')\n )\n}\n\nexport function assertError(value: unknown, message: LazyValue<string> = () => 'Errors.assertError failed validation'): asserts value is Error {\n return assert(isError(value), message)\n}\n\nexport const getCausalChain = (error: Error): Array<Error> => {\n const chain: Array<Error> = []\n let current: Error = error\n\n while (true) {\n chain.push(current)\n\n if (!isPresent(current.cause) || !isError(current.cause)) {\n break\n }\n\n current = current.cause\n }\n\n return chain\n}\n\nexport const findInCausalChain = (error: Error, predicate: (error: Error) => boolean): Error | undefined => {\n return getCausalChain(error).find(predicate)\n}\n\nexport type ErrorDto = {\n name: string\n message: string\n stack: string | null\n cause: ErrorDto | null\n}\n\nexport const serialize = (error: Throwable): ErrorDto => {\n if (!isError(error)) {\n // JOHN\n return { name: \" Can't serialize error\", message: 'Error is not an instance of Error', stack: null, cause: null }\n }\n\n const cause = isPresent(error.cause) ? serialize(error.cause) : null\n\n const serialized: ErrorDto = {\n name: error.name,\n message: error.message,\n stack: error.stack ?? null,\n cause,\n }\n\n return serialized\n}\n"],"mappings":";AAAA,SAAS,iBAAiB;AAG1B,SAAS,cAAc;AAEhB,IAAM,UAAU,CAAC,UAAmC;AACzD,SACE,iBAAiB,SAChB,OAAO,UAAU,YAChB,UAAU,QACV,UAAU,SACV,aAAa,UACZ,OAAQ,MAAc,SAAS,YAAY,OAAQ,MAAc,SAAS,gBAC3E,OAAQ,MAAc,YAAY;AAExC;AAEO,SAAS,YAAY,OAAgB,UAA6B,MAAM,wCAAgE;AAC7I,SAAO,OAAO,QAAQ,KAAK,GAAG,OAAO;AACvC;AAEO,IAAM,iBAAiB,CAAC,UAA+B;AAC5D,QAAM,QAAsB,CAAC;AAC7B,MAAI,UAAiB;AAErB,SAAO,MAAM;AACX,UAAM,KAAK,OAAO;AAElB,QAAI,CAAC,UAAU,QAAQ,KAAK,KAAK,CAAC,QAAQ,QAAQ,KAAK,GAAG;AACxD;AAAA,IACF;AAEA,cAAU,QAAQ;AAAA,EACpB;AAEA,SAAO;AACT;AAEO,IAAM,oBAAoB,CAAC,OAAc,cAA4D;AAC1G,SAAO,eAAe,KAAK,EAAE,KAAK,SAAS;AAC7C;AASO,IAAM,YAAY,CAAC,UAA+B;AACvD,MAAI,CAAC,QAAQ,KAAK,GAAG;AAEnB,WAAO,EAAE,MAAM,0BAA0B,SAAS,qCAAqC,OAAO,MAAM,OAAO,KAAK;AAAA,EAClH;AAEA,QAAM,QAAQ,UAAU,MAAM,KAAK,IAAI,UAAU,MAAM,KAAK,IAAI;AAEhE,QAAM,aAAuB;AAAA,IAC3B,MAAM,MAAM;AAAA,IACZ,SAAS,MAAM;AAAA,IACf,OAAO,MAAM,SAAS;AAAA,IACtB;AAAA,EACF;AAEA,SAAO;AACT;","names":[]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const map: <T, U>(iterable: AsyncIterable<T>, mapper: (item: T) => U | Promise<U>) => AsyncIterable<U>;
|
|
2
|
+
export declare const take: <T>(iterable: AsyncIterable<T>, count: number) => AsyncIterable<T>;
|
|
3
|
+
export declare const takeWhile: <T>(iterable: AsyncIterable<T>, predicate: (item: T, index: number) => boolean | Promise<boolean>) => AsyncIterable<T>;
|
|
4
|
+
//# sourceMappingURL=generators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generators.d.ts","sourceRoot":"","sources":["../src/generators.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,GAAG,GAAoB,CAAC,EAAE,CAAC,EAAE,UAAU,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,KAAG,aAAa,CAAC,CAAC,CAI1H,CAAA;AAED,eAAO,MAAM,IAAI,GAAoB,CAAC,EAAE,UAAU,aAAa,CAAC,CAAC,CAAC,EAAE,OAAO,MAAM,KAAG,aAAa,CAAC,CAAC,CAElG,CAAA;AAED,eAAO,MAAM,SAAS,GAAoB,CAAC,EACzC,UAAU,aAAa,CAAC,CAAC,CAAC,EAC1B,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAChE,aAAa,CAAC,CAAC,CAUjB,CAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// src/generators.ts
|
|
2
|
+
var map = async function* (iterable, mapper) {
|
|
3
|
+
for await (const item of iterable) {
|
|
4
|
+
yield await mapper(item);
|
|
5
|
+
}
|
|
6
|
+
};
|
|
7
|
+
var take = async function* (iterable, count) {
|
|
8
|
+
yield* takeWhile(iterable, (_, index) => index < count);
|
|
9
|
+
};
|
|
10
|
+
var takeWhile = async function* (iterable, predicate) {
|
|
11
|
+
let i = 0;
|
|
12
|
+
for await (const item of iterable) {
|
|
13
|
+
if (!await predicate(item, i++)) {
|
|
14
|
+
break;
|
|
15
|
+
}
|
|
16
|
+
yield item;
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
export {
|
|
20
|
+
map,
|
|
21
|
+
take,
|
|
22
|
+
takeWhile
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=generators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/generators.ts"],"sourcesContent":["export const map = async function* <T, U>(iterable: AsyncIterable<T>, mapper: (item: T) => U | Promise<U>): AsyncIterable<U> {\n for await (const item of iterable) {\n yield await mapper(item)\n }\n}\n\nexport const take = async function* <T>(iterable: AsyncIterable<T>, count: number): AsyncIterable<T> {\n yield* takeWhile(iterable, (_, index) => index < count)\n}\n\nexport const takeWhile = async function* <T>(\n iterable: AsyncIterable<T>,\n predicate: (item: T, index: number) => boolean | Promise<boolean>\n): AsyncIterable<T> {\n let i = 0\n\n for await (const item of iterable) {\n if (!(await predicate(item, i++))) {\n break\n }\n\n yield item\n }\n}\n"],"mappings":";AAAO,IAAM,MAAM,iBAAuB,UAA4B,QAAuD;AAC3H,mBAAiB,QAAQ,UAAU;AACjC,UAAM,MAAM,OAAO,IAAI;AAAA,EACzB;AACF;AAEO,IAAM,OAAO,iBAAoB,UAA4B,OAAiC;AACnG,SAAO,UAAU,UAAU,CAAC,GAAG,UAAU,QAAQ,KAAK;AACxD;AAEO,IAAM,YAAY,iBACvB,UACA,WACkB;AAClB,MAAI,IAAI;AAER,mBAAiB,QAAQ,UAAU;AACjC,QAAI,CAAE,MAAM,UAAU,MAAM,GAAG,GAAI;AACjC;AAAA,IACF;AAEA,UAAM;AAAA,EACR;AACF;","names":[]}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as Types from '@bessemer/cornerstone/types';
|
|
1
2
|
import * as Objects from '@bessemer/cornerstone/object';
|
|
2
3
|
import * as Functions from '@bessemer/cornerstone/function';
|
|
3
4
|
import * as Arrays from '@bessemer/cornerstone/array';
|
|
@@ -68,5 +69,9 @@ import * as ResourceKeys from '@bessemer/cornerstone/resource-key';
|
|
|
68
69
|
import * as HexCodes from '@bessemer/cornerstone/hex-code';
|
|
69
70
|
import * as IpV6Addresses from '@bessemer/cornerstone/net/ipv6-address';
|
|
70
71
|
import * as IpV4Addresses from '@bessemer/cornerstone/net/ipv4-address';
|
|
71
|
-
|
|
72
|
+
import * as HttpMethods from '@bessemer/cornerstone/net/http-method';
|
|
73
|
+
import * as ContentTypes from '@bessemer/cornerstone/net/content-type';
|
|
74
|
+
import * as Proxies from '@bessemer/cornerstone/proxy';
|
|
75
|
+
import * as Generators from '@bessemer/cornerstone/generators';
|
|
76
|
+
export { Types, Objects, Functions, Arrays, Strings, Async, AsyncValues, Maths, Maps, Sets, Dates, Comparators, Equalitors, Durations, Uris, Urls, Loggers, Errors, ErrorTypes, ErrorCodes, ErrorCauses, ErrorEvents, Assertions, Uuid4, Uuid7, Ulids, Entries, Hashes, Crypto, Globs, Ranges, ObjectPaths, TypePaths, ObjectDiffs, Clocks, TimeZoneIds, TimeZoneOffsets, Instants, PlainDates, PlainTimes, PlainDateTimes, ZodUtil, Tags, Promises, References, Signatures, Eithers, Results, Lazy, Patches, Content, Combinables, Properties, RichTexts, Retry, Stores, Misc, Json, AspectRatios, DataSizes, MimeTypes, CurrencyCodes, MonetaryAmounts, CountryCodes, CountrySubdivisionCodes, LanguageCodes, Locales, ResourceKeys, HexCodes, IpV6Addresses, IpV4Addresses, HttpMethods, ContentTypes, Proxies, Generators, };
|
|
72
77
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,8BAA8B,CAAA;AACvD,OAAO,KAAK,SAAS,MAAM,gCAAgC,CAAA;AAC3D,OAAO,KAAK,MAAM,MAAM,6BAA6B,CAAA;AACrD,OAAO,KAAK,OAAO,MAAM,8BAA8B,CAAA;AACvD,OAAO,KAAK,KAAK,MAAM,6BAA6B,CAAA;AACpD,OAAO,KAAK,WAAW,MAAM,mCAAmC,CAAA;AAChE,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAA;AACnD,OAAO,KAAK,IAAI,MAAM,2BAA2B,CAAA;AACjD,OAAO,KAAK,IAAI,MAAM,2BAA2B,CAAA;AACjD,OAAO,KAAK,KAAK,MAAM,qCAAqC,CAAA;AAC5D,OAAO,KAAK,WAAW,MAAM,kCAAkC,CAAA;AAC/D,OAAO,KAAK,UAAU,MAAM,iCAAiC,CAAA;AAC7D,OAAO,KAAK,SAAS,MAAM,yCAAyC,CAAA;AACpE,OAAO,KAAK,IAAI,MAAM,+BAA+B,CAAA;AACrD,OAAO,KAAK,IAAI,MAAM,+BAA+B,CAAA;AACrD,OAAO,KAAK,OAAO,MAAM,8BAA8B,CAAA;AACvD,OAAO,KAAK,MAAM,MAAM,mCAAmC,CAAA;AAC3D,OAAO,KAAK,UAAU,MAAM,wCAAwC,CAAA;AACpE,OAAO,KAAK,UAAU,MAAM,wCAAwC,CAAA;AACpE,OAAO,KAAK,WAAW,MAAM,yCAAyC,CAAA;AACtE,OAAO,KAAK,WAAW,MAAM,yCAAyC,CAAA;AACtE,OAAO,KAAK,UAAU,MAAM,iCAAiC,CAAA;AAC7D,OAAO,KAAK,KAAK,MAAM,oCAAoC,CAAA;AAC3D,OAAO,KAAK,KAAK,MAAM,oCAAoC,CAAA;AAC3D,OAAO,KAAK,KAAK,MAAM,iCAAiC,CAAA;AACxD,OAAO,KAAK,OAAO,MAAM,6BAA6B,CAAA;AACtD,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAA;AACpD,OAAO,KAAK,MAAM,MAAM,8BAA8B,CAAA;AACtD,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAA;AACnD,OAAO,KAAK,MAAM,MAAM,6BAA6B,CAAA;AACrD,OAAO,KAAK,WAAW,MAAM,0CAA0C,CAAA;AACvE,OAAO,KAAK,SAAS,MAAM,wCAAwC,CAAA;AACnE,OAAO,KAAK,WAAW,MAAM,0CAA0C,CAAA;AACvE,OAAO,KAAK,WAAW,MAAM,6CAA6C,CAAA;AAC1E,OAAO,KAAK,eAAe,MAAM,iDAAiD,CAAA;AAClF,OAAO,KAAK,QAAQ,MAAM,wCAAwC,CAAA;AAClE,OAAO,KAAK,UAAU,MAAM,2CAA2C,CAAA;AACvE,OAAO,KAAK,UAAU,MAAM,2CAA2C,CAAA;AACvE,OAAO,KAAK,cAAc,MAAM,gDAAgD,CAAA;AAChF,OAAO,KAAK,MAAM,MAAM,sCAAsC,CAAA;AAE9D,OAAO,KAAK,OAAO,MAAM,gCAAgC,CAAA;AACzD,OAAO,KAAK,IAAI,MAAM,2BAA2B,CAAA;AACjD,OAAO,KAAK,QAAQ,MAAM,+BAA+B,CAAA;AACzD,OAAO,KAAK,UAAU,MAAM,iCAAiC,CAAA;AAC7D,OAAO,KAAK,UAAU,MAAM,iCAAiC,CAAA;AAC7D,OAAO,KAAK,OAAO,MAAM,8BAA8B,CAAA;AACvD,OAAO,KAAK,OAAO,MAAM,8BAA8B,CAAA;AACvD,OAAO,KAAK,IAAI,MAAM,4BAA4B,CAAA;AAClD,OAAO,KAAK,OAAO,MAAM,6BAA6B,CAAA;AACtD,OAAO,KAAK,OAAO,MAAM,+BAA+B,CAAA;AACxD,OAAO,KAAK,WAAW,MAAM,kCAAkC,CAAA;AAC/D,OAAO,KAAK,UAAU,MAAM,gCAAgC,CAAA;AAC5D,OAAO,KAAK,SAAS,MAAM,iCAAiC,CAAA;AAC5D,OAAO,KAAK,KAAK,MAAM,6BAA6B,CAAA;AACpD,OAAO,KAAK,MAAM,MAAM,6BAA6B,CAAA;AACrD,OAAO,KAAK,IAAI,MAAM,4BAA4B,CAAA;AAClD,OAAO,KAAK,IAAI,MAAM,4BAA4B,CAAA;AAClD,OAAO,KAAK,YAAY,MAAM,oCAAoC,CAAA;AAClE,OAAO,KAAK,SAAS,MAAM,iCAAiC,CAAA;AAC5D,OAAO,KAAK,SAAS,MAAM,iCAAiC,CAAA;AAC5D,OAAO,KAAK,eAAe,MAAM,uCAAuC,CAAA;AACxE,OAAO,KAAK,aAAa,MAAM,0CAA0C,CAAA;AACzE,OAAO,KAAK,YAAY,MAAM,yCAAyC,CAAA;AACvE,OAAO,KAAK,uBAAuB,MAAM,qDAAqD,CAAA;AAC9F,OAAO,KAAK,aAAa,MAAM,0CAA0C,CAAA;AACzE,OAAO,KAAK,OAAO,MAAM,mCAAmC,CAAA;AAC5D,OAAO,KAAK,YAAY,MAAM,oCAAoC,CAAA;AAClE,OAAO,KAAK,QAAQ,MAAM,gCAAgC,CAAA;AAC1D,OAAO,KAAK,aAAa,MAAM,wCAAwC,CAAA;AACvE,OAAO,KAAK,aAAa,MAAM,wCAAwC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
// src/index.ts
|
|
2
|
+
import * as Types from "@bessemer/cornerstone/types";
|
|
2
3
|
import * as Objects from "@bessemer/cornerstone/object";
|
|
3
4
|
import * as Functions from "@bessemer/cornerstone/function";
|
|
4
5
|
import * as Arrays from "@bessemer/cornerstone/array";
|
|
@@ -69,6 +70,10 @@ import * as ResourceKeys from "@bessemer/cornerstone/resource-key";
|
|
|
69
70
|
import * as HexCodes from "@bessemer/cornerstone/hex-code";
|
|
70
71
|
import * as IpV6Addresses from "@bessemer/cornerstone/net/ipv6-address";
|
|
71
72
|
import * as IpV4Addresses from "@bessemer/cornerstone/net/ipv4-address";
|
|
73
|
+
import * as HttpMethods from "@bessemer/cornerstone/net/http-method";
|
|
74
|
+
import * as ContentTypes from "@bessemer/cornerstone/net/content-type";
|
|
75
|
+
import * as Proxies from "@bessemer/cornerstone/proxy";
|
|
76
|
+
import * as Generators from "@bessemer/cornerstone/generators";
|
|
72
77
|
export {
|
|
73
78
|
Arrays,
|
|
74
79
|
AspectRatios,
|
|
@@ -79,6 +84,7 @@ export {
|
|
|
79
84
|
Combinables,
|
|
80
85
|
Comparators,
|
|
81
86
|
Content,
|
|
87
|
+
ContentTypes,
|
|
82
88
|
CountryCodes,
|
|
83
89
|
CountrySubdivisionCodes,
|
|
84
90
|
Crypto,
|
|
@@ -95,9 +101,11 @@ export {
|
|
|
95
101
|
ErrorTypes,
|
|
96
102
|
Errors,
|
|
97
103
|
Functions,
|
|
104
|
+
Generators,
|
|
98
105
|
Globs,
|
|
99
106
|
Hashes,
|
|
100
107
|
HexCodes,
|
|
108
|
+
HttpMethods,
|
|
101
109
|
Instants,
|
|
102
110
|
IpV4Addresses,
|
|
103
111
|
IpV6Addresses,
|
|
@@ -120,6 +128,7 @@ export {
|
|
|
120
128
|
PlainTimes,
|
|
121
129
|
Promises,
|
|
122
130
|
Properties,
|
|
131
|
+
Proxies,
|
|
123
132
|
Ranges,
|
|
124
133
|
References,
|
|
125
134
|
ResourceKeys,
|
|
@@ -134,6 +143,7 @@ export {
|
|
|
134
143
|
TimeZoneIds,
|
|
135
144
|
TimeZoneOffsets,
|
|
136
145
|
TypePaths,
|
|
146
|
+
Types,
|
|
137
147
|
Ulids,
|
|
138
148
|
Uris,
|
|
139
149
|
Urls,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import * as Objects from '@bessemer/cornerstone/object'\nimport * as Functions from '@bessemer/cornerstone/function'\nimport * as Arrays from '@bessemer/cornerstone/array'\nimport * as Strings from '@bessemer/cornerstone/string'\nimport * as Async from '@bessemer/cornerstone/async'\nimport * as AsyncValues from '@bessemer/cornerstone/async-value'\nimport * as Maths from '@bessemer/cornerstone/math'\nimport * as Maps from '@bessemer/cornerstone/map'\nimport * as Sets from '@bessemer/cornerstone/set'\nimport * as Dates from '@bessemer/cornerstone/temporal/date'\nimport * as Comparators from '@bessemer/cornerstone/comparator'\nimport * as Equalitors from '@bessemer/cornerstone/equalitor'\nimport * as Durations from '@bessemer/cornerstone/temporal/duration'\nimport * as Uris from '@bessemer/cornerstone/net/uri'\nimport * as Urls from '@bessemer/cornerstone/net/url'\nimport * as Loggers from '@bessemer/cornerstone/logger'\nimport * as Errors from '@bessemer/cornerstone/error/error'\nimport * as ErrorTypes from '@bessemer/cornerstone/error/error-type'\nimport * as ErrorCodes from '@bessemer/cornerstone/error/error-code'\nimport * as ErrorCauses from '@bessemer/cornerstone/error/error-cause'\nimport * as ErrorEvents from '@bessemer/cornerstone/error/error-event'\nimport * as Assertions from '@bessemer/cornerstone/assertion'\nimport * as Uuid4 from '@bessemer/cornerstone/uuid/uuid-v4'\nimport * as Uuid7 from '@bessemer/cornerstone/uuid/uuid-v7'\nimport * as Ulids from '@bessemer/cornerstone/uuid/ulid'\nimport * as Entries from '@bessemer/cornerstone/entry'\nimport * as Hashes from '@bessemer/cornerstone/hash'\nimport * as Crypto from '@bessemer/cornerstone/crypto'\nimport * as Globs from '@bessemer/cornerstone/glob'\nimport * as Ranges from '@bessemer/cornerstone/range'\nimport * as ObjectPaths from '@bessemer/cornerstone/object/object-path'\nimport * as TypePaths from '@bessemer/cornerstone/object/type-path'\nimport * as ObjectDiffs from '@bessemer/cornerstone/object/object-diff'\nimport * as TimeZoneIds from '@bessemer/cornerstone/temporal/time-zone-id'\nimport * as TimeZoneOffsets from '@bessemer/cornerstone/temporal/time-zone-offset'\nimport * as Instants from '@bessemer/cornerstone/temporal/instant'\nimport * as PlainDates from '@bessemer/cornerstone/temporal/plain-date'\nimport * as PlainTimes from '@bessemer/cornerstone/temporal/plain-time'\nimport * as PlainDateTimes from '@bessemer/cornerstone/temporal/plain-date-time'\nimport * as Clocks from '@bessemer/cornerstone/temporal/clock'\n\nimport * as ZodUtil from '@bessemer/cornerstone/zod-util'\nimport * as Tags from '@bessemer/cornerstone/tag'\nimport * as Promises from '@bessemer/cornerstone/promise'\nimport * as References from '@bessemer/cornerstone/reference'\nimport * as Signatures from '@bessemer/cornerstone/signature'\nimport * as Eithers from '@bessemer/cornerstone/either'\nimport * as Results from '@bessemer/cornerstone/result'\nimport * as Lazy from '@bessemer/cornerstone/lazy'\nimport * as Patches from '@bessemer/cornerstone/patch'\nimport * as Content from '@bessemer/cornerstone/content'\nimport * as Combinables from '@bessemer/cornerstone/combinable'\nimport * as Properties from '@bessemer/cornerstone/property'\nimport * as RichTexts from '@bessemer/cornerstone/rich-text'\nimport * as Retry from '@bessemer/cornerstone/retry'\nimport * as Stores from '@bessemer/cornerstone/store'\nimport * as Misc from '@bessemer/cornerstone/misc'\nimport * as Json from '@bessemer/cornerstone/json'\nimport * as AspectRatios from '@bessemer/cornerstone/aspect-ratio'\nimport * as DataSizes from '@bessemer/cornerstone/data-size'\nimport * as MimeTypes from '@bessemer/cornerstone/mime-type'\nimport * as MonetaryAmounts from '@bessemer/cornerstone/monetary-amount'\nimport * as CurrencyCodes from '@bessemer/cornerstone/intl/currency-code'\nimport * as CountryCodes from '@bessemer/cornerstone/intl/country-code'\nimport * as CountrySubdivisionCodes from '@bessemer/cornerstone/intl/country-subdivision-code'\nimport * as LanguageCodes from '@bessemer/cornerstone/intl/language-code'\nimport * as Locales from '@bessemer/cornerstone/intl/locale'\nimport * as ResourceKeys from '@bessemer/cornerstone/resource-key'\nimport * as HexCodes from '@bessemer/cornerstone/hex-code'\nimport * as IpV6Addresses from '@bessemer/cornerstone/net/ipv6-address'\nimport * as IpV4Addresses from '@bessemer/cornerstone/net/ipv4-address'\n\nexport {\n Objects,\n Functions,\n Arrays,\n Strings,\n Async,\n AsyncValues,\n Maths,\n Maps,\n Sets,\n Dates,\n Comparators,\n Equalitors,\n Durations,\n Uris,\n Urls,\n Loggers,\n Errors,\n ErrorTypes,\n ErrorCodes,\n ErrorCauses,\n ErrorEvents,\n Assertions,\n Uuid4,\n Uuid7,\n Ulids,\n Entries,\n Hashes,\n Crypto,\n Globs,\n Ranges,\n ObjectPaths,\n TypePaths,\n ObjectDiffs,\n Clocks,\n TimeZoneIds,\n TimeZoneOffsets,\n Instants,\n PlainDates,\n PlainTimes,\n PlainDateTimes,\n ZodUtil,\n Tags,\n Promises,\n References,\n Signatures,\n Eithers,\n Results,\n Lazy,\n Patches,\n Content,\n Combinables,\n Properties,\n RichTexts,\n Retry,\n Stores,\n Misc,\n Json,\n AspectRatios,\n DataSizes,\n MimeTypes,\n CurrencyCodes,\n MonetaryAmounts,\n CountryCodes,\n CountrySubdivisionCodes,\n LanguageCodes,\n Locales,\n ResourceKeys,\n HexCodes,\n IpV6Addresses,\n IpV4Addresses,\n}\n"],"mappings":";AAAA,YAAY,aAAa;AACzB,YAAY,eAAe;AAC3B,YAAY,YAAY;AACxB,YAAY,aAAa;AACzB,YAAY,WAAW;AACvB,YAAY,iBAAiB;AAC7B,YAAY,WAAW;AACvB,YAAY,UAAU;AACtB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB,YAAY,iBAAiB;AAC7B,YAAY,gBAAgB;AAC5B,YAAY,eAAe;AAC3B,YAAY,UAAU;AACtB,YAAY,UAAU;AACtB,YAAY,aAAa;AACzB,YAAY,YAAY;AACxB,YAAY,gBAAgB;AAC5B,YAAY,gBAAgB;AAC5B,YAAY,iBAAiB;AAC7B,YAAY,iBAAiB;AAC7B,YAAY,gBAAgB;AAC5B,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB,YAAY,aAAa;AACzB,YAAY,YAAY;AACxB,YAAY,YAAY;AACxB,YAAY,WAAW;AACvB,YAAY,YAAY;AACxB,YAAY,iBAAiB;AAC7B,YAAY,eAAe;AAC3B,YAAY,iBAAiB;AAC7B,YAAY,iBAAiB;AAC7B,YAAY,qBAAqB;AACjC,YAAY,cAAc;AAC1B,YAAY,gBAAgB;AAC5B,YAAY,gBAAgB;AAC5B,YAAY,oBAAoB;AAChC,YAAY,YAAY;AAExB,YAAY,aAAa;AACzB,YAAY,UAAU;AACtB,YAAY,cAAc;AAC1B,YAAY,gBAAgB;AAC5B,YAAY,gBAAgB;AAC5B,YAAY,aAAa;AACzB,YAAY,aAAa;AACzB,YAAY,UAAU;AACtB,YAAY,aAAa;AACzB,YAAY,aAAa;AACzB,YAAY,iBAAiB;AAC7B,YAAY,gBAAgB;AAC5B,YAAY,eAAe;AAC3B,YAAY,WAAW;AACvB,YAAY,YAAY;AACxB,YAAY,UAAU;AACtB,YAAY,UAAU;AACtB,YAAY,kBAAkB;AAC9B,YAAY,eAAe;AAC3B,YAAY,eAAe;AAC3B,YAAY,qBAAqB;AACjC,YAAY,mBAAmB;AAC/B,YAAY,kBAAkB;AAC9B,YAAY,6BAA6B;AACzC,YAAY,mBAAmB;AAC/B,YAAY,aAAa;AACzB,YAAY,kBAAkB;AAC9B,YAAY,cAAc;AAC1B,YAAY,mBAAmB;AAC/B,YAAY,mBAAmB;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import * as Types from '@bessemer/cornerstone/types'\nimport * as Objects from '@bessemer/cornerstone/object'\nimport * as Functions from '@bessemer/cornerstone/function'\nimport * as Arrays from '@bessemer/cornerstone/array'\nimport * as Strings from '@bessemer/cornerstone/string'\nimport * as Async from '@bessemer/cornerstone/async'\nimport * as AsyncValues from '@bessemer/cornerstone/async-value'\nimport * as Maths from '@bessemer/cornerstone/math'\nimport * as Maps from '@bessemer/cornerstone/map'\nimport * as Sets from '@bessemer/cornerstone/set'\nimport * as Dates from '@bessemer/cornerstone/temporal/date'\nimport * as Comparators from '@bessemer/cornerstone/comparator'\nimport * as Equalitors from '@bessemer/cornerstone/equalitor'\nimport * as Durations from '@bessemer/cornerstone/temporal/duration'\nimport * as Uris from '@bessemer/cornerstone/net/uri'\nimport * as Urls from '@bessemer/cornerstone/net/url'\nimport * as Loggers from '@bessemer/cornerstone/logger'\nimport * as Errors from '@bessemer/cornerstone/error/error'\nimport * as ErrorTypes from '@bessemer/cornerstone/error/error-type'\nimport * as ErrorCodes from '@bessemer/cornerstone/error/error-code'\nimport * as ErrorCauses from '@bessemer/cornerstone/error/error-cause'\nimport * as ErrorEvents from '@bessemer/cornerstone/error/error-event'\nimport * as Assertions from '@bessemer/cornerstone/assertion'\nimport * as Uuid4 from '@bessemer/cornerstone/uuid/uuid-v4'\nimport * as Uuid7 from '@bessemer/cornerstone/uuid/uuid-v7'\nimport * as Ulids from '@bessemer/cornerstone/uuid/ulid'\nimport * as Entries from '@bessemer/cornerstone/entry'\nimport * as Hashes from '@bessemer/cornerstone/hash'\nimport * as Crypto from '@bessemer/cornerstone/crypto'\nimport * as Globs from '@bessemer/cornerstone/glob'\nimport * as Ranges from '@bessemer/cornerstone/range'\nimport * as ObjectPaths from '@bessemer/cornerstone/object/object-path'\nimport * as TypePaths from '@bessemer/cornerstone/object/type-path'\nimport * as ObjectDiffs from '@bessemer/cornerstone/object/object-diff'\nimport * as TimeZoneIds from '@bessemer/cornerstone/temporal/time-zone-id'\nimport * as TimeZoneOffsets from '@bessemer/cornerstone/temporal/time-zone-offset'\nimport * as Instants from '@bessemer/cornerstone/temporal/instant'\nimport * as PlainDates from '@bessemer/cornerstone/temporal/plain-date'\nimport * as PlainTimes from '@bessemer/cornerstone/temporal/plain-time'\nimport * as PlainDateTimes from '@bessemer/cornerstone/temporal/plain-date-time'\nimport * as Clocks from '@bessemer/cornerstone/temporal/clock'\n\nimport * as ZodUtil from '@bessemer/cornerstone/zod-util'\nimport * as Tags from '@bessemer/cornerstone/tag'\nimport * as Promises from '@bessemer/cornerstone/promise'\nimport * as References from '@bessemer/cornerstone/reference'\nimport * as Signatures from '@bessemer/cornerstone/signature'\nimport * as Eithers from '@bessemer/cornerstone/either'\nimport * as Results from '@bessemer/cornerstone/result'\nimport * as Lazy from '@bessemer/cornerstone/lazy'\nimport * as Patches from '@bessemer/cornerstone/patch'\nimport * as Content from '@bessemer/cornerstone/content'\nimport * as Combinables from '@bessemer/cornerstone/combinable'\nimport * as Properties from '@bessemer/cornerstone/property'\nimport * as RichTexts from '@bessemer/cornerstone/rich-text'\nimport * as Retry from '@bessemer/cornerstone/retry'\nimport * as Stores from '@bessemer/cornerstone/store'\nimport * as Misc from '@bessemer/cornerstone/misc'\nimport * as Json from '@bessemer/cornerstone/json'\nimport * as AspectRatios from '@bessemer/cornerstone/aspect-ratio'\nimport * as DataSizes from '@bessemer/cornerstone/data-size'\nimport * as MimeTypes from '@bessemer/cornerstone/mime-type'\nimport * as MonetaryAmounts from '@bessemer/cornerstone/monetary-amount'\nimport * as CurrencyCodes from '@bessemer/cornerstone/intl/currency-code'\nimport * as CountryCodes from '@bessemer/cornerstone/intl/country-code'\nimport * as CountrySubdivisionCodes from '@bessemer/cornerstone/intl/country-subdivision-code'\nimport * as LanguageCodes from '@bessemer/cornerstone/intl/language-code'\nimport * as Locales from '@bessemer/cornerstone/intl/locale'\nimport * as ResourceKeys from '@bessemer/cornerstone/resource-key'\nimport * as HexCodes from '@bessemer/cornerstone/hex-code'\nimport * as IpV6Addresses from '@bessemer/cornerstone/net/ipv6-address'\nimport * as IpV4Addresses from '@bessemer/cornerstone/net/ipv4-address'\nimport * as HttpMethods from '@bessemer/cornerstone/net/http-method'\nimport * as ContentTypes from '@bessemer/cornerstone/net/content-type'\nimport * as Proxies from '@bessemer/cornerstone/proxy'\nimport * as Generators from '@bessemer/cornerstone/generators'\n\nexport {\n Types,\n Objects,\n Functions,\n Arrays,\n Strings,\n Async,\n AsyncValues,\n Maths,\n Maps,\n Sets,\n Dates,\n Comparators,\n Equalitors,\n Durations,\n Uris,\n Urls,\n Loggers,\n Errors,\n ErrorTypes,\n ErrorCodes,\n ErrorCauses,\n ErrorEvents,\n Assertions,\n Uuid4,\n Uuid7,\n Ulids,\n Entries,\n Hashes,\n Crypto,\n Globs,\n Ranges,\n ObjectPaths,\n TypePaths,\n ObjectDiffs,\n Clocks,\n TimeZoneIds,\n TimeZoneOffsets,\n Instants,\n PlainDates,\n PlainTimes,\n PlainDateTimes,\n ZodUtil,\n Tags,\n Promises,\n References,\n Signatures,\n Eithers,\n Results,\n Lazy,\n Patches,\n Content,\n Combinables,\n Properties,\n RichTexts,\n Retry,\n Stores,\n Misc,\n Json,\n AspectRatios,\n DataSizes,\n MimeTypes,\n CurrencyCodes,\n MonetaryAmounts,\n CountryCodes,\n CountrySubdivisionCodes,\n LanguageCodes,\n Locales,\n ResourceKeys,\n HexCodes,\n IpV6Addresses,\n IpV4Addresses,\n HttpMethods,\n ContentTypes,\n Proxies,\n Generators,\n}\n"],"mappings":";AAAA,YAAY,WAAW;AACvB,YAAY,aAAa;AACzB,YAAY,eAAe;AAC3B,YAAY,YAAY;AACxB,YAAY,aAAa;AACzB,YAAY,WAAW;AACvB,YAAY,iBAAiB;AAC7B,YAAY,WAAW;AACvB,YAAY,UAAU;AACtB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB,YAAY,iBAAiB;AAC7B,YAAY,gBAAgB;AAC5B,YAAY,eAAe;AAC3B,YAAY,UAAU;AACtB,YAAY,UAAU;AACtB,YAAY,aAAa;AACzB,YAAY,YAAY;AACxB,YAAY,gBAAgB;AAC5B,YAAY,gBAAgB;AAC5B,YAAY,iBAAiB;AAC7B,YAAY,iBAAiB;AAC7B,YAAY,gBAAgB;AAC5B,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB,YAAY,aAAa;AACzB,YAAY,YAAY;AACxB,YAAY,YAAY;AACxB,YAAY,WAAW;AACvB,YAAY,YAAY;AACxB,YAAY,iBAAiB;AAC7B,YAAY,eAAe;AAC3B,YAAY,iBAAiB;AAC7B,YAAY,iBAAiB;AAC7B,YAAY,qBAAqB;AACjC,YAAY,cAAc;AAC1B,YAAY,gBAAgB;AAC5B,YAAY,gBAAgB;AAC5B,YAAY,oBAAoB;AAChC,YAAY,YAAY;AAExB,YAAY,aAAa;AACzB,YAAY,UAAU;AACtB,YAAY,cAAc;AAC1B,YAAY,gBAAgB;AAC5B,YAAY,gBAAgB;AAC5B,YAAY,aAAa;AACzB,YAAY,aAAa;AACzB,YAAY,UAAU;AACtB,YAAY,aAAa;AACzB,YAAY,aAAa;AACzB,YAAY,iBAAiB;AAC7B,YAAY,gBAAgB;AAC5B,YAAY,eAAe;AAC3B,YAAY,WAAW;AACvB,YAAY,YAAY;AACxB,YAAY,UAAU;AACtB,YAAY,UAAU;AACtB,YAAY,kBAAkB;AAC9B,YAAY,eAAe;AAC3B,YAAY,eAAe;AAC3B,YAAY,qBAAqB;AACjC,YAAY,mBAAmB;AAC/B,YAAY,kBAAkB;AAC9B,YAAY,6BAA6B;AACzC,YAAY,mBAAmB;AAC/B,YAAY,aAAa;AACzB,YAAY,kBAAkB;AAC9B,YAAY,cAAc;AAC1B,YAAY,mBAAmB;AAC/B,YAAY,mBAAmB;AAC/B,YAAY,iBAAiB;AAC7B,YAAY,kBAAkB;AAC9B,YAAY,aAAa;AACzB,YAAY,gBAAgB;","names":[]}
|
package/dist/json.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { JsonValue } from 'type-fest';
|
|
1
2
|
import { Result } from '@bessemer/cornerstone/result';
|
|
2
|
-
export declare const parse: (data: string) => Result<
|
|
3
|
+
export declare const parse: (data: string) => Result<JsonValue, SyntaxError>;
|
|
3
4
|
//# sourceMappingURL=json.d.ts.map
|
package/dist/json.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../src/json.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../src/json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,MAAM,EAAY,MAAM,8BAA8B,CAAA;AAE/D,eAAO,MAAM,KAAK,GAAI,MAAM,MAAM,KAAG,MAAM,CAAC,SAAS,EAAE,WAAW,CAEjE,CAAA"}
|
package/dist/json.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/json.ts"],"sourcesContent":["import { JsonValue } from 'type-fest'\nimport { Result, tryValue } from '@bessemer/cornerstone/result'\n\nexport const parse = (data: string): Result<
|
|
1
|
+
{"version":3,"sources":["../src/json.ts"],"sourcesContent":["import { JsonValue } from 'type-fest'\nimport { Result, tryValue } from '@bessemer/cornerstone/result'\n\nexport const parse = (data: string): Result<JsonValue, SyntaxError> => {\n return tryValue(() => JSON.parse(data) as JsonValue) as Result<JsonValue, SyntaxError>\n}\n"],"mappings":";AACA,SAAiB,gBAAgB;AAE1B,IAAM,QAAQ,CAAC,SAAiD;AACrE,SAAO,SAAS,MAAM,KAAK,MAAM,IAAI,CAAc;AACrD;","names":[]}
|
package/dist/math.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export declare const isNumber: (value?: unknown) => value is number;
|
|
2
2
|
export declare const isEven: (d: number) => boolean;
|
|
3
3
|
export declare const isOdd: (d: number) => boolean;
|
|
4
|
+
export declare const isWhole: (n: number) => boolean;
|
|
4
5
|
export declare enum RoundingMode {
|
|
5
6
|
Nearest = "Nearest",
|
|
6
7
|
Down = "Down",
|
|
@@ -21,5 +22,7 @@ export declare const roundHalfEven: (value: number, scale: number) => number;
|
|
|
21
22
|
export declare const random: (min: number, max: number) => number;
|
|
22
23
|
export declare const greatestCommonFactor: (first: number, second: number) => number;
|
|
23
24
|
export declare const sum: (...numbers: Array<number>) => number;
|
|
25
|
+
export declare const sumAll: (numbers: Array<number>) => number;
|
|
24
26
|
export declare const subtract: (...numbers: Array<number>) => number;
|
|
27
|
+
export declare const subtractAll: (numbers: Array<number>) => number;
|
|
25
28
|
//# sourceMappingURL=math.d.ts.map
|
package/dist/math.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../src/math.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,GAAI,QAAQ,OAAO,KAAG,KAAK,IAAI,MAMnD,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,GAAG,MAAM,YAAgB,CAAA;AAEhD,eAAO,MAAM,KAAK,GAAI,GAAG,MAAM,YAAgB,CAAA;AAE/C,oBAAY,YAAY;IACtB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,EAAE,OAAO;IACT,QAAQ,aAAa;CACtB;AAED,eAAO,MAAM,KAAK,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM,EAAE,eAAc,YAAmC,KAAG,MAWvG,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM,KAAG,MAG3D,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM,WAGrD,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM,WAGnD,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM,KAAG,MA0E5D,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,KAAG,MAEjD,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,OAAO,MAAM,EAAE,QAAQ,MAAM,KAAG,MAEpE,CAAA;AAED,eAAO,MAAM,GAAG,GAAI,GAAG,SAAS,KAAK,CAAC,MAAM,CAAC,KAAG,MAE/C,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,GAAG,SAAS,KAAK,CAAC,MAAM,CAAC,KAAG,MAMpD,CAAA"}
|
|
1
|
+
{"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../src/math.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,GAAI,QAAQ,OAAO,KAAG,KAAK,IAAI,MAMnD,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,GAAG,MAAM,YAAgB,CAAA;AAEhD,eAAO,MAAM,KAAK,GAAI,GAAG,MAAM,YAAgB,CAAA;AAE/C,eAAO,MAAM,OAAO,GAAI,GAAG,MAAM,YAAgB,CAAA;AAEjD,oBAAY,YAAY;IACtB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,EAAE,OAAO;IACT,QAAQ,aAAa;CACtB;AAED,eAAO,MAAM,KAAK,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM,EAAE,eAAc,YAAmC,KAAG,MAWvG,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM,KAAG,MAG3D,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM,WAGrD,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM,WAGnD,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM,KAAG,MA0E5D,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,KAAG,MAEjD,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,OAAO,MAAM,EAAE,QAAQ,MAAM,KAAG,MAEpE,CAAA;AAED,eAAO,MAAM,GAAG,GAAI,GAAG,SAAS,KAAK,CAAC,MAAM,CAAC,KAAG,MAE/C,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,SAAS,KAAK,CAAC,MAAM,CAAC,KAAG,MAE/C,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,GAAG,SAAS,KAAK,CAAC,MAAM,CAAC,KAAG,MAEpD,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,SAAS,KAAK,CAAC,MAAM,CAAC,KAAG,MAMpD,CAAA"}
|
package/dist/math.js
CHANGED
|
@@ -7,6 +7,7 @@ var isNumber = (value) => {
|
|
|
7
7
|
};
|
|
8
8
|
var isEven = (d) => d % 2 === 0;
|
|
9
9
|
var isOdd = (d) => d % 2 !== 0;
|
|
10
|
+
var isWhole = (n) => n % 1 === 0;
|
|
10
11
|
var RoundingMode = /* @__PURE__ */ ((RoundingMode2) => {
|
|
11
12
|
RoundingMode2["Nearest"] = "Nearest";
|
|
12
13
|
RoundingMode2["Down"] = "Down";
|
|
@@ -112,9 +113,15 @@ var greatestCommonFactor = (first, second) => {
|
|
|
112
113
|
return second === 0 ? first : greatestCommonFactor(second, first % second);
|
|
113
114
|
};
|
|
114
115
|
var sum = (...numbers) => {
|
|
116
|
+
return sumAll(numbers);
|
|
117
|
+
};
|
|
118
|
+
var sumAll = (numbers) => {
|
|
115
119
|
return numbers.reduce((first, second) => first + second, 0);
|
|
116
120
|
};
|
|
117
121
|
var subtract = (...numbers) => {
|
|
122
|
+
return subtractAll(numbers);
|
|
123
|
+
};
|
|
124
|
+
var subtractAll = (numbers) => {
|
|
118
125
|
if (numbers.length === 0) {
|
|
119
126
|
return 0;
|
|
120
127
|
}
|
|
@@ -126,6 +133,7 @@ export {
|
|
|
126
133
|
isEven,
|
|
127
134
|
isNumber,
|
|
128
135
|
isOdd,
|
|
136
|
+
isWhole,
|
|
129
137
|
random,
|
|
130
138
|
round,
|
|
131
139
|
roundDown,
|
|
@@ -133,6 +141,8 @@ export {
|
|
|
133
141
|
roundNearest,
|
|
134
142
|
roundUp,
|
|
135
143
|
subtract,
|
|
136
|
-
|
|
144
|
+
subtractAll,
|
|
145
|
+
sum,
|
|
146
|
+
sumAll
|
|
137
147
|
};
|
|
138
148
|
//# sourceMappingURL=math.js.map
|
package/dist/math.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/math.ts"],"sourcesContent":["export const isNumber = (value?: unknown): value is number => {\n if (value === null || value === undefined) {\n return false\n }\n\n return typeof value === 'number' && !isNaN(value)\n}\n\nexport const isEven = (d: number) => d % 2 === 0\n\nexport const isOdd = (d: number) => d % 2 !== 0\n\nexport enum RoundingMode {\n Nearest = 'Nearest',\n Down = 'Down',\n Up = 'Up',\n HalfEven = 'HalfEven',\n}\n\nexport const round = (value: number, scale: number, roundingMode: RoundingMode = RoundingMode.Nearest): number => {\n switch (roundingMode) {\n case RoundingMode.Nearest:\n return roundNearest(value, scale)\n case RoundingMode.Down:\n return roundDown(value, scale)\n case RoundingMode.Up:\n return roundUp(value, scale)\n case RoundingMode.HalfEven:\n return roundHalfEven(value, scale)\n }\n}\n\nexport const roundNearest = (value: number, scale: number): number => {\n const factor = Math.pow(10, scale)\n return Math.round((value + Number.EPSILON) * factor) / factor\n}\n\nexport const roundDown = (value: number, scale: number) => {\n const factor = Math.pow(10, scale)\n return Math.floor((value + +Number.EPSILON) * factor) / factor\n}\n\nexport const roundUp = (value: number, scale: number) => {\n const factor = Math.pow(10, scale)\n return Math.ceil((value + +Number.EPSILON) * factor) / factor\n}\n\n/**\n * Round Half-Even (Banker's Rounding) Utility\n * https://en.wikipedia.org/wiki/Rounding#Round_half_to_even\n *\n * Mostly copied from this Github: https://github.com/schowdhuri/round-half-even\n */\nexport const roundHalfEven = (value: number, scale: number): number => {\n if (value < 0) {\n return -roundHalfEven(-value, scale)\n }\n if (scale === 0) {\n return roundHalfEven(value / 10, 1) * 10\n }\n\n const MAX_DECIMALS_ALLOWED = 20\n if (scale > MAX_DECIMALS_ALLOWED) {\n throw new Error(`Cannot handle more than ${MAX_DECIMALS_ALLOWED} decimals`)\n }\n\n // convert to string; remove trailing 0s\n const isExponentialForm = value.toString().includes('e') || value.toString().includes('E')\n const strNum = (isExponentialForm ? value.toFixed(MAX_DECIMALS_ALLOWED).toString() : value.toString()).replace(/0+$/, '')\n const decimalIndex = strNum.indexOf('.')\n if (decimalIndex < 0) {\n // no fractional part\n return value\n }\n let intPart: string = strNum.slice(0, decimalIndex)\n if (intPart.length == 0) {\n intPart = '0'\n }\n let fractPart = strNum.slice(decimalIndex + 1) // extract fractional part\n if (fractPart.length < scale) {\n return value\n }\n const followingDig = parseInt(fractPart[scale]!, 10)\n if (followingDig < 5) {\n // rounding not required\n const newFractPart = fractPart.slice(0, scale)\n return parseFloat(`${intPart}.${newFractPart}`)\n }\n if (followingDig === 5) {\n const newFractPart = fractPart.slice(0, scale + 1)\n if (parseInt(fractPart.slice(scale + 1), 10) > 0) {\n fractPart = `${newFractPart}9`\n } else {\n fractPart = newFractPart\n }\n }\n\n let nextDig = parseInt(fractPart[fractPart.length - 1]!, 10)\n let carriedOver = 0\n for (let ptr = fractPart.length - 1; ptr >= scale; ptr--) {\n let dig = parseInt(fractPart[ptr - 1]!, 10) + carriedOver\n if (nextDig > 5 || (nextDig == 5 && !isEven(dig))) {\n ++dig\n }\n if (dig > 9) {\n dig -= 10\n carriedOver = 1\n } else {\n carriedOver = 0\n }\n nextDig = dig\n }\n\n let newFractPart = ''\n for (let ptr = scale - 2; ptr >= 0; ptr--) {\n let d = parseInt(fractPart[ptr]!, 10) + carriedOver\n if (d > 9) {\n d -= 10\n carriedOver = 1\n } else {\n carriedOver = 0\n }\n newFractPart = `${d}${newFractPart}`\n }\n\n const resolvedIntPart = parseInt(intPart, 10) + carriedOver\n return parseFloat(`${resolvedIntPart}.${newFractPart}${nextDig}`)\n}\n\nexport const random = (min: number, max: number): number => {\n return Math.random() * (max - min) + min\n}\n\nexport const greatestCommonFactor = (first: number, second: number): number => {\n return second === 0 ? first : greatestCommonFactor(second, first % second)\n}\n\nexport const sum = (...numbers: Array<number>): number => {\n return numbers.reduce((first, second) => first + second, 0)\n}\n\nexport const subtract = (...numbers: Array<number>): number => {\n if (numbers.length === 0) {\n return 0\n }\n\n return numbers.slice(1).reduce((result, current) => result - current, numbers[0]!)\n}\n"],"mappings":"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","names":["RoundingMode","newFractPart"]}
|
|
1
|
+
{"version":3,"sources":["../src/math.ts"],"sourcesContent":["export const isNumber = (value?: unknown): value is number => {\n if (value === null || value === undefined) {\n return false\n }\n\n return typeof value === 'number' && !isNaN(value)\n}\n\nexport const isEven = (d: number) => d % 2 === 0\n\nexport const isOdd = (d: number) => d % 2 !== 0\n\nexport const isWhole = (n: number) => n % 1 === 0\n\nexport enum RoundingMode {\n Nearest = 'Nearest',\n Down = 'Down',\n Up = 'Up',\n HalfEven = 'HalfEven',\n}\n\nexport const round = (value: number, scale: number, roundingMode: RoundingMode = RoundingMode.Nearest): number => {\n switch (roundingMode) {\n case RoundingMode.Nearest:\n return roundNearest(value, scale)\n case RoundingMode.Down:\n return roundDown(value, scale)\n case RoundingMode.Up:\n return roundUp(value, scale)\n case RoundingMode.HalfEven:\n return roundHalfEven(value, scale)\n }\n}\n\nexport const roundNearest = (value: number, scale: number): number => {\n const factor = Math.pow(10, scale)\n return Math.round((value + Number.EPSILON) * factor) / factor\n}\n\nexport const roundDown = (value: number, scale: number) => {\n const factor = Math.pow(10, scale)\n return Math.floor((value + +Number.EPSILON) * factor) / factor\n}\n\nexport const roundUp = (value: number, scale: number) => {\n const factor = Math.pow(10, scale)\n return Math.ceil((value + +Number.EPSILON) * factor) / factor\n}\n\n/**\n * Round Half-Even (Banker's Rounding) Utility\n * https://en.wikipedia.org/wiki/Rounding#Round_half_to_even\n *\n * Mostly copied from this Github: https://github.com/schowdhuri/round-half-even\n */\nexport const roundHalfEven = (value: number, scale: number): number => {\n if (value < 0) {\n return -roundHalfEven(-value, scale)\n }\n if (scale === 0) {\n return roundHalfEven(value / 10, 1) * 10\n }\n\n const MAX_DECIMALS_ALLOWED = 20\n if (scale > MAX_DECIMALS_ALLOWED) {\n throw new Error(`Cannot handle more than ${MAX_DECIMALS_ALLOWED} decimals`)\n }\n\n // convert to string; remove trailing 0s\n const isExponentialForm = value.toString().includes('e') || value.toString().includes('E')\n const strNum = (isExponentialForm ? value.toFixed(MAX_DECIMALS_ALLOWED).toString() : value.toString()).replace(/0+$/, '')\n const decimalIndex = strNum.indexOf('.')\n if (decimalIndex < 0) {\n // no fractional part\n return value\n }\n let intPart: string = strNum.slice(0, decimalIndex)\n if (intPart.length == 0) {\n intPart = '0'\n }\n let fractPart = strNum.slice(decimalIndex + 1) // extract fractional part\n if (fractPart.length < scale) {\n return value\n }\n const followingDig = parseInt(fractPart[scale]!, 10)\n if (followingDig < 5) {\n // rounding not required\n const newFractPart = fractPart.slice(0, scale)\n return parseFloat(`${intPart}.${newFractPart}`)\n }\n if (followingDig === 5) {\n const newFractPart = fractPart.slice(0, scale + 1)\n if (parseInt(fractPart.slice(scale + 1), 10) > 0) {\n fractPart = `${newFractPart}9`\n } else {\n fractPart = newFractPart\n }\n }\n\n let nextDig = parseInt(fractPart[fractPart.length - 1]!, 10)\n let carriedOver = 0\n for (let ptr = fractPart.length - 1; ptr >= scale; ptr--) {\n let dig = parseInt(fractPart[ptr - 1]!, 10) + carriedOver\n if (nextDig > 5 || (nextDig == 5 && !isEven(dig))) {\n ++dig\n }\n if (dig > 9) {\n dig -= 10\n carriedOver = 1\n } else {\n carriedOver = 0\n }\n nextDig = dig\n }\n\n let newFractPart = ''\n for (let ptr = scale - 2; ptr >= 0; ptr--) {\n let d = parseInt(fractPart[ptr]!, 10) + carriedOver\n if (d > 9) {\n d -= 10\n carriedOver = 1\n } else {\n carriedOver = 0\n }\n newFractPart = `${d}${newFractPart}`\n }\n\n const resolvedIntPart = parseInt(intPart, 10) + carriedOver\n return parseFloat(`${resolvedIntPart}.${newFractPart}${nextDig}`)\n}\n\nexport const random = (min: number, max: number): number => {\n return Math.random() * (max - min) + min\n}\n\nexport const greatestCommonFactor = (first: number, second: number): number => {\n return second === 0 ? first : greatestCommonFactor(second, first % second)\n}\n\nexport const sum = (...numbers: Array<number>): number => {\n return sumAll(numbers)\n}\n\nexport const sumAll = (numbers: Array<number>): number => {\n return numbers.reduce((first, second) => first + second, 0)\n}\n\nexport const subtract = (...numbers: Array<number>): number => {\n return subtractAll(numbers)\n}\n\nexport const subtractAll = (numbers: Array<number>): number => {\n if (numbers.length === 0) {\n return 0\n }\n\n return numbers.slice(1).reduce((result, current) => result - current, numbers[0]!)\n}\n"],"mappings":"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","names":["RoundingMode","newFractPart"]}
|
package/dist/mime-type.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { Result } from '@bessemer/cornerstone/result';
|
|
|
4
4
|
import { ErrorEvent } from '@bessemer/cornerstone/error/error-event';
|
|
5
5
|
export declare const Namespace: import("@bessemer/cornerstone/resource-key").ResourceNamespace<"mime-type">;
|
|
6
6
|
export type MimeLiteral = NominalType<string, typeof Namespace>;
|
|
7
|
-
export declare const parseString: (
|
|
7
|
+
export declare const parseString: (initialValue: string) => Result<MimeLiteral, ErrorEvent>;
|
|
8
8
|
export declare const from: (value: string) => MimeLiteral;
|
|
9
9
|
export declare const Schema: Zod.ZodPipe<Zod.ZodString, Zod.ZodTransform<MimeLiteral, string>>;
|
|
10
10
|
export declare const Jpeg: MimeLiteral;
|
|
@@ -26,7 +26,7 @@ export declare const AudioTypes: MimeLiteral[];
|
|
|
26
26
|
export declare const Pdf: MimeLiteral;
|
|
27
27
|
export declare const Json: MimeLiteral;
|
|
28
28
|
export declare const Csv: MimeLiteral;
|
|
29
|
-
export declare const
|
|
29
|
+
export declare const Text: MimeLiteral;
|
|
30
30
|
export declare const Html: MimeLiteral;
|
|
31
31
|
export declare const Xml: MimeLiteral;
|
|
32
32
|
export declare const DocumentTypes: MimeLiteral[];
|
|
@@ -41,6 +41,7 @@ export declare const Tar: MimeLiteral;
|
|
|
41
41
|
export declare const Brotli: MimeLiteral;
|
|
42
42
|
export declare const CompressionTypes: MimeLiteral[];
|
|
43
43
|
export declare const FormData: MimeLiteral;
|
|
44
|
+
export declare const FormUrl: MimeLiteral;
|
|
44
45
|
export declare const Javascript: MimeLiteral;
|
|
45
|
-
export declare const
|
|
46
|
+
export declare const Binary: MimeLiteral;
|
|
46
47
|
//# sourceMappingURL=mime-type.d.ts.map
|
package/dist/mime-type.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mime-type.d.ts","sourceRoot":"","sources":["../src/mime-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAW,MAAM,EAAW,MAAM,8BAA8B,CAAA;AAEvE,OAAO,EAAE,UAAU,EAA8B,MAAM,yCAAyC,CAAA;AAGhG,eAAO,MAAM,SAAS,6EAA+B,CAAA;AACrD,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,SAAS,CAAC,CAAA;AAE/D,eAAO,MAAM,WAAW,GAAI,
|
|
1
|
+
{"version":3,"file":"mime-type.d.ts","sourceRoot":"","sources":["../src/mime-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAW,MAAM,EAAW,MAAM,8BAA8B,CAAA;AAEvE,OAAO,EAAE,UAAU,EAA8B,MAAM,yCAAyC,CAAA;AAGhG,eAAO,MAAM,SAAS,6EAA+B,CAAA;AACrD,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,SAAS,CAAC,CAAA;AAE/D,eAAO,MAAM,WAAW,GAAI,cAAc,MAAM,KAAG,MAAM,CAAC,WAAW,EAAE,UAAU,CAQhF,CAAA;AAED,eAAO,MAAM,IAAI,GAAI,OAAO,MAAM,KAAG,WAEpC,CAAA;AAED,eAAO,MAAM,MAAM,mEAIjB,CAAA;AAGF,eAAO,MAAM,IAAI,EAAmB,WAAW,CAAA;AAC/C,eAAO,MAAM,GAAG,EAAkB,WAAW,CAAA;AAC7C,eAAO,MAAM,GAAG,EAAkB,WAAW,CAAA;AAC7C,eAAO,MAAM,IAAI,EAAmB,WAAW,CAAA;AAC/C,eAAO,MAAM,GAAG,EAAsB,WAAW,CAAA;AACjD,eAAO,MAAM,GAAG,EAAqB,WAAW,CAAA;AAChD,eAAO,MAAM,IAAI,EAAmB,WAAW,CAAA;AAC/C,eAAO,MAAM,UAAU,eAAyC,CAAA;AAGhE,eAAO,MAAM,GAAG,EAAkB,WAAW,CAAA;AAC7C,eAAO,MAAM,IAAI,EAAmB,WAAW,CAAA;AAC/C,eAAO,MAAM,QAAQ,EAAkB,WAAW,CAAA;AAClD,eAAO,MAAM,UAAU,eAAwB,CAAA;AAG/C,eAAO,MAAM,GAAG,EAAmB,WAAW,CAAA;AAC9C,eAAO,MAAM,QAAQ,EAAkB,WAAW,CAAA;AAClD,eAAO,MAAM,GAAG,EAAkB,WAAW,CAAA;AAC7C,eAAO,MAAM,UAAU,eAAuB,CAAA;AAG9C,eAAO,MAAM,GAAG,EAAwB,WAAW,CAAA;AACnD,eAAO,MAAM,IAAI,EAAyB,WAAW,CAAA;AACrD,eAAO,MAAM,GAAG,EAAiB,WAAW,CAAA;AAC5C,eAAO,MAAM,IAAI,EAAmB,WAAW,CAAA;AAC/C,eAAO,MAAM,IAAI,EAAkB,WAAW,CAAA;AAC9C,eAAO,MAAM,GAAG,EAAwB,WAAW,CAAA;AACnD,eAAO,MAAM,aAAa,eAAoC,CAAA;AAG9D,eAAO,MAAM,IAAI,EAAkB,WAAW,CAAA;AAC9C,eAAO,MAAM,KAAK,EAAmB,WAAW,CAAA;AAChD,eAAO,MAAM,GAAG,EAAiB,WAAW,CAAA;AAC5C,eAAO,MAAM,GAAG,EAAiB,WAAW,CAAA;AAC5C,eAAO,MAAM,SAAS,eAA0B,CAAA;AAGhD,eAAO,MAAM,GAAG,EAAwB,WAAW,CAAA;AACnD,eAAO,MAAM,IAAI,EAAyB,WAAW,CAAA;AACrD,eAAO,MAAM,GAAG,EAA0B,WAAW,CAAA;AACrD,eAAO,MAAM,MAAM,EAA6B,WAAW,CAAA;AAC3D,eAAO,MAAM,gBAAgB,eAA2B,CAAA;AAGxD,eAAO,MAAM,QAAQ,EAA4B,WAAW,CAAA;AAC5D,eAAO,MAAM,OAAO,EAA0C,WAAW,CAAA;AACzE,eAAO,MAAM,UAAU,EAA+B,WAAW,CAAA;AACjE,eAAO,MAAM,MAAM,EAAiC,WAAW,CAAA"}
|
package/dist/mime-type.js
CHANGED
|
@@ -5,7 +5,8 @@ import { createNamespace } from "@bessemer/cornerstone/resource-key";
|
|
|
5
5
|
import { invalidValue, unpackResult } from "@bessemer/cornerstone/error/error-event";
|
|
6
6
|
import { structuredTransform } from "@bessemer/cornerstone/zod-util";
|
|
7
7
|
var Namespace = createNamespace("mime-type");
|
|
8
|
-
var parseString = (
|
|
8
|
+
var parseString = (initialValue) => {
|
|
9
|
+
const value = initialValue.trim().toLowerCase();
|
|
9
10
|
if (!/^[\w-]+\/[\w.+-]+$/.test(value)) {
|
|
10
11
|
return failure(invalidValue(value, { namespace: Namespace, message: `Invalid MIME type format.` }));
|
|
11
12
|
}
|
|
@@ -38,10 +39,10 @@ var AudioTypes = [Mp3, OggAudio, Wav];
|
|
|
38
39
|
var Pdf = "application/pdf";
|
|
39
40
|
var Json = "application/json";
|
|
40
41
|
var Csv = "text/csv";
|
|
41
|
-
var
|
|
42
|
+
var Text = "text/plain";
|
|
42
43
|
var Html = "text/html";
|
|
43
44
|
var Xml = "application/xml";
|
|
44
|
-
var DocumentTypes = [Pdf, Json, Csv,
|
|
45
|
+
var DocumentTypes = [Pdf, Json, Csv, Text, Html, Xml];
|
|
45
46
|
var Woff = "font/woff";
|
|
46
47
|
var Woff2 = "font/woff2";
|
|
47
48
|
var Ttf = "font/ttf";
|
|
@@ -53,17 +54,20 @@ var Tar = "application/x-tar";
|
|
|
53
54
|
var Brotli = "application/x-brotli";
|
|
54
55
|
var CompressionTypes = [Zip, Gzip, Tar, Brotli];
|
|
55
56
|
var FormData = "multipart/form-data";
|
|
57
|
+
var FormUrl = "application/x-www-form-urlencoded";
|
|
56
58
|
var Javascript = "application/javascript";
|
|
57
|
-
var
|
|
59
|
+
var Binary = "application/octet-stream";
|
|
58
60
|
export {
|
|
59
61
|
AudioTypes,
|
|
60
62
|
Avif,
|
|
63
|
+
Binary,
|
|
61
64
|
Brotli,
|
|
62
65
|
CompressionTypes,
|
|
63
66
|
Csv,
|
|
64
67
|
DocumentTypes,
|
|
65
68
|
FontTypes,
|
|
66
69
|
FormData,
|
|
70
|
+
FormUrl,
|
|
67
71
|
Gif,
|
|
68
72
|
Gzip,
|
|
69
73
|
Html,
|
|
@@ -75,16 +79,15 @@ export {
|
|
|
75
79
|
Mp3,
|
|
76
80
|
Mp4,
|
|
77
81
|
Namespace,
|
|
78
|
-
OctetStream,
|
|
79
82
|
OggAudio,
|
|
80
83
|
OggVideo,
|
|
81
84
|
Otf,
|
|
82
85
|
Pdf,
|
|
83
|
-
PlainText,
|
|
84
86
|
Png,
|
|
85
87
|
Schema,
|
|
86
88
|
Svg,
|
|
87
89
|
Tar,
|
|
90
|
+
Text,
|
|
88
91
|
Ttf,
|
|
89
92
|
VideoTypes,
|
|
90
93
|
Wav,
|
package/dist/mime-type.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/mime-type.ts"],"sourcesContent":["import { NominalType } from '@bessemer/cornerstone/types'\nimport Zod from 'zod'\nimport { failure, Result, success } from '@bessemer/cornerstone/result'\nimport { createNamespace } from '@bessemer/cornerstone/resource-key'\nimport { ErrorEvent, invalidValue, unpackResult } from '@bessemer/cornerstone/error/error-event'\nimport { structuredTransform } from '@bessemer/cornerstone/zod-util'\n\nexport const Namespace = createNamespace('mime-type')\nexport type MimeLiteral = NominalType<string, typeof Namespace>\n\nexport const parseString = (
|
|
1
|
+
{"version":3,"sources":["../src/mime-type.ts"],"sourcesContent":["import { NominalType } from '@bessemer/cornerstone/types'\nimport Zod from 'zod'\nimport { failure, Result, success } from '@bessemer/cornerstone/result'\nimport { createNamespace } from '@bessemer/cornerstone/resource-key'\nimport { ErrorEvent, invalidValue, unpackResult } from '@bessemer/cornerstone/error/error-event'\nimport { structuredTransform } from '@bessemer/cornerstone/zod-util'\n\nexport const Namespace = createNamespace('mime-type')\nexport type MimeLiteral = NominalType<string, typeof Namespace>\n\nexport const parseString = (initialValue: string): Result<MimeLiteral, ErrorEvent> => {\n const value = initialValue.trim().toLowerCase()\n\n if (!/^[\\w-]+\\/[\\w.+-]+$/.test(value)) {\n return failure(invalidValue(value, { namespace: Namespace, message: `Invalid MIME type format.` }))\n }\n\n return success(value as MimeLiteral)\n}\n\nexport const from = (value: string): MimeLiteral => {\n return unpackResult(parseString(value))\n}\n\nexport const Schema = structuredTransform(Zod.string(), parseString).meta({\n type: 'string',\n format: Namespace,\n pattern: '^[\\\\w-]+\\\\/[\\\\w.+-]+$',\n})\n\n// Images\nexport const Jpeg = 'image/jpeg' as MimeLiteral\nexport const Png = 'image/png' as MimeLiteral\nexport const Gif = 'image/gif' as MimeLiteral\nexport const Webp = 'image/webp' as MimeLiteral\nexport const Svg = 'image/svg+xml' as MimeLiteral\nexport const Ico = 'image/x-icon' as MimeLiteral\nexport const Avif = 'image/avif' as MimeLiteral\nexport const ImageTypes = [Jpeg, Png, Gif, Webp, Svg, Ico, Avif]\n\n// Video\nexport const Mp4 = 'video/mp4' as MimeLiteral\nexport const Webm = 'video/webm' as MimeLiteral\nexport const OggVideo = 'video/ogg' as MimeLiteral\nexport const VideoTypes = [Mp4, Webm, OggVideo]\n\n// Audio\nexport const Mp3 = 'audio/mpeg' as MimeLiteral\nexport const OggAudio = 'audio/ogg' as MimeLiteral\nexport const Wav = 'audio/wav' as MimeLiteral\nexport const AudioTypes = [Mp3, OggAudio, Wav]\n\n// Documents\nexport const Pdf = 'application/pdf' as MimeLiteral\nexport const Json = 'application/json' as MimeLiteral\nexport const Csv = 'text/csv' as MimeLiteral\nexport const Text = 'text/plain' as MimeLiteral\nexport const Html = 'text/html' as MimeLiteral\nexport const Xml = 'application/xml' as MimeLiteral\nexport const DocumentTypes = [Pdf, Json, Csv, Text, Html, Xml]\n\n// Fonts\nexport const Woff = 'font/woff' as MimeLiteral\nexport const Woff2 = 'font/woff2' as MimeLiteral\nexport const Ttf = 'font/ttf' as MimeLiteral\nexport const Otf = 'font/otf' as MimeLiteral\nexport const FontTypes = [Woff, Woff2, Ttf, Otf]\n\n// Compression\nexport const Zip = 'application/zip' as MimeLiteral\nexport const Gzip = 'application/gzip' as MimeLiteral\nexport const Tar = 'application/x-tar' as MimeLiteral\nexport const Brotli = 'application/x-brotli' as MimeLiteral\nexport const CompressionTypes = [Zip, Gzip, Tar, Brotli]\n\n// Misc\nexport const FormData = 'multipart/form-data' as MimeLiteral\nexport const FormUrl = 'application/x-www-form-urlencoded' as MimeLiteral\nexport const Javascript = 'application/javascript' as MimeLiteral\nexport const Binary = 'application/octet-stream' as MimeLiteral\n"],"mappings":";AACA,OAAO,SAAS;AAChB,SAAS,SAAiB,eAAe;AACzC,SAAS,uBAAuB;AAChC,SAAqB,cAAc,oBAAoB;AACvD,SAAS,2BAA2B;AAE7B,IAAM,YAAY,gBAAgB,WAAW;AAG7C,IAAM,cAAc,CAAC,iBAA0D;AACpF,QAAM,QAAQ,aAAa,KAAK,EAAE,YAAY;AAE9C,MAAI,CAAC,qBAAqB,KAAK,KAAK,GAAG;AACrC,WAAO,QAAQ,aAAa,OAAO,EAAE,WAAW,WAAW,SAAS,4BAA4B,CAAC,CAAC;AAAA,EACpG;AAEA,SAAO,QAAQ,KAAoB;AACrC;AAEO,IAAM,OAAO,CAAC,UAA+B;AAClD,SAAO,aAAa,YAAY,KAAK,CAAC;AACxC;AAEO,IAAM,SAAS,oBAAoB,IAAI,OAAO,GAAG,WAAW,EAAE,KAAK;AAAA,EACxE,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,SAAS;AACX,CAAC;AAGM,IAAM,OAAO;AACb,IAAM,MAAM;AACZ,IAAM,MAAM;AACZ,IAAM,OAAO;AACb,IAAM,MAAM;AACZ,IAAM,MAAM;AACZ,IAAM,OAAO;AACb,IAAM,aAAa,CAAC,MAAM,KAAK,KAAK,MAAM,KAAK,KAAK,IAAI;AAGxD,IAAM,MAAM;AACZ,IAAM,OAAO;AACb,IAAM,WAAW;AACjB,IAAM,aAAa,CAAC,KAAK,MAAM,QAAQ;AAGvC,IAAM,MAAM;AACZ,IAAM,WAAW;AACjB,IAAM,MAAM;AACZ,IAAM,aAAa,CAAC,KAAK,UAAU,GAAG;AAGtC,IAAM,MAAM;AACZ,IAAM,OAAO;AACb,IAAM,MAAM;AACZ,IAAM,OAAO;AACb,IAAM,OAAO;AACb,IAAM,MAAM;AACZ,IAAM,gBAAgB,CAAC,KAAK,MAAM,KAAK,MAAM,MAAM,GAAG;AAGtD,IAAM,OAAO;AACb,IAAM,QAAQ;AACd,IAAM,MAAM;AACZ,IAAM,MAAM;AACZ,IAAM,YAAY,CAAC,MAAM,OAAO,KAAK,GAAG;AAGxC,IAAM,MAAM;AACZ,IAAM,OAAO;AACb,IAAM,MAAM;AACZ,IAAM,SAAS;AACf,IAAM,mBAAmB,CAAC,KAAK,MAAM,KAAK,MAAM;AAGhD,IAAM,WAAW;AACjB,IAAM,UAAU;AAChB,IAAM,aAAa;AACnB,IAAM,SAAS;","names":[]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Result } from '@bessemer/cornerstone/result';
|
|
2
|
+
import { ErrorEvent } from '@bessemer/cornerstone/error/error-event';
|
|
3
|
+
import { Dictionary, NominalType } from '@bessemer/cornerstone/types';
|
|
4
|
+
import { MimeLiteral } from '@bessemer/cornerstone/mime-type';
|
|
5
|
+
export declare const Namespace: import("@bessemer/cornerstone/resource-key").ResourceNamespace<"content-type">;
|
|
6
|
+
export type ContentType = {
|
|
7
|
+
mimeType: MimeLiteral;
|
|
8
|
+
parameters: Dictionary<string>;
|
|
9
|
+
};
|
|
10
|
+
export type ContentTypeLiteral = NominalType<string, typeof Namespace>;
|
|
11
|
+
export type ContentTypeLike = ContentType | ContentTypeLiteral | MimeLiteral;
|
|
12
|
+
export declare function from(value: ContentTypeLike | string): ContentType;
|
|
13
|
+
export declare function from(value: ContentTypeLike | string | null): ContentType | null;
|
|
14
|
+
export declare function from(value: ContentTypeLike | string | undefined): ContentType | undefined;
|
|
15
|
+
export declare function from(value: ContentTypeLike | string | null | undefined): ContentType | null | undefined;
|
|
16
|
+
export declare function toLiteral(likeValue: ContentTypeLike): ContentTypeLiteral;
|
|
17
|
+
export declare function toLiteral(likeValue: ContentTypeLike | null): ContentTypeLiteral | null;
|
|
18
|
+
export declare function toLiteral(likeValue: ContentTypeLike | undefined): ContentTypeLiteral | undefined;
|
|
19
|
+
export declare function toLiteral(likeValue: ContentTypeLike | null | undefined): ContentTypeLiteral | null | undefined;
|
|
20
|
+
export declare const parseString: (value: string) => Result<ContentType, ErrorEvent>;
|
|
21
|
+
//# sourceMappingURL=content-type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-type.d.ts","sourceRoot":"","sources":["../../src/net/content-type.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAA;AAEpE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAErE,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAI7D,eAAO,MAAM,SAAS,gFAAkC,CAAA;AACxD,MAAM,MAAM,WAAW,GAAG;IAAE,QAAQ,EAAE,WAAW,CAAC;IAAC,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;CAAE,CAAA;AACnF,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,SAAS,CAAC,CAAA;AAEtE,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,kBAAkB,GAAG,WAAW,CAAA;AAE5E,wBAAgB,IAAI,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,GAAG,WAAW,CAAA;AAClE,wBAAgB,IAAI,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,GAAG,WAAW,GAAG,IAAI,CAAA;AAChF,wBAAgB,IAAI,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAA;AAC1F,wBAAgB,IAAI,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,GAAG,IAAI,GAAG,SAAS,CAAA;AAaxG,wBAAgB,SAAS,CAAC,SAAS,EAAE,eAAe,GAAG,kBAAkB,CAAA;AACzE,wBAAgB,SAAS,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI,GAAG,kBAAkB,GAAG,IAAI,CAAA;AACvF,wBAAgB,SAAS,CAAC,SAAS,EAAE,eAAe,GAAG,SAAS,GAAG,kBAAkB,GAAG,SAAS,CAAA;AACjG,wBAAgB,SAAS,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,GAAG,kBAAkB,GAAG,IAAI,GAAG,SAAS,CAAA;AA2B/G,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,MAAM,CAAC,WAAW,EAAE,UAAU,CAgGzE,CAAA"}
|