@bessemer/cornerstone 0.5.109 → 0.5.110
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 +2 -1
- package/dist/array.d.ts.map +1 -1
- package/dist/array.js +11 -0
- 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 +2 -0
- package/dist/generators.d.ts.map +1 -0
- package/dist/generators.js +14 -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 +2 -0
- package/dist/math.d.ts.map +1 -1
- package/dist/math.js +9 -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/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
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 @@
|
|
|
1
|
+
{"version":3,"file":"generators.d.ts","sourceRoot":"","sources":["../src/generators.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,GAAoB,CAAC,EAAE,UAAU,aAAa,CAAC,CAAC,CAAC,EAAE,OAAO,MAAM,8CAShF,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/generators.ts"],"sourcesContent":["export const take = async function* <T>(iterable: AsyncIterable<T>, count: number) {\n let i = 0\n\n for await (const item of iterable) {\n if (i++ >= count) {\n break\n }\n yield item\n }\n}\n"],"mappings":";AAAO,IAAM,OAAO,iBAAoB,UAA4B,OAAe;AACjF,MAAI,IAAI;AAER,mBAAiB,QAAQ,UAAU;AACjC,QAAI,OAAO,OAAO;AAChB;AAAA,IACF;AACA,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":"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
|
|
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
|
@@ -21,5 +21,7 @@ export declare const roundHalfEven: (value: number, scale: number) => number;
|
|
|
21
21
|
export declare const random: (min: number, max: number) => number;
|
|
22
22
|
export declare const greatestCommonFactor: (first: number, second: number) => number;
|
|
23
23
|
export declare const sum: (...numbers: Array<number>) => number;
|
|
24
|
+
export declare const sumAll: (numbers: Array<number>) => number;
|
|
24
25
|
export declare const subtract: (...numbers: Array<number>) => number;
|
|
26
|
+
export declare const subtractAll: (numbers: Array<number>) => number;
|
|
25
27
|
//# 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,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
|
@@ -112,9 +112,15 @@ var greatestCommonFactor = (first, second) => {
|
|
|
112
112
|
return second === 0 ? first : greatestCommonFactor(second, first % second);
|
|
113
113
|
};
|
|
114
114
|
var sum = (...numbers) => {
|
|
115
|
+
return sumAll(numbers);
|
|
116
|
+
};
|
|
117
|
+
var sumAll = (numbers) => {
|
|
115
118
|
return numbers.reduce((first, second) => first + second, 0);
|
|
116
119
|
};
|
|
117
120
|
var subtract = (...numbers) => {
|
|
121
|
+
return subtractAll(numbers);
|
|
122
|
+
};
|
|
123
|
+
var subtractAll = (numbers) => {
|
|
118
124
|
if (numbers.length === 0) {
|
|
119
125
|
return 0;
|
|
120
126
|
}
|
|
@@ -133,6 +139,8 @@ export {
|
|
|
133
139
|
roundNearest,
|
|
134
140
|
roundUp,
|
|
135
141
|
subtract,
|
|
136
|
-
|
|
142
|
+
subtractAll,
|
|
143
|
+
sum,
|
|
144
|
+
sumAll
|
|
137
145
|
};
|
|
138
146
|
//# 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":";AAAO,IAAM,WAAW,CAAC,UAAqC;AAC5D,MAAI,UAAU,QAAQ,UAAU,QAAW;AACzC,WAAO;AAAA,EACT;AAEA,SAAO,OAAO,UAAU,YAAY,CAAC,MAAM,KAAK;AAClD;AAEO,IAAM,SAAS,CAAC,MAAc,IAAI,MAAM;AAExC,IAAM,QAAQ,CAAC,MAAc,IAAI,MAAM;AAEvC,IAAK,eAAL,kBAAKA,kBAAL;AACL,EAAAA,cAAA,aAAU;AACV,EAAAA,cAAA,UAAO;AACP,EAAAA,cAAA,QAAK;AACL,EAAAA,cAAA,cAAW;AAJD,SAAAA;AAAA,GAAA;AAOL,IAAM,QAAQ,CAAC,OAAe,OAAe,eAA6B,4BAAiC;AAChH,UAAQ,cAAc;AAAA,IACpB,KAAK;AACH,aAAO,aAAa,OAAO,KAAK;AAAA,IAClC,KAAK;AACH,aAAO,UAAU,OAAO,KAAK;AAAA,IAC/B,KAAK;AACH,aAAO,QAAQ,OAAO,KAAK;AAAA,IAC7B,KAAK;AACH,aAAO,cAAc,OAAO,KAAK;AAAA,EACrC;AACF;AAEO,IAAM,eAAe,CAAC,OAAe,UAA0B;AACpE,QAAM,SAAS,KAAK,IAAI,IAAI,KAAK;AACjC,SAAO,KAAK,OAAO,QAAQ,OAAO,WAAW,MAAM,IAAI;AACzD;AAEO,IAAM,YAAY,CAAC,OAAe,UAAkB;AACzD,QAAM,SAAS,KAAK,IAAI,IAAI,KAAK;AACjC,SAAO,KAAK,OAAO,QAAQ,CAAC,OAAO,WAAW,MAAM,IAAI;AAC1D;AAEO,IAAM,UAAU,CAAC,OAAe,UAAkB;AACvD,QAAM,SAAS,KAAK,IAAI,IAAI,KAAK;AACjC,SAAO,KAAK,MAAM,QAAQ,CAAC,OAAO,WAAW,MAAM,IAAI;AACzD;AAQO,IAAM,gBAAgB,CAAC,OAAe,UAA0B;AACrE,MAAI,QAAQ,GAAG;AACb,WAAO,CAAC,cAAc,CAAC,OAAO,KAAK;AAAA,EACrC;AACA,MAAI,UAAU,GAAG;AACf,WAAO,cAAc,QAAQ,IAAI,CAAC,IAAI;AAAA,EACxC;AAEA,QAAM,uBAAuB;AAC7B,MAAI,QAAQ,sBAAsB;AAChC,UAAM,IAAI,MAAM,2BAA2B,oBAAoB,WAAW;AAAA,EAC5E;AAGA,QAAM,oBAAoB,MAAM,SAAS,EAAE,SAAS,GAAG,KAAK,MAAM,SAAS,EAAE,SAAS,GAAG;AACzF,QAAM,UAAU,oBAAoB,MAAM,QAAQ,oBAAoB,EAAE,SAAS,IAAI,MAAM,SAAS,GAAG,QAAQ,OAAO,EAAE;AACxH,QAAM,eAAe,OAAO,QAAQ,GAAG;AACvC,MAAI,eAAe,GAAG;AAEpB,WAAO;AAAA,EACT;AACA,MAAI,UAAkB,OAAO,MAAM,GAAG,YAAY;AAClD,MAAI,QAAQ,UAAU,GAAG;AACvB,cAAU;AAAA,EACZ;AACA,MAAI,YAAY,OAAO,MAAM,eAAe,CAAC;AAC7C,MAAI,UAAU,SAAS,OAAO;AAC5B,WAAO;AAAA,EACT;AACA,QAAM,eAAe,SAAS,UAAU,KAAK,GAAI,EAAE;AACnD,MAAI,eAAe,GAAG;AAEpB,UAAMC,gBAAe,UAAU,MAAM,GAAG,KAAK;AAC7C,WAAO,WAAW,GAAG,OAAO,IAAIA,aAAY,EAAE;AAAA,EAChD;AACA,MAAI,iBAAiB,GAAG;AACtB,UAAMA,gBAAe,UAAU,MAAM,GAAG,QAAQ,CAAC;AACjD,QAAI,SAAS,UAAU,MAAM,QAAQ,CAAC,GAAG,EAAE,IAAI,GAAG;AAChD,kBAAY,GAAGA,aAAY;AAAA,IAC7B,OAAO;AACL,kBAAYA;AAAA,IACd;AAAA,EACF;AAEA,MAAI,UAAU,SAAS,UAAU,UAAU,SAAS,CAAC,GAAI,EAAE;AAC3D,MAAI,cAAc;AAClB,WAAS,MAAM,UAAU,SAAS,GAAG,OAAO,OAAO,OAAO;AACxD,QAAI,MAAM,SAAS,UAAU,MAAM,CAAC,GAAI,EAAE,IAAI;AAC9C,QAAI,UAAU,KAAM,WAAW,KAAK,CAAC,OAAO,GAAG,GAAI;AACjD,QAAE;AAAA,IACJ;AACA,QAAI,MAAM,GAAG;AACX,aAAO;AACP,oBAAc;AAAA,IAChB,OAAO;AACL,oBAAc;AAAA,IAChB;AACA,cAAU;AAAA,EACZ;AAEA,MAAI,eAAe;AACnB,WAAS,MAAM,QAAQ,GAAG,OAAO,GAAG,OAAO;AACzC,QAAI,IAAI,SAAS,UAAU,GAAG,GAAI,EAAE,IAAI;AACxC,QAAI,IAAI,GAAG;AACT,WAAK;AACL,oBAAc;AAAA,IAChB,OAAO;AACL,oBAAc;AAAA,IAChB;AACA,mBAAe,GAAG,CAAC,GAAG,YAAY;AAAA,EACpC;AAEA,QAAM,kBAAkB,SAAS,SAAS,EAAE,IAAI;AAChD,SAAO,WAAW,GAAG,eAAe,IAAI,YAAY,GAAG,OAAO,EAAE;AAClE;AAEO,IAAM,SAAS,CAAC,KAAa,QAAwB;AAC1D,SAAO,KAAK,OAAO,KAAK,MAAM,OAAO;AACvC;AAEO,IAAM,uBAAuB,CAAC,OAAe,WAA2B;AAC7E,SAAO,WAAW,IAAI,QAAQ,qBAAqB,QAAQ,QAAQ,MAAM;AAC3E;AAEO,IAAM,MAAM,IAAI,YAAmC;AACxD,SAAO,QAAQ,OAAO,CAAC,OAAO,WAAW,QAAQ,QAAQ,CAAC;AAC5D;AAEO,IAAM,WAAW,IAAI,YAAmC;AAC7D,MAAI,QAAQ,WAAW,GAAG;AACxB,WAAO;AAAA,EACT;AAEA,SAAO,QAAQ,MAAM,CAAC,EAAE,OAAO,CAAC,QAAQ,YAAY,SAAS,SAAS,QAAQ,CAAC,CAAE;AACnF;","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 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"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
// src/net/content-type.ts
|
|
2
|
+
import * as Results from "@bessemer/cornerstone/result";
|
|
3
|
+
import * as ErrorEvents from "@bessemer/cornerstone/error/error-event";
|
|
4
|
+
import { createNamespace } from "@bessemer/cornerstone/resource-key";
|
|
5
|
+
import * as MimeTypes from "@bessemer/cornerstone/mime-type";
|
|
6
|
+
import * as Strings from "@bessemer/cornerstone/string";
|
|
7
|
+
import * as Objects from "@bessemer/cornerstone/object";
|
|
8
|
+
var Namespace = createNamespace("content-type");
|
|
9
|
+
function from(value) {
|
|
10
|
+
if (Objects.isNil(value)) {
|
|
11
|
+
return value;
|
|
12
|
+
}
|
|
13
|
+
if (Strings.isString(value)) {
|
|
14
|
+
return ErrorEvents.unpackResult(parseString2(value));
|
|
15
|
+
}
|
|
16
|
+
return value;
|
|
17
|
+
}
|
|
18
|
+
function toLiteral(likeValue) {
|
|
19
|
+
if (Objects.isNil(likeValue)) {
|
|
20
|
+
return likeValue;
|
|
21
|
+
}
|
|
22
|
+
const value = from(likeValue);
|
|
23
|
+
if (Objects.isEmpty(value.parameters)) {
|
|
24
|
+
return value.mimeType;
|
|
25
|
+
}
|
|
26
|
+
const params = Object.entries(value.parameters).map(([key, val]) => {
|
|
27
|
+
const needsQuoting = /[ ()<>@,;:\\/[\]?=]/.test(val) || Strings.isEmpty(val);
|
|
28
|
+
const quotedValue = needsQuoting ? `"${val}"` : val;
|
|
29
|
+
return `${key}=${quotedValue}`;
|
|
30
|
+
});
|
|
31
|
+
return `${value.mimeType};${params.join(";")}`;
|
|
32
|
+
}
|
|
33
|
+
var TokenKeyRegex = /^[!#$%&'*+\-.0-9A-Z^_`a-z|~]+$/;
|
|
34
|
+
var parseString2 = (value) => {
|
|
35
|
+
const tokens = value.split(";");
|
|
36
|
+
const mimeTypeString = tokens[0];
|
|
37
|
+
const mimeType = MimeTypes.parseString(mimeTypeString);
|
|
38
|
+
if (Results.isFailure(mimeType)) {
|
|
39
|
+
return mimeType;
|
|
40
|
+
}
|
|
41
|
+
if (tokens.length === 1) {
|
|
42
|
+
return Results.success({ mimeType, parameters: {} });
|
|
43
|
+
}
|
|
44
|
+
const parameters = {};
|
|
45
|
+
for (const token of tokens.slice(1)) {
|
|
46
|
+
const keyPart = Strings.splitFirst(token, "=");
|
|
47
|
+
if (Objects.isNil(keyPart.selection)) {
|
|
48
|
+
return Results.failure(
|
|
49
|
+
ErrorEvents.invalidValue(value, {
|
|
50
|
+
namespace: Namespace,
|
|
51
|
+
message: `[${Namespace}]: Invalid Content-Type parameter format: [${token}]. Parameters must be in key=value format.`
|
|
52
|
+
})
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
const tokenKey = keyPart.selection.trim();
|
|
56
|
+
if (!TokenKeyRegex.test(tokenKey)) {
|
|
57
|
+
return Results.failure(
|
|
58
|
+
ErrorEvents.invalidValue(value, {
|
|
59
|
+
namespace: Namespace,
|
|
60
|
+
message: `[${Namespace}]: Invalid Content-Type parameter format: [${token}]. Parameters must be in key=value format.`
|
|
61
|
+
})
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
let tokenValue = keyPart.rest.trim();
|
|
65
|
+
if (Strings.isEmpty(tokenValue)) {
|
|
66
|
+
return Results.failure(
|
|
67
|
+
ErrorEvents.invalidValue(value, {
|
|
68
|
+
namespace: Namespace,
|
|
69
|
+
message: `[${Namespace}]: Invalid Content-Type parameter value for [${tokenKey}]: value cant be blank.`
|
|
70
|
+
})
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
if (tokenValue.startsWith('"')) {
|
|
74
|
+
if (!tokenValue.endsWith('"')) {
|
|
75
|
+
return Results.failure(
|
|
76
|
+
ErrorEvents.invalidValue(value, {
|
|
77
|
+
namespace: Namespace,
|
|
78
|
+
message: `[${Namespace}]: Invalid Content-Type parameter value for [${tokenKey}]: quoted value must end with a quote.`
|
|
79
|
+
})
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
const innerValue = tokenValue.slice(1, -1);
|
|
83
|
+
for (let i = 0; i < innerValue.length; i++) {
|
|
84
|
+
if (innerValue[i] === '"' && (i === 0 || innerValue[i - 1] !== "\\")) {
|
|
85
|
+
return Results.failure(
|
|
86
|
+
ErrorEvents.invalidValue(value, {
|
|
87
|
+
namespace: Namespace,
|
|
88
|
+
message: `[${Namespace}]: Invalid Content-Type parameter value for [${tokenKey}]: unescaped quote found inside quoted value.`
|
|
89
|
+
})
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
tokenValue = Strings.removeStart(Strings.removeEnd(tokenValue, '"'), '"').replaceAll('\\"', '"');
|
|
94
|
+
} else if (tokenValue.includes('"')) {
|
|
95
|
+
return Results.failure(
|
|
96
|
+
ErrorEvents.invalidValue(value, {
|
|
97
|
+
namespace: Namespace,
|
|
98
|
+
message: `[${Namespace}]: Invalid Content-Type parameter value for [${tokenKey}]: unquoted value cannot contain quotes.`
|
|
99
|
+
})
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
if (Objects.isPresent(parameters[tokenKey])) {
|
|
103
|
+
return Results.failure(
|
|
104
|
+
ErrorEvents.invalidValue(value, {
|
|
105
|
+
namespace: Namespace,
|
|
106
|
+
message: `[${Namespace}]: Invalid Content-Type parameter value for [${tokenKey}]: duplicate parameter key found.`
|
|
107
|
+
})
|
|
108
|
+
);
|
|
109
|
+
}
|
|
110
|
+
parameters[tokenKey] = tokenValue;
|
|
111
|
+
}
|
|
112
|
+
return Results.success({ mimeType, parameters });
|
|
113
|
+
};
|
|
114
|
+
export {
|
|
115
|
+
Namespace,
|
|
116
|
+
from,
|
|
117
|
+
parseString2 as parseString,
|
|
118
|
+
toLiteral
|
|
119
|
+
};
|
|
120
|
+
//# sourceMappingURL=content-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/net/content-type.ts"],"sourcesContent":["import * as Results from '@bessemer/cornerstone/result'\nimport { Result } from '@bessemer/cornerstone/result'\nimport * as ErrorEvents from '@bessemer/cornerstone/error/error-event'\nimport { ErrorEvent } from '@bessemer/cornerstone/error/error-event'\nimport { createNamespace } from '@bessemer/cornerstone/resource-key'\nimport { Dictionary, NominalType } from '@bessemer/cornerstone/types'\nimport * as MimeTypes from '@bessemer/cornerstone/mime-type'\nimport { MimeLiteral } from '@bessemer/cornerstone/mime-type'\nimport * as Strings from '@bessemer/cornerstone/string'\nimport * as Objects from '@bessemer/cornerstone/object'\n\nexport const Namespace = createNamespace('content-type')\nexport type ContentType = { mimeType: MimeLiteral; parameters: Dictionary<string> }\nexport type ContentTypeLiteral = NominalType<string, typeof Namespace>\n\nexport type ContentTypeLike = ContentType | ContentTypeLiteral | MimeLiteral\n\nexport function from(value: ContentTypeLike | string): ContentType\nexport function from(value: ContentTypeLike | string | null): ContentType | null\nexport function from(value: ContentTypeLike | string | undefined): ContentType | undefined\nexport function from(value: ContentTypeLike | string | null | undefined): ContentType | null | undefined\nexport function from(value: ContentTypeLike | string | null | undefined): ContentType | null | undefined {\n if (Objects.isNil(value)) {\n return value\n }\n\n if (Strings.isString(value)) {\n return ErrorEvents.unpackResult(parseString(value))\n }\n\n return value\n}\n\nexport function toLiteral(likeValue: ContentTypeLike): ContentTypeLiteral\nexport function toLiteral(likeValue: ContentTypeLike | null): ContentTypeLiteral | null\nexport function toLiteral(likeValue: ContentTypeLike | undefined): ContentTypeLiteral | undefined\nexport function toLiteral(likeValue: ContentTypeLike | null | undefined): ContentTypeLiteral | null | undefined\nexport function toLiteral(likeValue: ContentTypeLike | null | undefined): ContentTypeLiteral | null | undefined {\n if (Objects.isNil(likeValue)) {\n return likeValue\n }\n\n const value = from(likeValue)\n\n if (Objects.isEmpty(value.parameters)) {\n return value.mimeType as ContentTypeLiteral\n }\n\n const params = Object.entries(value.parameters).map(([key, val]) => {\n // Quote the value if it contains special characters or spaces\n const needsQuoting = /[ ()<>@,;:\\\\/[\\]?=]/.test(val) || Strings.isEmpty(val)\n const quotedValue = needsQuoting ? `\"${val}\"` : val\n return `${key}=${quotedValue}`\n })\n\n return `${value.mimeType};${params.join(';')}` as ContentTypeLiteral\n}\n\n// RFC 2045 token: 1*<any (US-ASCII) CHAR except SPACE, CTLs, or tspecials>\n// tspecials: ()<>@,;:\\\"/[]?=\nconst TokenKeyRegex = /^[!#$%&'*+\\-.0-9A-Z^_`a-z|~]+$/\n\n// JOHN some of the error messages here should be looked at\nexport const parseString = (value: string): Result<ContentType, ErrorEvent> => {\n const tokens = value.split(';')\n const mimeTypeString = tokens[0]!\n const mimeType = MimeTypes.parseString(mimeTypeString)\n\n if (Results.isFailure(mimeType)) {\n return mimeType\n }\n\n if (tokens.length === 1) {\n return Results.success({ mimeType, parameters: {} })\n }\n\n const parameters: Dictionary<string> = {}\n\n for (const token of tokens.slice(1)) {\n const keyPart = Strings.splitFirst(token, '=')\n\n if (Objects.isNil(keyPart.selection)) {\n return Results.failure(\n ErrorEvents.invalidValue(value, {\n namespace: Namespace,\n message: `[${Namespace}]: Invalid Content-Type parameter format: [${token}]. Parameters must be in key=value format.`,\n })\n )\n }\n\n const tokenKey = keyPart.selection.trim()\n if (!TokenKeyRegex.test(tokenKey)) {\n return Results.failure(\n ErrorEvents.invalidValue(value, {\n namespace: Namespace,\n message: `[${Namespace}]: Invalid Content-Type parameter format: [${token}]. Parameters must be in key=value format.`,\n })\n )\n }\n\n let tokenValue = keyPart.rest.trim()\n if (Strings.isEmpty(tokenValue)) {\n return Results.failure(\n ErrorEvents.invalidValue(value, {\n namespace: Namespace,\n message: `[${Namespace}]: Invalid Content-Type parameter value for [${tokenKey}]: value cant be blank.`,\n })\n )\n }\n\n // Validate token value\n if (tokenValue.startsWith('\"')) {\n // Quoted value: must end with quote and have properly escaped internal quotes\n if (!tokenValue.endsWith('\"')) {\n return Results.failure(\n ErrorEvents.invalidValue(value, {\n namespace: Namespace,\n message: `[${Namespace}]: Invalid Content-Type parameter value for [${tokenKey}]: quoted value must end with a quote.`,\n })\n )\n }\n\n // Check for unescaped quotes inside\n const innerValue = tokenValue.slice(1, -1)\n for (let i = 0; i < innerValue.length; i++) {\n if (innerValue[i] === '\"' && (i === 0 || innerValue[i - 1] !== '\\\\')) {\n return Results.failure(\n ErrorEvents.invalidValue(value, {\n namespace: Namespace,\n message: `[${Namespace}]: Invalid Content-Type parameter value for [${tokenKey}]: unescaped quote found inside quoted value.`,\n })\n )\n }\n }\n\n tokenValue = Strings.removeStart(Strings.removeEnd(tokenValue, '\"'), '\"').replaceAll('\\\\\"', '\"')\n } else if (tokenValue.includes('\"')) {\n // Unquoted value: cannot contain quotes at all\n return Results.failure(\n ErrorEvents.invalidValue(value, {\n namespace: Namespace,\n message: `[${Namespace}]: Invalid Content-Type parameter value for [${tokenKey}]: unquoted value cannot contain quotes.`,\n })\n )\n }\n\n if (Objects.isPresent(parameters[tokenKey])) {\n return Results.failure(\n ErrorEvents.invalidValue(value, {\n namespace: Namespace,\n message: `[${Namespace}]: Invalid Content-Type parameter value for [${tokenKey}]: duplicate parameter key found.`,\n })\n )\n }\n\n parameters[tokenKey] = tokenValue\n }\n\n return Results.success({ mimeType, parameters })\n}\n"],"mappings":"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","names":["parseString"]}
|