foxts 2.0.1 → 3.0.1
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/cjs/add-array-elements-to-set.js +0 -1
- package/dist/cjs/ahocorasick.js +0 -1
- package/dist/cjs/append-set-elements-to-array.js +0 -1
- package/dist/cjs/async-write-to-stream.js +0 -1
- package/dist/cjs/bitwise.js +0 -1
- package/dist/cjs/create-fixed-array.js +0 -1
- package/dist/cjs/detect-eol.js +0 -1
- package/dist/cjs/escape-html.js +0 -1
- package/dist/cjs/escape-string-regexp.js +0 -1
- package/dist/cjs/fast-string-array-join.js +0 -1
- package/dist/cjs/fifo.js +0 -1
- package/dist/cjs/fnv1a.js +0 -1
- package/dist/cjs/fnv1a52.js +0 -1
- package/dist/cjs/guard.js +0 -1
- package/dist/cjs/headers-to-object.js +1 -2
- package/dist/cjs/identity.js +0 -1
- package/dist/cjs/is-probably-ip.js +0 -1
- package/dist/cjs/merge-headers.d.ts +3 -3
- package/dist/cjs/merge-headers.js +1 -2
- package/dist/cjs/noop.js +0 -1
- package/dist/cjs/once.js +0 -1
- package/dist/cjs/pick-random.js +1 -2
- package/dist/cjs/random-int.js +0 -1
- package/dist/cjs/repool.js +0 -1
- package/dist/cjs/retrie.js +0 -1
- package/dist/cjs/serialized-memo.d.ts +5 -1
- package/dist/cjs/serialized-memo.js +1 -2
- package/dist/cjs/simple-string-hash.js +0 -1
- package/dist/cjs/tagged.js +0 -1
- package/dist/cjs/text-line-stream.d.ts +0 -2
- package/dist/cjs/text-line-stream.js +1 -2
- package/dist/cjs/wait.js +0 -1
- package/dist/es/add-array-elements-to-set.mjs +0 -1
- package/dist/es/ahocorasick.mjs +0 -1
- package/dist/es/append-set-elements-to-array.mjs +0 -1
- package/dist/es/async-write-to-stream.mjs +0 -1
- package/dist/es/bitwise.mjs +0 -1
- package/dist/es/create-fixed-array.mjs +0 -1
- package/dist/es/detect-eol.mjs +0 -1
- package/dist/es/escape-html.mjs +0 -1
- package/dist/es/escape-string-regexp.mjs +0 -1
- package/dist/es/fast-string-array-join.mjs +0 -1
- package/dist/es/fifo.mjs +0 -1
- package/dist/es/fnv1a.mjs +0 -1
- package/dist/es/fnv1a52.mjs +0 -1
- package/dist/es/guard.mjs +0 -1
- package/dist/es/headers-to-object.mjs +1 -2
- package/dist/es/identity.mjs +0 -1
- package/dist/es/is-probably-ip.mjs +0 -1
- package/dist/es/merge-headers.d.mts +3 -3
- package/dist/es/merge-headers.mjs +1 -2
- package/dist/es/noop.mjs +0 -1
- package/dist/es/once.mjs +0 -1
- package/dist/es/pick-random.mjs +1 -2
- package/dist/es/random-int.mjs +0 -1
- package/dist/es/repool.mjs +0 -1
- package/dist/es/retrie.mjs +0 -1
- package/dist/es/serialized-memo.d.mts +5 -1
- package/dist/es/serialized-memo.mjs +1 -2
- package/dist/es/simple-string-hash.mjs +0 -1
- package/dist/es/tagged.mjs +0 -1
- package/dist/es/text-line-stream.d.mts +0 -2
- package/dist/es/text-line-stream.mjs +1 -2
- package/dist/es/wait.mjs +0 -1
- package/package.json +2 -3
- package/dist/cjs/add-array-elements-to-set.js.map +0 -1
- package/dist/cjs/ahocorasick.js.map +0 -1
- package/dist/cjs/append-set-elements-to-array.js.map +0 -1
- package/dist/cjs/async-write-to-stream.js.map +0 -1
- package/dist/cjs/bitwise.js.map +0 -1
- package/dist/cjs/create-fixed-array.js.map +0 -1
- package/dist/cjs/detect-eol.js.map +0 -1
- package/dist/cjs/escape-html.js.map +0 -1
- package/dist/cjs/escape-string-regexp.js.map +0 -1
- package/dist/cjs/fast-string-array-join.js.map +0 -1
- package/dist/cjs/fifo.js.map +0 -1
- package/dist/cjs/fnv1a.js.map +0 -1
- package/dist/cjs/fnv1a52.js.map +0 -1
- package/dist/cjs/guard.js.map +0 -1
- package/dist/cjs/headers-to-object.js.map +0 -1
- package/dist/cjs/identity.js.map +0 -1
- package/dist/cjs/is-probably-ip.js.map +0 -1
- package/dist/cjs/merge-headers.js.map +0 -1
- package/dist/cjs/noop.js.map +0 -1
- package/dist/cjs/once.js.map +0 -1
- package/dist/cjs/pick-random.js.map +0 -1
- package/dist/cjs/random-int.js.map +0 -1
- package/dist/cjs/repool.js.map +0 -1
- package/dist/cjs/retrie.js.map +0 -1
- package/dist/cjs/serialized-memo.js.map +0 -1
- package/dist/cjs/simple-string-hash.js.map +0 -1
- package/dist/cjs/tagged.js.map +0 -1
- package/dist/cjs/text-line-stream.js.map +0 -1
- package/dist/cjs/wait.js.map +0 -1
- package/dist/es/add-array-elements-to-set.mjs.map +0 -1
- package/dist/es/ahocorasick.mjs.map +0 -1
- package/dist/es/append-set-elements-to-array.mjs.map +0 -1
- package/dist/es/async-write-to-stream.mjs.map +0 -1
- package/dist/es/bitwise.mjs.map +0 -1
- package/dist/es/create-fixed-array.mjs.map +0 -1
- package/dist/es/detect-eol.mjs.map +0 -1
- package/dist/es/escape-html.mjs.map +0 -1
- package/dist/es/escape-string-regexp.mjs.map +0 -1
- package/dist/es/fast-string-array-join.mjs.map +0 -1
- package/dist/es/fifo.mjs.map +0 -1
- package/dist/es/fnv1a.mjs.map +0 -1
- package/dist/es/fnv1a52.mjs.map +0 -1
- package/dist/es/guard.mjs.map +0 -1
- package/dist/es/headers-to-object.mjs.map +0 -1
- package/dist/es/identity.mjs.map +0 -1
- package/dist/es/is-probably-ip.mjs.map +0 -1
- package/dist/es/merge-headers.mjs.map +0 -1
- package/dist/es/noop.mjs.map +0 -1
- package/dist/es/once.mjs.map +0 -1
- package/dist/es/pick-random.mjs.map +0 -1
- package/dist/es/random-int.mjs.map +0 -1
- package/dist/es/repool.mjs.map +0 -1
- package/dist/es/retrie.mjs.map +0 -1
- package/dist/es/serialized-memo.mjs.map +0 -1
- package/dist/es/simple-string-hash.mjs.map +0 -1
- package/dist/es/tagged.mjs.map +0 -1
- package/dist/es/text-line-stream.mjs.map +0 -1
- package/dist/es/wait.mjs.map +0 -1
package/dist/cjs/fnv1a.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fnv1a.js","sources":["../../src/fnv1a/index.ts"],"sourcesContent":["export function fnv1a(s: string) {\n let h = 0x81_1C_9D_C5;\n\n for (let i = 0, l = s.length; i < l; i++) {\n h ^= s.charCodeAt(i);\n h += (h << 1) + (h << 4) + (h << 7) + (h << 8) + (h << 24);\n }\n\n return (h >>> 0);\n}\n"],"names":["s","h","i","l","length","charCodeAt"],"mappings":"qEAAO,SAAeA,CAAS,EAC7B,IAAIC,EAAI,WAER,IAAK,IAAIC,EAAI,EAAGC,EAAIH,EAAEI,MAAM,CAAEF,EAAIC,EAAGD,IACnCD,GAAKD,EAAEK,UAAU,CAACH,GAClBD,GAAK,AAACA,CAAAA,GAAK,CAAA,EAAMA,CAAAA,GAAK,CAAA,EAAMA,CAAAA,GAAK,CAAA,EAAMA,CAAAA,GAAK,CAAA,EAAMA,CAAAA,GAAK,EAAA,EAGzD,OAAQA,IAAM,CAChB"}
|
package/dist/cjs/fnv1a52.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fnv1a52.js","sources":["../../src/fnv1a52/index.ts"],"sourcesContent":["/**\n * FNV-1a Hash implementation\n * @author Travis Webb (tjwebb) <me@traviswebb.com>\n *\n * Ported from https://github.com/tjwebb/fnv-plus/blob/master/index.js\n *\n * Simplified, optimized and add modified for 52 bit, which provides a larger hash space\n * and still making use of Javascript's 53-bit integer space.\n */\nexport function fnv1a52(str: string) {\n const len = str.length;\n let i = 0,\n t0 = 0,\n v0 = 0x2325,\n t1 = 0,\n v1 = 0x8422,\n t2 = 0,\n v2 = 0x9CE4,\n t3 = 0,\n v3 = 0xCBF2;\n\n while (i < len) {\n v0 ^= str.charCodeAt(i++);\n t0 = v0 * 435;\n t1 = v1 * 435;\n t2 = v2 * 435;\n t3 = v3 * 435;\n t2 += v0 << 8;\n t3 += v1 << 8;\n t1 += t0 >>> 16;\n v0 = t0 & 65535;\n t2 += t1 >>> 16;\n v1 = t1 & 65535;\n v3 = (t3 + (t2 >>> 16)) & 65535;\n v2 = t2 & 65535;\n }\n\n return (\n (v3 & 15) * 281_474_976_710_656\n + v2 * 4_294_967_296\n + v1 * 65536\n + (v0 ^ (v3 >> 4))\n );\n}\n"],"names":["str","len","length","i","t0","v0","t1","v1","t2","v2","t3","v3","charCodeAt"],"mappings":"uEASO,SAAiBA,CAAW,EACjC,IAAMC,EAAMD,EAAIE,MAAM,CAClBC,EAAI,EACNC,EAAK,EACLC,EAAK,KACLC,EAAK,EACLC,EAAK,MACLC,EAAK,EACLC,EAAK,MACLC,EAAK,EACLC,EAAK,MAEP,KAAOR,EAAIF,GACTI,GAAML,EAAIY,UAAU,CAACT,KACrBC,EAAKC,AAAK,IAALA,EACLC,EAAKC,AAAK,IAALA,EACLC,EAAKC,AAAK,IAALA,EACLC,EAAKC,AAAK,IAALA,EACLH,GAAMH,GAAM,EACZK,GAAMH,GAAM,EACZD,GAAMF,IAAO,GACbC,EAAKD,AAAK,MAALA,EACLI,GAAMF,IAAO,GACbC,EAAKD,AAAK,MAALA,EACLK,EAAKD,EAAOF,CAAAA,IAAO,EAAA,EAAO,MAC1BC,EAAKD,AAAK,MAALA,EAGP,MACE,AAACG,CAAAA,AAAK,GAALA,GAAW,gBACVF,AAAK,YAALA,EACAF,AAAK,MAALA,EACCF,CAAAA,EAAMM,GAAM,CAAA,CAEnB"}
|
package/dist/cjs/guard.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"guard.js","sources":["../../src/guard/index.ts"],"sourcesContent":["export function not(arg: null): <T>(i: T | null) => i is T;\nexport function not(arg: undefined): <T>(i: T | undefined) => i is T;\nexport function not(arg: false): <T>(i: T | false) => i is T;\nexport function not(arg: 'nullish'): <T>(i: T | null | undefined) => i is T;\nexport function not(arg: 'falsy'): <T>(i: T | 0 | '' | false | null | undefined) => i is T;\nexport function not(arg: null | undefined | false | 'nullish' | 'falsy') {\n switch (arg) {\n case null:\n return <T>(i: T | null): i is T => i !== null;\n case undefined:\n return <T>(i: T | undefined): i is T => i !== undefined;\n case false:\n return <T>(i: T | false): i is T => i !== false;\n case 'nullish':\n return <T>(i: T | null | undefined): i is T => i != null;\n case 'falsy':\n return <T>(i: T | 0 | '' | false | null | undefined): i is T => !!i;\n default:\n never(arg, 'argument');\n }\n}\n\nexport function is(arg: null): (i: unknown) => i is null;\nexport function is(arg: undefined): (i: unknown) => i is undefined;\nexport function is(arg: false): (i: unknown) => i is false;\nexport function is(arg: 'nullish'): (i: unknown) => i is null | undefined;\nexport function is(arg: 'falsy'): (i: unknown) => i is 0 | '' | false | null | undefined;\nexport function is(arg: 'truthy'): <T>(i: T | 0 | '' | false | null | undefined) => i is T;\nexport function is(arg: null | undefined | false | 'nullish' | 'falsy' | 'truthy') {\n switch (arg) {\n case null:\n return (i: unknown): i is null => i === null;\n case undefined:\n return (i: unknown): i is undefined => i === undefined;\n case false:\n return (i: unknown): i is false => i === false;\n case 'nullish':\n return (i: unknown): i is null | undefined => i == null;\n case 'falsy':\n return (i: unknown): i is 0 | '' | false | null | undefined => !i;\n case 'truthy':\n return <T>(i: T | 0 | '' | false | null | undefined): i is T => !!i;\n default:\n never(arg, 'argument');\n }\n}\n\nexport const isTruthy = is('truthy');\nexport const isFalsy = is('falsy');\nexport const isNonNull = not(null);\nexport const isNonNullish = not('nullish');\n\nexport function nullthrow<T>(value: T | null | undefined, message = '[foxts/invariant] \"value\" is null or undefined'): T {\n if (value === null || value === undefined) {\n throw new TypeError(message);\n }\n return value;\n}\n\nexport function invariant<T>(value: T | null | undefined, message = '[foxts/invariant] \"value\" is null or undefined'): asserts value is T {\n if (value === null || value === undefined) {\n throw new TypeError(message);\n }\n}\n\nexport function never(value: never, valueMetaName = 'value'): never {\n throw new TypeError(`Unexpected ${valueMetaName}: ${value} as ${JSON.stringify(typeof value)}, should be \"never\"`);\n}\n"],"names":["not","arg","i","undefined","never","is","isTruthy","isFalsy","isNonNull","isNonNullish","value","valueMetaName","TypeError","JSON","stringify","message"],"mappings":"AAKO,SAASA,EAAIC,CAAmD,EACrE,OAAQA,GACN,KAAK,KACH,OAAO,AAAIC,GAAwBA,AAAM,OAANA,CACrC,MAAKC,KAAAA,EACH,OAAO,AAAID,GAA6BA,AAAMC,KAAAA,IAAND,CAC1C,KAAK,CAAA,EACH,OAAO,AAAIA,GAAyBA,AAAM,CAAA,IAANA,CACtC,KAAK,UACH,OAAO,AAAIA,GAAoCA,AAAK,MAALA,CACjD,KAAK,QACH,OAAO,AAAIA,GAAqD,CAAC,CAACA,CACpE,SACEE,EAAMH,EAAK,WACf,CACF,CAQO,SAASI,EAAGJ,CAA8D,EAC/E,OAAQA,GACN,KAAK,KACH,OAAO,AAACC,GAA0BA,AAAM,OAANA,CACpC,MAAKC,KAAAA,EACH,OAAO,AAACD,GAA+BA,AAAMC,KAAAA,IAAND,CACzC,KAAK,CAAA,EACH,OAAO,AAACA,GAA2BA,AAAM,CAAA,IAANA,CACrC,KAAK,UACH,OAAO,AAACA,GAAsCA,AAAK,MAALA,CAChD,KAAK,QACH,OAAO,AAACA,GAAuD,CAACA,CAClE,KAAK,SACH,OAAO,AAAIA,GAAqD,CAAC,CAACA,CACpE,SACEE,EAAMH,EAAK,WACf,CACF,wDAEO,MAAMK,EAAWD,EAAG,UACdE,EAAUF,EAAG,SACbG,EAAYR,EAAI,MAChBS,EAAeT,EAAI,WAezB,SAASI,EAAMM,CAAY,CAAEC,EAAgB,OAAO,EACzD,MAAM,AAAIC,UAAU,CAAC,WAAW,EAAED,EAAc,EAAE,EAAED,EAAM,IAAI,EAAEG,KAAKC,SAAS,CAAC,OAAOJ,GAAO,mBAAmB,CAAC,CACnH,mBARO,SAAsBA,CAA2B,CAAEK,EAAU,gDAAgD,EAClH,GAAIL,MAAAA,EACF,MAAM,AAAIE,UAAUG,EAExB,+IAXO,SAAsBL,CAA2B,CAAEK,EAAU,gDAAgD,EAClH,GAAIL,MAAAA,EACF,MAAM,AAAIE,UAAUG,GAEtB,OAAOL,CACT"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"headers-to-object.js","sources":["../../src/headers-to-object/index.ts"],"sourcesContent":["import type { HeadersInitLike } from '../merge-headers';\n\nexport function headersToObject(headers: HeadersInitLike | Headers): Record<string, string> {\n const obj: Record<string, string> = {};\n\n new Headers(headers).forEach((value: string, key: string) => {\n obj[key] = value;\n });\n\n return obj;\n}\n"],"names":["headers","obj","Headers","forEach","value","key"],"mappings":"+EAEO,SAAyBA,CAAkC,EAChE,IAAMC,EAA8B,CAAC,EAMrC,OAJA,IAAIC,QAAQF,GAASG,OAAO,CAAC,CAACC,EAAeC,KAC3CJ,CAAG,CAACI,EAAI,CAAGD,CACb,GAEOH,CACT"}
|
package/dist/cjs/identity.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"identity.js","sources":["../../src/identity/index.ts"],"sourcesContent":["export function identity<T = any, R = T>(item: T): R {\n return item as any;\n}\n"],"names":["item"],"mappings":"wEAAO,SAAkCA,CAAO,EAC9C,OAAOA,CACT"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"is-probably-ip.js","sources":["../../src/is-probably-ip/index.ts"],"sourcesContent":["/**\n * Check if a hostname is an IP. You should be aware that this only works\n * because `hostname` is already garanteed to be a valid hostname!\n */\nexport function isProbablyIpv4(hostname: string): boolean {\n // Cannot be shorted than 1.1.1.1 or longer than 255.255.255.255\n if (hostname.length < 7 || hostname.length > 15) {\n return false;\n }\n\n let numberOfDots = 0;\n\n for (let i = 0; i < hostname.length; i += 1) {\n const code = hostname.charCodeAt(i);\n\n if (code === 46 /* '.' */) {\n numberOfDots += 1;\n } else if (code < 48 /* '0' */ || code > 57 /* '9' */) {\n return false;\n }\n }\n\n return (\n numberOfDots === 3\n && hostname.charCodeAt(0) !== 46 /* '.' */\n && hostname.charCodeAt(hostname.length - 1) !== 46 /* '.' */\n );\n}\n\nexport function isProbablyIpv6(hostname: string): boolean {\n if (hostname.length < 3) {\n return false;\n }\n\n let start = hostname[0] === '[' ? 1 : 0;\n let end = hostname.length;\n\n if (hostname[end - 1] === ']') {\n end -= 1;\n }\n\n // We only consider the maximum size of a normal IPV6. Note that this will\n // fail on so-called \"IPv4 mapped IPv6 addresses\" but this is a corner-case\n // and a proper validation library should be used for these.\n if (end - start > 39) {\n return false;\n }\n\n /* eslint-disable sukka/no-single-return -- here it goes */\n let hasColon = false;\n\n for (; start < end; start += 1) {\n const code = hostname.charCodeAt(start);\n\n if (code === 58 /* ':' */) {\n hasColon = true;\n } else if (\n (code < 48 || code > 57) // does not match 0-9\n && (code < 97 || code > 102) // and does not match a-f\n && (code < 65 || code > 90) // and does not match A-F\n ) {\n // does not contain any characters that are required in a valid IPv6\n return false;\n }\n }\n\n return hasColon;\n /* eslint-enable sukka/no-single-return -- here it goes */\n}\n"],"names":["hostname","length","numberOfDots","i","code","charCodeAt","start","end","hasColon"],"mappings":"8EAIO,SAAwBA,CAAgB,EAE7C,GAAIA,EAASC,MAAM,CAAG,GAAKD,EAASC,MAAM,CAAG,GAC3C,MAAO,CAAA,EAGT,IAAIC,EAAe,EAEnB,IAAK,IAAIC,EAAI,EAAGA,EAAIH,EAASC,MAAM,CAAEE,GAAK,EAAG,CAC3C,IAAMC,EAAOJ,EAASK,UAAU,CAACF,GAEjC,GAAIC,AAAS,KAATA,EACFF,GAAgB,OACX,GAAIE,EAAO,IAAgBA,EAAO,GACvC,MAAO,CAAA,CAEX,CAEA,OACEF,AAAiB,IAAjBA,GACGF,AAA2B,KAA3BA,EAASK,UAAU,CAAC,IACpBL,AAA6C,KAA7CA,EAASK,UAAU,CAACL,EAASC,MAAM,CAAG,EAE7C,yBAEO,SAAwBD,CAAgB,EAC7C,GAAIA,EAASC,MAAM,CAAG,EACpB,MAAO,CAAA,EAGT,IAAIK,EAAQN,CAAAA,CAAAA,AAAgB,MAAhBA,CAAQ,CAAC,EAAE,EACnBO,EAAMP,EAASC,MAAM,CASzB,GAP0B,MAAtBD,CAAQ,CAACO,EAAM,EAAE,EACnBA,CAAAA,GAAO,CAAA,EAMLA,EAAMD,EAAQ,GAChB,MAAO,CAAA,EAIT,IAAIE,EAAW,CAAA,EAEf,KAAOF,EAAQC,EAAKD,GAAS,EAAG,CAC9B,IAAMF,EAAOJ,EAASK,UAAU,CAACC,GAEjC,GAAIF,AAAS,KAATA,EACFI,EAAW,CAAA,OACN,GACL,AAACJ,CAAAA,EAAO,IAAMA,EAAO,KACjBA,CAAAA,EAAO,IAAMA,EAAO,MACpBA,CAAAA,EAAO,IAAMA,EAAO,IAGxB,MAAO,CAAA,CAEX,CAEA,OAAOI,CACP"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"merge-headers.js","sources":["../../src/merge-headers/index.ts"],"sourcesContent":["export type HeadersInitLike = string[][] | Record<string, string | readonly string[]> | Headers;\nexport type IncomingHttpHeadersLike = Record<string, string | string[] | undefined>;\nexport type OutgoingHttpHeadersLike = Record<string, number | string | string[] | undefined>;\n\nexport function mergeHeaders(dest: HeadersInitLike, source: HeadersInitLike): Headers {\n const destHeaders = new Headers(dest);\n const sourceHeaders = new Headers(source);\n\n sourceHeaders.forEach((value: string, key: string) => {\n destHeaders.set(key, value);\n });\n\n return destHeaders;\n}\n\nexport function mergeNodeHttpHeaders(dest: IncomingHttpHeadersLike, source: IncomingHttpHeadersLike): IncomingHttpHeadersLike;\nexport function mergeNodeHttpHeaders(dest: OutgoingHttpHeadersLike, source: IncomingHttpHeadersLike | OutgoingHttpHeadersLike): OutgoingHttpHeadersLike;\nexport function mergeNodeHttpHeaders(dest: IncomingHttpHeadersLike | OutgoingHttpHeadersLike, source: IncomingHttpHeadersLike | OutgoingHttpHeadersLike): IncomingHttpHeadersLike | OutgoingHttpHeadersLike {\n return Object.assign({}, dest, source);\n}\n"],"names":["dest","source","destHeaders","Headers","sourceHeaders","forEach","value","key","set","Object","assign"],"mappings":"4EAIO,SAAsBA,CAAqB,CAAEC,CAAuB,EACzE,IAAMC,EAAc,IAAIC,QAAQH,GAOhC,OAJAI,AAFsB,IAAID,QAAQF,GAEpBI,OAAO,CAAC,CAACC,EAAeC,KACpCL,EAAYM,GAAG,CAACD,EAAKD,EACvB,GAEOJ,CACT,+BAIO,SAA8BF,CAAuD,CAAEC,CAAyD,EACrJ,OAAOQ,OAAOC,MAAM,CAAC,GAAIV,EAAMC,EACjC"}
|
package/dist/cjs/noop.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"noop.js","sources":["../../src/noop/index.ts"],"sourcesContent":["export interface Noop<T = any> {\n (...args: any[]): T\n}\nexport const noop: Noop = () => { /* noop */ };\n\nexport const trueFn: Noop<true> = () => true;\nexport const falseFn: Noop<false> = () => false;\n\n// eslint-disable-next-line sukka/unicorn/error-message -- deliberately w/o error msg\nexport const throwFn: Noop<never> = () => { throw new Error(); };\n\nconst p = Promise.resolve();\nexport const asyncNoop: Noop<Promise<any>> = () => p;\n\nconst neverResolvedPromise = new Promise<never>(noop);\nexport const asyncNeverFn: Noop<Promise<never>> = () => neverResolvedPromise;\n"],"names":["noop","p","Promise","resolve","neverResolvedPromise","Error"],"mappings":"uDAGO,MAAMA,EAAa,KAAA,EAQpBC,EAAIC,QAAQC,OAAO,GAGnBC,EAAuB,IAAIF,QAAeF,wBACE,IAAMI,oBAHX,IAAMH,kBANf,IAAM,CAAA,iCAGN,KAAQ,MAAM,AAAII,OAAS,iBAJ7B,IAAM,CAAA"}
|
package/dist/cjs/once.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"once.js","sources":["../../src/once/index.ts"],"sourcesContent":["export function once<T>(fn: (() => T)): (() => T) {\n let called = false;\n let result: T;\n\n return (): T => {\n if (!called) {\n called = true;\n result = fn();\n }\n\n return result;\n };\n}\n"],"names":["fn","result","called"],"mappings":"oEAAO,SAAiBA,CAAa,EACnC,IACIC,EADAC,EAAS,CAAA,EAGb,MAAO,KACAA,IACHA,EAAS,CAAA,EACTD,EAASD,KAGJC,EAEX"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pick-random.js","sources":["../../src/pick-random/index.ts"],"sourcesContent":["import { randomInt } from 'node:crypto';\n\n/**\n * @param randomInt - a random generate function that accepts two arguments `min` and `max` and returns a random number between `min` and `max`\n */\nexport function createPickRandom(randomInt: (min: number, max: number) => number) {\n return function pickRandom<T>(data: T[] | readonly T[], count = 1) {\n if (count > data.length) {\n throw new TypeError('Count must be lower or the same as the number of picks');\n }\n\n const $data = data.slice();\n\n const pickedElements = [];\n\n while (count--) {\n if ($data.length === 1) {\n // skip randomInt since it might be expensive\n pickedElements.push($data[0]);\n } else {\n pickedElements.push($data.splice(randomInt(0, $data.length - 1), 1)[0]);\n }\n }\n\n return pickedElements;\n };\n}\n\nexport const pickRandom = createPickRandom(randomInt);\n\nexport function createPickOne(randomInt: (min: number, max: number) => number) {\n return function pickOne<T>(data: T[] | readonly T[]) {\n if (data.length === 1) {\n // skip randomInt since it might be expensive\n return data[0];\n }\n return data[randomInt(0, data.length - 1)];\n };\n}\n\nexport const pickOne = createPickOne(randomInt);\n"],"names":["createPickRandom","randomInt","data","count","length","TypeError","$data","slice","pickedElements","push","splice","pickRandom","createPickOne","pickOne"],"mappings":"oFAKO,SAASA,EAAiBC,CAA+C,EAC9E,OAAO,SAAuBC,CAAwB,CAAEC,EAAQ,CAAC,EAC/D,GAAIA,EAAQD,EAAKE,MAAM,CACrB,MAAM,AAAIC,UAAU,0DAGtB,IAAMC,EAAQJ,EAAKK,KAAK,GAElBC,EAAiB,EAAE,CAEzB,KAAOL,KACDG,AAAiB,IAAjBA,EAAMF,MAAM,CAEdI,EAAeC,IAAI,CAACH,CAAK,CAAC,EAAE,EAE5BE,EAAeC,IAAI,CAACH,EAAMI,MAAM,CAACT,EAAU,EAAGK,EAAMF,MAAM,CAAG,GAAI,EAAE,CAAC,EAAE,EAI1E,OAAOI,CACT,CACF,CAEO,MAAMG,EAAaX,EAAiBC,EAAWA,SAAA,EAE/C,SAASW,EAAcX,CAA+C,EAC3E,OAAO,SAAoBC,CAAwB,SACjD,AAAIA,AAAgB,IAAhBA,EAAKE,MAAM,CAENF,CAAI,CAAC,EAAE,CAETA,CAAI,CAACD,EAAU,EAAGC,EAAKE,MAAM,CAAG,GAAG,AAC5C,CACF,CAEO,MAAMS,EAAUD,EAAcX,EAAWA,SAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"random-int.js","sources":["../../src/random-int/index.ts"],"sourcesContent":["/**\n * @param random - a random generate function that returns a number between 0 and 1\n */\nexport function createRandomInt(random: () => number) {\n return (min: number, max: number): number => Math.floor(random() * (max - min + 1)) + min;\n}\n\nexport const randomInt = createRandomInt(Math.random);\n\n// function secureRandom() {\n// const buf = new Uint32Array(1);\n// getRandomValues(buf);\n// return buf[0] / (0xFF_FF_FF_FF + 1);\n// }\n\n// export const randomIntSecure = createRandomInt(secureRandom);\n"],"names":["createRandomInt","random","min","max","Math","floor","randomInt"],"mappings":"AAGO,SAASA,EAAgBC,CAAoB,EAClD,MAAO,CAACC,EAAaC,IAAwBC,KAAKC,KAAK,CAACJ,IAAYE,CAAAA,EAAMD,EAAM,CAAA,GAAMA,CACxF,8DAEaI,EAAYN,EAAgBI,KAAKH,MAAM"}
|
package/dist/cjs/repool.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"repool.js","sources":["../../src/repool/index.ts"],"sourcesContent":["export interface Reusifiable {\n next: this | null\n}\n\n/**\n * Repool is a class that allows you to reuse objects.\n *\n * Do not use this to store class instances, please use https://github.com/mcollina/reusify instead.\n */\nexport class Repool<T extends Reusifiable> {\n private head: T;\n private tail: T;\n\n constructor(private createObject: () => T) {\n const obj = createObject();\n this.tail = obj;\n this.head = obj;\n }\n\n public get(): T {\n const current = this.head;\n\n if (current.next) {\n this.head = current.next;\n } else {\n const obj = this.createObject();\n this.tail = obj;\n this.head = obj;\n }\n\n current.next = null;\n\n return current;\n }\n\n public release(obj: T): void {\n this.tail.next = obj;\n this.tail = obj;\n }\n}\n"],"names":["constructor","createObject","obj","tail","head","get","current","next","release"],"mappings":"sEASO,MAILA,YAAoBC,CAAqB,CAAE,MAAvBA,YAAAA,CAAAA,EAClB,IAAMC,EAAMD,GACZ,CAAA,IAAI,CAACE,IAAI,CAAGD,EACZ,IAAI,CAACE,IAAI,CAAGF,CACd,CAEOG,KAAS,CACd,IAAMC,EAAU,IAAI,CAACF,IAAI,CAEzB,GAAIE,EAAQC,IAAI,CACd,IAAI,CAACH,IAAI,CAAGE,EAAQC,IAAI,KACnB,CACL,IAAML,EAAM,IAAI,CAACD,YAAY,EAC7B,CAAA,IAAI,CAACE,IAAI,CAAGD,EACZ,IAAI,CAACE,IAAI,CAAGF,CACd,CAIA,OAFAI,EAAQC,IAAI,CAAG,KAERD,CACT,CAEOE,QAAQN,CAAM,CAAQ,CAC3B,IAAI,CAACC,IAAI,CAACI,IAAI,CAAGL,EACjB,IAAI,CAACC,IAAI,CAAGD,CACd,CACF"}
|
package/dist/cjs/retrie.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"retrie.js","sources":["../../src/retrie/index.ts"],"sourcesContent":["// TypeScript port of [retrie](https://github.com/satyr/retrie), which is a Coco -> JS port of [@dankogai](https://x.com/dankogai)'s [RegexpTrie](https://metacpan.org/release/DANKOGAI/Regexp-Trie-0.02/view/lib/Regexp/Trie.pm).\n\nimport { falseFn } from '../noop';\n\ninterface BaseTrie {\n [key: string]: Trie\n}\n\ntype Trie = BaseTrie | {\n '': ''\n};\n\nconst shouldEscapeChars = new Set<string>([\n '.',\n '?',\n '*',\n '+',\n '^',\n '$',\n '|',\n '(',\n ')',\n '{',\n '}',\n '[',\n ']',\n '\\\\'\n]);\n\nexport function retrie(keywords: ArrayLike<string>, asPrefixes = false) {\n const tree: Trie = {};\n\n const add = (keywords: string, asPrefixes: boolean) => {\n let keyword: string;\n let ref: Trie = tree;\n\n for (let i = 0, len = keywords.length; i < len; ++i) {\n keyword = keywords.charAt(i);\n\n if (!(keyword in ref)) {\n (ref as BaseTrie)[keyword] = asPrefixes\n ? { '': '' }\n : {};\n }\n\n ref = (ref as BaseTrie)[keyword];\n }\n\n ref[''] = '';\n };\n\n for (let i = 0, len = keywords.length; i < len; ++i) {\n add(keywords[i], asPrefixes);\n }\n\n const toString = () => {\n function recur(it: Trie): string {\n let q = false;\n let re;\n let sub: string | undefined;\n let cconly = false;\n const alt: string[] = [];\n const cc: string[] = [];\n\n // eslint-disable-next-line guard-for-in -- plain object\n for (const chr in it) {\n if (!chr) {\n q = true;\n continue;\n }\n\n sub = recur((it as BaseTrie)[chr]);\n\n (sub ? alt : cc).push(\n (\n chr === '-'\n // eslint-disable-next-line sukka/unicorn/prefer-string-raw -- regexp escape\n ? '\\\\x2d'\n : (\n shouldEscapeChars.has(chr)\n ? '\\\\' + chr\n : chr\n )\n )\n + sub\n );\n }\n\n if (q && sub == null) {\n return '';\n }\n\n cconly = !alt.length;\n\n if (cc.length) {\n alt.push(\n cc[1]\n ? '[' + cc.join('') + ']'\n : cc[0]\n );\n }\n\n re = alt[1]\n ? '(?:' + alt.join('|') + ')'\n : alt[0];\n\n if (q) {\n re = cconly\n ? re + '?'\n : '(?:' + re + ')?';\n }\n\n return re || '';\n }\n return recur(tree);\n };\n\n const toRe = () => new RegExp(\n (asPrefixes ? '^' : '')\n + toString()\n );\n\n return {\n tree,\n add,\n toString,\n toRe\n };\n}\n\nexport function createRetrieKeywordFilter(keywords: ArrayLike<string>, asPrefixes = false) {\n if (keywords.length === 0) {\n return falseFn;\n }\n\n const re = retrie(keywords, asPrefixes).toRe();\n return re.test.bind(re);\n}\n"],"names":["shouldEscapeChars","Set","retrie","keywords","asPrefixes","tree","add","keyword","ref","i","len","length","charAt","toString","recur","it","re","sub","q","cconly","alt","cc","chr","push","has","join","toRe","RegExp","falseFn","test","bind"],"mappings":"kFAYA,MAAMA,EAAoB,IAAIC,IAAY,CACxC,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACD,EAEM,SAASC,EAAOC,CAA2B,CAAEC,EAAa,CAAA,CAAK,EACpE,IAAMC,EAAa,CAAC,EAEdC,EAAM,CAACH,EAAkBC,SACzBG,EACJ,IAAIC,EAAYH,EAEhB,IAAK,IAAII,EAAI,EAAGC,EAAMP,EAASQ,MAAM,CAAEF,EAAIC,EAAK,EAAED,EAChDF,CAAAA,EAAUJ,EAASS,MAAM,CAACH,EAAAA,IAETD,GACdA,CAAAA,CAAgB,CAACD,EAAQ,CAAGH,EACzB,CAAE,GAAI,EAAG,EACT,CAAC,CAAA,EAGPI,EAAOA,CAAgB,CAACD,EAAQ,AAGlCC,CAAAA,CAAG,CAAC,GAAG,CAAG,EACZ,EAEA,IAAK,IAAIC,EAAI,EAAGC,EAAMP,EAASQ,MAAM,CAAEF,EAAIC,EAAK,EAAED,EAChDH,EAAIH,CAAQ,CAACM,EAAE,CAAEL,GAGnB,IAAMS,EAAW,IA2DRC,AA1DP,CAAA,SAASA,EAAMC,CAAQ,EACrB,IACIC,EACAC,EAFAC,EAAI,CAAA,EAGJC,EAAS,CAAA,EACPC,EAAgB,EAAE,CAClBC,EAAe,EAAE,CAGvB,IAAK,IAAMC,KAAOP,EAAI,CACpB,GAAI,CAACO,EAAK,CACRJ,EAAI,CAAA,EACJ,QACF,CAICD,AAAAA,CAAAA,AAFDA,CAAAA,EAAMH,EAAOC,CAAe,CAACO,EAAI,CAAA,EAE1BF,EAAMC,CAAAA,EAAIE,IAAI,CACnB,AACED,CAAAA,AAAQ,MAARA,EAEI,QAEAtB,EAAkBwB,GAAG,CAACF,GAClB,KAAOA,EACPA,CACN,EAEFL,EAEN,QAEA,AAAIC,GAAKD,AAAO,MAAPA,EACA,IAGTE,EAAS,CAACC,EAAIT,MAAM,CAEhBU,EAAGV,MAAM,EACXS,EAAIG,IAAI,CACNF,CAAE,CAAC,EAAE,CACD,IAAMA,EAAGI,IAAI,CAAC,IAAM,IACpBJ,CAAE,CAAC,EAAE,EAIbL,EAAKI,CAAG,CAAC,EAAE,CACP,MAAQA,EAAIK,IAAI,CAAC,KAAO,IACxBL,CAAG,CAAC,EAAE,CAENF,GACFF,CAAAA,EAAKG,EACDH,EAAK,IACL,MAAQA,EAAK,IAAA,EAGZA,GAAM,GACf,CAAA,EACaX,GAQf,MAAO,CACLA,KAAAA,EACAC,IAAAA,EACAO,SAAAA,EACAa,KATW,IAAM,IAAIC,OACrB,AAACvB,CAAAA,EAAa,IAAM,EAAA,EAClBS,IAQJ,CACF,mCAEO,SAAmCV,CAA2B,CAAEC,EAAa,CAAA,CAAK,EACvF,GAAID,AAAoB,IAApBA,EAASQ,MAAM,CACjB,OAAOiB,EAAAA,OAAAA,CAGT,IAAMZ,EAAKd,EAAOC,EAAUC,GAAYsB,IAAI,GAC5C,OAAOV,EAAGa,IAAI,CAACC,IAAI,CAACd,EACtB"}
|