@dolthub/web-utils 0.3.0 → 0.3.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/{Maybe.d.d.ts → Maybe.d-D0RyzIMq.d.ts} +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/{null.js → null-YOYbhU37.js} +1 -1
- package/dist/cjs/null-YOYbhU37.js.map +1 -0
- package/dist/cjs/parseSqlQuery.js +1 -1
- package/dist/cjs/parseSqlQuery.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/{null.js → null-Bxv_EpNg.js} +2 -2
- package/dist/esm/null-Bxv_EpNg.js.map +1 -0
- package/dist/esm/parseSqlQuery.js +1 -1
- package/dist/esm/parseSqlQuery.js.map +1 -1
- package/dist/index.d.ts +404 -23
- package/dist/parseSqlQuery.d.ts +1 -1
- package/package.json +10 -10
- package/dist/cjs/compareArray.js +0 -2
- package/dist/cjs/compareArray.js.map +0 -1
- package/dist/cjs/dateConversions.js +0 -2
- package/dist/cjs/dateConversions.js.map +0 -1
- package/dist/cjs/dedupe.js +0 -2
- package/dist/cjs/dedupe.js.map +0 -1
- package/dist/cjs/enumKeys.js +0 -2
- package/dist/cjs/enumKeys.js.map +0 -1
- package/dist/cjs/excerpt.js +0 -2
- package/dist/cjs/excerpt.js.map +0 -1
- package/dist/cjs/fakeEscapePress.js +0 -2
- package/dist/cjs/fakeEscapePress.js.map +0 -1
- package/dist/cjs/initialUppercase.js +0 -2
- package/dist/cjs/initialUppercase.js.map +0 -1
- package/dist/cjs/keycodes.js +0 -2
- package/dist/cjs/keycodes.js.map +0 -1
- package/dist/cjs/loremer/index.js +0 -2
- package/dist/cjs/loremer/index.js.map +0 -1
- package/dist/cjs/loremer/words.js +0 -2
- package/dist/cjs/loremer/words.js.map +0 -1
- package/dist/cjs/nTimes.js +0 -2
- package/dist/cjs/nTimes.js.map +0 -1
- package/dist/cjs/null.js.map +0 -1
- package/dist/cjs/numberFormat.js +0 -2
- package/dist/cjs/numberFormat.js.map +0 -1
- package/dist/cjs/pluralize.js +0 -2
- package/dist/cjs/pluralize.js.map +0 -1
- package/dist/cjs/prettyJSON.js +0 -2
- package/dist/cjs/prettyJSON.js.map +0 -1
- package/dist/cjs/randomArrayItem.js +0 -2
- package/dist/cjs/randomArrayItem.js.map +0 -1
- package/dist/cjs/randomNum.js +0 -2
- package/dist/cjs/randomNum.js.map +0 -1
- package/dist/cjs/safeJSONParse.js +0 -2
- package/dist/cjs/safeJSONParse.js.map +0 -1
- package/dist/cjs/sprintf.js +0 -2
- package/dist/cjs/sprintf.js.map +0 -1
- package/dist/cjs/toOrdinal.js +0 -2
- package/dist/cjs/toOrdinal.js.map +0 -1
- package/dist/cjs/tuplify.js +0 -2
- package/dist/cjs/tuplify.js.map +0 -1
- package/dist/cjs/urlUtils.js +0 -2
- package/dist/cjs/urlUtils.js.map +0 -1
- package/dist/cjs/validators.js +0 -2
- package/dist/cjs/validators.js.map +0 -1
- package/dist/compareArray.d.d.ts +0 -3
- package/dist/dateConversions.d.d.ts +0 -15
- package/dist/dedupe.d.d.ts +0 -3
- package/dist/enumKeys.d.d.ts +0 -22
- package/dist/esm/compareArray.js +0 -2
- package/dist/esm/compareArray.js.map +0 -1
- package/dist/esm/dateConversions.js +0 -2
- package/dist/esm/dateConversions.js.map +0 -1
- package/dist/esm/dedupe.js +0 -2
- package/dist/esm/dedupe.js.map +0 -1
- package/dist/esm/enumKeys.js +0 -2
- package/dist/esm/enumKeys.js.map +0 -1
- package/dist/esm/excerpt.js +0 -2
- package/dist/esm/excerpt.js.map +0 -1
- package/dist/esm/fakeEscapePress.js +0 -2
- package/dist/esm/fakeEscapePress.js.map +0 -1
- package/dist/esm/initialUppercase.js +0 -2
- package/dist/esm/initialUppercase.js.map +0 -1
- package/dist/esm/keycodes.js +0 -2
- package/dist/esm/keycodes.js.map +0 -1
- package/dist/esm/loremer/index.js +0 -2
- package/dist/esm/loremer/index.js.map +0 -1
- package/dist/esm/loremer/words.js +0 -2
- package/dist/esm/loremer/words.js.map +0 -1
- package/dist/esm/nTimes.js +0 -2
- package/dist/esm/nTimes.js.map +0 -1
- package/dist/esm/null.js.map +0 -1
- package/dist/esm/numberFormat.js +0 -2
- package/dist/esm/numberFormat.js.map +0 -1
- package/dist/esm/pluralize.js +0 -2
- package/dist/esm/pluralize.js.map +0 -1
- package/dist/esm/prettyJSON.js +0 -2
- package/dist/esm/prettyJSON.js.map +0 -1
- package/dist/esm/randomArrayItem.js +0 -2
- package/dist/esm/randomArrayItem.js.map +0 -1
- package/dist/esm/randomNum.js +0 -2
- package/dist/esm/randomNum.js.map +0 -1
- package/dist/esm/safeJSONParse.js +0 -2
- package/dist/esm/safeJSONParse.js.map +0 -1
- package/dist/esm/sprintf.js +0 -2
- package/dist/esm/sprintf.js.map +0 -1
- package/dist/esm/toOrdinal.js +0 -2
- package/dist/esm/toOrdinal.js.map +0 -1
- package/dist/esm/tuplify.js +0 -2
- package/dist/esm/tuplify.js.map +0 -1
- package/dist/esm/urlUtils.js +0 -2
- package/dist/esm/urlUtils.js.map +0 -1
- package/dist/esm/validators.js +0 -2
- package/dist/esm/validators.js.map +0 -1
- package/dist/excerpt.d.d.ts +0 -3
- package/dist/fakeEscapePress.d.d.ts +0 -3
- package/dist/initialUppercase.d.d.ts +0 -3
- package/dist/keycodes.d.d.ts +0 -103
- package/dist/loremer/index.d.d.ts +0 -18
- package/dist/nTimes.d.d.ts +0 -4
- package/dist/null.d.d.ts +0 -6
- package/dist/numberFormat.d.d.ts +0 -5
- package/dist/pluralize.d.d.ts +0 -3
- package/dist/prettyJSON.d.d.ts +0 -4
- package/dist/randomArrayItem.d.d.ts +0 -3
- package/dist/randomNum.d.d.ts +0 -3
- package/dist/safeJSONParse.d.d.ts +0 -3
- package/dist/sprintf.d.d.ts +0 -3
- package/dist/toOrdinal.d.d.ts +0 -3
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/tuplify.d.d.ts +0 -3
- package/dist/urlUtils.d.d.ts +0 -200
- package/dist/validators.d.d.ts +0 -11
package/dist/cjs/null.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"null.js","sources":["../../../src/null.ts"],"sourcesContent":["// Using an unprintable string for null values so we can distinguish between\n// string \"null\" and null\nexport const NULL_VALUE = \"\\uf5f2\\ueb94NULL\\uf5a8\\ue6ff\";\n\nexport function isNullValue(dv: string): boolean {\n return dv === NULL_VALUE;\n}\n\nexport function getDisplayValue(dv: string): string {\n return isNullValue(dv) ? \"NULL\" : dv;\n}\n\nexport function getDisplayValueForApi(dv: string): string | null {\n return isNullValue(dv) ? null : dv;\n}\n"],"names":["NULL_VALUE","isNullValue","dv"],"mappings":"aAEO,MAAMA,EAAa,WAEpB,SAAUC,EAAYC,GAC1B,OAAOA,IAAOF,CAChB,8CAEM,SAA0BE,GAC9B,OAAOD,EAAYC,GAAM,OAASA,CACpC,gCAEM,SAAgCA,GACpC,OAAOD,EAAYC,GAAM,KAAOA,CAClC"}
|
package/dist/cjs/numberFormat.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";exports.formatNumber=function(r){return new Intl.NumberFormat("en-US").format(r)},exports.formatToRoundedUsd=function(r){return new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:0,maximumFractionDigits:0}).format(r)},exports.formatToUsd=function(r){return new Intl.NumberFormat("en-US",{style:"currency",currency:"USD"}).format(r)};
|
|
2
|
-
//# sourceMappingURL=numberFormat.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"numberFormat.js","sources":["../../../src/numberFormat.ts"],"sourcesContent":["export function formatNumber(num: number): string {\n return new Intl.NumberFormat(\"en-US\").format(num);\n}\n\nexport function formatToUsd(num: number): string {\n return new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currency: \"USD\",\n }).format(num);\n}\n\nexport function formatToRoundedUsd(num: number): string {\n return new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currency: \"USD\",\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n }).format(num);\n}\n"],"names":["num","Intl","NumberFormat","format","style","currency","minimumFractionDigits","maximumFractionDigits"],"mappings":"kCAAM,SAAuBA,GAC3B,OAAO,IAAIC,KAAKC,aAAa,SAASC,OAAOH,EAC/C,6BASM,SAA6BA,GACjC,OAAO,IAAIC,KAAKC,aAAa,QAAS,CACpCE,MAAO,WACPC,SAAU,MACVC,sBAAuB,EACvBC,sBAAuB,IACtBJ,OAAOH,EACZ,sBAdM,SAAsBA,GAC1B,OAAO,IAAIC,KAAKC,aAAa,QAAS,CACpCE,MAAO,WACPC,SAAU,QACTF,OAAOH,EACZ"}
|
package/dist/cjs/pluralize.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";module.exports=function(e,t){return 1===e?t:function(e){switch(e){case"person":return"people";case"repository":return"repositories";case"repository updated today":return"repositories updated today";case"database":return"databases";case"database updated today":return"databases updated today";case"branch":return"branches";default:return`${e}s`}}(t)};
|
|
2
|
-
//# sourceMappingURL=pluralize.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pluralize.js","sources":["../../../src/pluralize.ts"],"sourcesContent":["export default function pluralize(num: number, str: string): string {\n if (num === 1) {\n return str;\n }\n return getPlural(str);\n}\n\nfunction getPlural(s: string): string {\n switch (s) {\n case \"person\":\n return \"people\";\n case \"repository\":\n return \"repositories\";\n case \"repository updated today\":\n return \"repositories updated today\";\n case \"database\":\n return \"databases\";\n case \"database updated today\":\n return \"databases updated today\";\n case \"branch\":\n return \"branches\";\n default:\n return `${s}s`;\n }\n}\n"],"names":["num","str","s","getPlural"],"mappings":"4BAAc,SAAoBA,EAAaC,GAC7C,OAAY,IAARD,EACKC,EAKX,SAAmBC,GACjB,OAAQA,GACN,IAAK,SACH,MAAO,SACT,IAAK,aACH,MAAO,eACT,IAAK,2BACH,MAAO,6BACT,IAAK,WACH,MAAO,YACT,IAAK,yBACH,MAAO,0BACT,IAAK,SACH,MAAO,WACT,QACE,MAAO,GAAGA,KAEhB,CApBSC,CAAUF,EACnB"}
|
package/dist/cjs/prettyJSON.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=function(r){try{return JSON.stringify(r,null,2)}catch(e){return console.error(e),`${r}`}},exports.prettyJSONText=function(r){try{return JSON.stringify(JSON.parse(r),null,2)}catch(e){return console.error(e),r}};
|
|
2
|
-
//# sourceMappingURL=prettyJSON.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prettyJSON.js","sources":["../../../src/prettyJSON.ts"],"sourcesContent":["export default function prettyJSON(data: any): string {\n try {\n return JSON.stringify(data, null, 2);\n } catch (err) {\n console.error(err);\n return `${data}`;\n }\n}\n\nexport function prettyJSONText(text: string): string {\n try {\n return JSON.stringify(JSON.parse(text), null, 2);\n } catch (err) {\n console.error(err);\n return text;\n }\n}\n"],"names":["data","JSON","stringify","err","console","error","text","parse"],"mappings":"oFAAc,SAAqBA,GACjC,IACE,OAAOC,KAAKC,UAAUF,EAAM,KAAM,EACpC,CAAE,MAAOG,GAEP,OADAC,QAAQC,MAAMF,GACP,GAAGH,GACZ,CACF,yBAEM,SAAyBM,GAC7B,IACE,OAAOL,KAAKC,UAAUD,KAAKM,MAAMD,GAAO,KAAM,EAChD,CAAE,MAAOH,GAEP,OADAC,QAAQC,MAAMF,GACPG,CACT,CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"randomArrayItem.js","sources":["../../../src/randomArrayItem.ts"],"sourcesContent":["export default function randomArrayItem<T>(arr: T[]): T {\n if (arr.length === 0) {\n throw new Error(\"Can't take random element of empty array\");\n }\n return arr[Math.floor(Math.random() * arr.length)];\n}\n"],"names":["arr","length","Error","Math","floor","random"],"mappings":"4BAAc,SAA6BA,GACzC,GAAmB,IAAfA,EAAIC,OACN,MAAM,IAAIC,MAAM,4CAElB,OAAOF,EAAIG,KAAKC,MAAMD,KAAKE,SAAWL,EAAIC,QAC5C"}
|
package/dist/cjs/randomNum.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"randomNum.js","sources":["../../../src/randomNum.ts"],"sourcesContent":["export default function randomNum(min: number, max: number): number {\n return Math.floor(Math.random() * (max - min) + min);\n}\n"],"names":["min","max","Math","floor","random"],"mappings":"4BAAc,SAAoBA,EAAaC,GAC7C,OAAOC,KAAKC,MAAMD,KAAKE,UAAYH,EAAMD,GAAOA,EAClD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"safeJSONParse.js","sources":["../../../src/safeJSONParse.ts"],"sourcesContent":["// safeJSONParse attempts to parse a JSON string, and if it fails returns the\n// original string instead of throwing an error\nexport default function safeJSONParse(text: string): any {\n try {\n return JSON.parse(text);\n } catch (_) {\n return text;\n }\n}\n"],"names":["text","JSON","parse","_"],"mappings":"4BAEc,SAAwBA,GACpC,IACE,OAAOC,KAAKC,MAAMF,EACpB,CAAE,MAAOG,GACP,OAAOH,CACT,CACF"}
|
package/dist/cjs/sprintf.js
DELETED
package/dist/cjs/sprintf.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sprintf.js","sources":["../../../src/sprintf.ts"],"sourcesContent":["const replaceToken = \"$\";\n\n// sprintf takes a string and replaces all instances of `replaceToken` with the provided arguments\nexport const sprintf = (str: string, ...argv: any[]): string => {\n if (!argv.length) return str;\n // eslint-disable-next-line no-return-assign, no-param-reassign\n return sprintf((str = str.replace(replaceToken, argv.shift())), ...argv);\n};\n"],"names":["sprintf","str","argv","length","replace","shift"],"mappings":"aAAA,MAGaA,EAAU,CAACC,KAAgBC,IACjCA,EAAKC,OAEHH,EAASC,EAAMA,EAAIG,QANP,IAM6BF,EAAKG,YAAcH,GAF1CD"}
|
package/dist/cjs/toOrdinal.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toOrdinal.js","sources":["../../../src/toOrdinal.ts"],"sourcesContent":["export default function toOrdinal(n: number): string {\n if (n % 10 === 1 && n % 100 !== 11) return `${n}st`;\n\n if (n % 10 === 2 && n % 100 !== 12) return `${n}nd`;\n\n if (n % 10 === 3 && n % 100 !== 13) return `${n}rd`;\n\n return `${n}th`;\n}\n"],"names":["n"],"mappings":"4BAAc,SAAoBA,GAChC,OAAIA,EAAI,IAAO,GAAKA,EAAI,KAAQ,GAAW,GAAGA,MAE1CA,EAAI,IAAO,GAAKA,EAAI,KAAQ,GAAW,GAAGA,MAE1CA,EAAI,IAAO,GAAKA,EAAI,KAAQ,GAAW,GAAGA,MAEvC,GAAGA,KACZ"}
|
package/dist/cjs/tuplify.js
DELETED
package/dist/cjs/tuplify.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tuplify.js","sources":["../../../src/tuplify.ts"],"sourcesContent":["export default function tuplify<T extends any[]>(...elements: T) {\n return elements;\n}\n"],"names":["elements"],"mappings":"4BAAc,YAAsCA,GAClD,OAAOA,CACT"}
|
package/dist/cjs/urlUtils.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";class t{constructor(t,e){this.href=t,this.as=null!=e?e:t}hrefPathname(t){const h=e(this.href);return t?`${h}/${t}`:h}asPathname(t){const h=e(this.as);return t?`${h}/${t}`:h}getQuery(){if("string"!=typeof this.href)return this.href.query}getHash(){var t;return"string"==typeof this.href?"":null!==(t=this.href.hash)&&void 0!==t?t:""}addStatic(e){return new t(this.hrefPathname(e),this.asPathname(e))}maybeAddStatic(e){return new t(this.hrefPathname(e),this.asPathname(e))}addDynamic(e,h,a=!1){const n=a?encodeURIComponent(h):h;return new t(this.hrefPathname(`[${e}]`),this.asPathname(n))}withQuery(e){const a=h(e);return new t({pathname:this.hrefPathname(),query:a,hash:this.getHash()},{pathname:this.asPathname(),query:a,hash:this.getHash()})}withHash(e){return new t({pathname:this.hrefPathname(),query:this.getQuery(),hash:e},{pathname:this.asPathname(),query:this.getQuery(),hash:e})}}function e(t){var e;return t?"string"==typeof t?t:null!==(e=t.pathname)&&void 0!==e?e:"":""}function h(t){return Object.keys(t).reduce(((e,h)=>{const a=t[h];return null!=a&&a.length>0?Object.assign(Object.assign({},e),{[h]:a}):e}),{})}exports.Route=t,exports.queryHandler=h;
|
|
2
|
-
//# sourceMappingURL=urlUtils.js.map
|
package/dist/cjs/urlUtils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"urlUtils.js","sources":["../../../src/urlUtils.ts"],"sourcesContent":["import { ParsedUrlQueryInput } from \"querystring\";\nimport { UrlObject } from \"url\";\n\ntype Url = string | UrlObject;\n\nexport type LinkObject = {\n href: Url;\n as?: Url;\n};\n\n/**\n * __Route__\n *\n * `Route` class that handles adding static and dynamic route segments to\n * existing routes. `Route` can be initialized with a \"href\" string or\n * `UrlObject` and optional \"as\" string or `UrlObject`.\n *\n * @example\n * const routeA = new Route(\"/repositories\");\n * routeA.hrefPathname() // \"/repositories\"\n * routeA.addDynamic(\"ownerName\", \"my-owner\")\n * routeA.hrefPathname() // \"repositories/[ownerName]\"\n * routeA.asPathname() // \"repositories/my-owner\"\n *\n * const routeB = new Route(\n * { pathname: \"/repositories/[ownerName]\", query: { refName: \"main\" } },\n * { pathname: \"/repositories/my-owner\", query: { refName: \"main\" } },\n * )\n * routeB.hrefPathname() // \"/repositories/[ownerName]\"\n * routeB.asPathname() // \"repositories/my-owner\"\n * routeB.getQuery() // { refName: \"main\" }\n */\nexport class Route {\n href: Url;\n\n as: Url;\n\n constructor(href: Url, as?: Url) {\n this.href = href;\n this.as = as ?? href;\n }\n\n /**\n * __hrefPathname__\n *\n * Gets pathname string from href string or `UrlObject`.\n *\n * @param addFrag Optional route fragment string to add to `href` pathname\n *\n * @returns `href` pathname string, with added route fragment if provided\n *\n * @example\n * const routeA = new Route(\"/repositories\");\n * routeA.hrefPathname() // \"/repositories\"\n * routeA.hrefPathname(\"[ownerName]\") // \"repositories/[ownerName]\"\n *\n * const routeB = new Route({ pathname: \"/repositories\" })\n * routeB.hrefPathname() // \"/repositories\"\n * routeB.hrefPathname(\"[ownerName]\") // \"repositories/[ownerName]\"\n */\n hrefPathname(addFrag?: string): string {\n const href = getPathname(this.href);\n if (!addFrag) return href;\n return `${href}/${addFrag}`;\n }\n\n /**\n * __asPathname__\n *\n * Gets pathname string from as string or `UrlObject`.\n *\n * @param addFrag Optional route fragment string to add to `as` pathname\n *\n * @returns `as` pathname string, with added route fragment if provided\n *\n * @example\n * const routeA = new Route(\"/repositories\");\n * routeA.asPathname() // \"/repositories\"\n * routeA.asPathname(\"my-username\") // \"repositories/my-username\"\n *\n * const routeB = new Route(\n * { pathname: \"/repositories/[ownerName]\" },\n * { pathname: \"/repositories/my-username\" },\n * );\n * routeB.asPathname() // \"/repositories/my-username\"\n * routeB.asPathname(\"data\") // \"repositories/my-username/data\"\n */\n asPathname(addFrag?: string): string {\n const as = getPathname(this.as);\n if (!addFrag) return as;\n return `${as}/${addFrag}`;\n }\n\n /**\n * __getQuery__\n *\n * Gets query object from the href `UrlObject`.\n *\n * @returns query object\n *\n * @example\n * const route = new Route(\"/repositories\");\n * route.withQuery({ refName: \"main\" })\n * route.getQuery() // { refName: \"main\" }\n */\n getQuery(): string | ParsedUrlQueryInput | undefined | null {\n if (typeof this.href === \"string\") return undefined;\n return this.href.query;\n }\n\n /**\n * __getHash__\n *\n * Gets hash string from the href `UrlObject`.\n *\n * @returns hash string\n *\n * @example\n * const route = new Route(\"/repositories\");\n * route.withHash(\"commitA\")\n * route.getHash() // \"commitA\"\n */\n getHash(): string {\n if (typeof this.href === \"string\") return \"\";\n return this.href.hash ?? \"\";\n }\n\n /**\n * __addStatic__\n *\n * Adds static route fragment string to a `Route`. Static route fragments look like:\n * ```ts\n * { href: \"/repositories\", as: \"/repositories\" }\n * ```\n * As opposed to dynamic route fragments which look like:\n * ```ts\n * { href: \"/[ownerName]\", as: \"/owner-value\" }\n * ```\n *\n * @param pathFrag Route fragment string to add to the url. \"/\" is automatically prepended.\n *\n * @returns new instance of `Route`\n *\n * @example\n * const route = new Route(\"/repositories\");\n * route.addStatic(\"data\")\n * route.hrefPathname() // \"/repositories/data\"\n * route.asPathname() // \"/repositories/data\"\n */\n addStatic(pathFrag: string): Route {\n return new Route(this.hrefPathname(pathFrag), this.asPathname(pathFrag));\n }\n\n /**\n * __maybeAddStatic__\n *\n * Maybe adds static route fragment string to a `Route`.\n *\n * @see this.addStatic\n *\n * @param pathFrag Optional route fragment string to add to the url. \"/\" is automatically prepended.\n *\n * @example\n * const route = new Route(\"/repositories\");\n * route.maybeAddStatic(\"data\")\n * route.hrefPathname() // \"/repositories/data\"\n * route.maybeAddStatic()\n * route.hrefPathname() // \"/repositories\"\n */\n maybeAddStatic(pathFrag?: string): Route {\n return new Route(this.hrefPathname(pathFrag), this.asPathname(pathFrag));\n }\n\n /**\n * __addDynamic__\n *\n * Adds dynamic route fragment string to a Route.\n * Dynamic route fragments look like:\n * ```ts\n * { href: \"/[ownerName]\", as: \"/owner-value\" }\n * ```\n * As opposed to static route fragments which look like:\n *\n * ```ts\n * { href: \"/repositories\", as: \"/repositories\" }\n * ```\n *\n * @param param String fragment to add to the href path. This value will be wrapped in square brackets. \"/\" is automatically prepended.\n * @param as Value of the `param` to be added to the `as` path. \"/\" is automatically prepended.\n * @param encode Default false. If true, encodes a `as` param value string as a valid component of a Uniform Resource Identifier (URI).\n *\n * @returns new instance of `Route`\n *\n * @example\n * const route = new Route(\"/repositories\");\n * route.addDynamic(\"ownerName\", \"my-owner-name\")\n * route.hrefPathname() // \"/repositories/[ownerName]\"\n * route.asPathname() // \"/repositories/my-owner-name\"\n */\n addDynamic(param: string, as: string, encode = false): Route {\n const asStr = encode ? encodeURIComponent(as) : as;\n return new Route(this.hrefPathname(`[${param}]`), this.asPathname(asStr));\n }\n\n /**\n * __withQuery__\n *\n * Adds query object to a `Route`. Looks like \"?refName=main&active=Tables\"\n * when url is formatted.\n *\n * @param q Record with fields that will be added to the query string.\n *\n * @returns new instance of `Route`\n *\n * @example\n * const route = new Route(\"/repositories/[ownerName]\", \"/repositories/my-owner\");\n * route.withQuery({ refName: \"main\", active: undefined })\n * route.hrefPathname() // { pathname: \"/repositories/[ownerName]\", query: { refName: \"main\" } }\n * route.asPathname() // { pathname: \"/repositories/my-owner\", query: { refName: \"main\" } }\n */\n withQuery(q: Record<string, string | undefined | null>): Route {\n const query = queryHandler(q);\n return new Route(\n { pathname: this.hrefPathname(), query, hash: this.getHash() },\n { pathname: this.asPathname(), query, hash: this.getHash() },\n );\n }\n\n /**\n * __withHash__\n *\n * Adds hash string to a `Route`. Looks like \"#hash-value\" when url is formatted.\n *\n * @param hash Optional hash string\n *\n * @returns new instance of Route\n *\n * @example\n * const route = new Route(\"/repositories/[ownerName]\", \"/repositories/my-owner\");\n * route.withHash({ commitId: \"commitA\" })\n * route.hrefPathname() // { pathname: \"/repositories/[ownerName]\", hash: { commitId: \"commitA\" } }\n * route.asPathname() // { pathname: \"/repositories/my-owner\", hash: { commitId: \"commitA\" } }\n */\n withHash(hash?: string): Route {\n return new Route(\n { pathname: this.hrefPathname(), query: this.getQuery(), hash },\n { pathname: this.asPathname(), query: this.getQuery(), hash },\n );\n }\n}\n\n// Gets pathname from url string or object\nfunction getPathname(as?: string | UrlObject): string {\n if (!as) return \"\";\n if (typeof as === \"string\") return as;\n return as.pathname ?? \"\";\n}\n\n// Returns query object with undefined or empty values removed\nexport function queryHandler(\n q: Record<string, string | undefined | null>,\n): string | null | ParsedUrlQueryInput | undefined {\n return Object.keys(q).reduce((prev, key) => {\n const currVal = q[key];\n if (currVal !== undefined && currVal !== null && currVal.length > 0) {\n return { ...prev, [key]: currVal };\n }\n return prev;\n }, {} as NodeJS.Dict<string>);\n}\n"],"names":["Route","constructor","href","as","this","hrefPathname","addFrag","getPathname","asPathname","getQuery","query","getHash","_a","hash","addStatic","pathFrag","maybeAddStatic","addDynamic","param","encode","asStr","encodeURIComponent","withQuery","q","queryHandler","pathname","withHash","Object","keys","reduce","prev","key","currVal","length","assign"],"mappings":"mBAgCaA,EAKX,WAAAC,CAAYC,EAAWC,GACrBC,KAAKF,KAAOA,EACZE,KAAKD,GAAKA,QAAAA,EAAMD,CAClB,CAoBA,YAAAG,CAAaC,GACX,MAAMJ,EAAOK,EAAYH,KAAKF,MAC9B,OAAKI,EACE,GAAGJ,KAAQI,IADGJ,CAEvB,CAuBA,UAAAM,CAAWF,GACT,MAAMH,EAAKI,EAAYH,KAAKD,IAC5B,OAAKG,EACE,GAAGH,KAAMG,IADKH,CAEvB,CAcA,QAAAM,GACE,GAAyB,iBAAdL,KAAKF,KAChB,OAAOE,KAAKF,KAAKQ,KACnB,CAcA,OAAAC,SACE,MAAyB,iBAAdP,KAAKF,KAA0B,GACrB,QAAdU,EAAAR,KAAKF,KAAKW,YAAI,IAAAD,EAAAA,EAAI,EAC3B,CAwBA,SAAAE,CAAUC,GACR,OAAO,IAAIf,EAAMI,KAAKC,aAAaU,GAAWX,KAAKI,WAAWO,GAChE,CAkBA,cAAAC,CAAeD,GACb,OAAO,IAAIf,EAAMI,KAAKC,aAAaU,GAAWX,KAAKI,WAAWO,GAChE,CA4BA,UAAAE,CAAWC,EAAef,EAAYgB,GAAS,GAC7C,MAAMC,EAAQD,EAASE,mBAAmBlB,GAAMA,EAChD,OAAO,IAAIH,EAAMI,KAAKC,aAAa,IAAIa,MAAWd,KAAKI,WAAWY,GACpE,CAkBA,SAAAE,CAAUC,GACR,MAAMb,EAAQc,EAAaD,GAC3B,OAAO,IAAIvB,EACT,CAAEyB,SAAUrB,KAAKC,eAAgBK,QAAOG,KAAMT,KAAKO,WACnD,CAAEc,SAAUrB,KAAKI,aAAcE,QAAOG,KAAMT,KAAKO,WAErD,CAiBA,QAAAe,CAASb,GACP,OAAO,IAAIb,EACT,CAAEyB,SAAUrB,KAAKC,eAAgBK,MAAON,KAAKK,WAAYI,QACzD,CAAEY,SAAUrB,KAAKI,aAAcE,MAAON,KAAKK,WAAYI,QAE3D,EAIF,SAASN,EAAYJ,SACnB,OAAKA,EACa,iBAAPA,EAAwBA,EACjB,UAAXA,EAAGsB,gBAAQ,IAAAb,EAAAA,EAAI,GAFN,EAGlB,CAGM,SAAUY,EACdD,GAEA,OAAOI,OAAOC,KAAKL,GAAGM,QAAO,CAACC,EAAMC,KAClC,MAAMC,EAAUT,EAAEQ,GAClB,OAAIC,SAA6CA,EAAQC,OAAS,EAChEN,OAAAO,OAAAP,OAAAO,OAAA,CAAA,EAAYJ,GAAI,CAAEC,CAACA,GAAMC,IAEpBF,CAAI,GACV,CAAA,EACL"}
|
package/dist/cjs/validators.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";const e=/\S+@\S+\.\S+/;const a=/^[-a-z0-9_]{3,32}$/g,r=/^-|^_|-$|_$|--|__|-_|_-/;function n(e){return e.length<3?"Username too short":e.length>32?"Username too long":e.toLowerCase()!==e?"Username cannot have uppercase letters":e.match(a)?e.match(r)?"Username invalid":"":"Username invalid"}exports.emailValidator=function(a){return{isValid:!!a.match(e),errorMsg:"Email format invalid"}},exports.usernameValidator=function(e){return{isValid:!!e.match(a)&&!e.match(r),errorMsg:"Username can only contain lowercase letters, dashes, and underscores and be between 3 and 32 characters",detailedErrorMsg:n(e)}};
|
|
2
|
-
//# sourceMappingURL=validators.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validators.js","sources":["../../../src/validators.ts"],"sourcesContent":["const emailRegex = /\\S+@\\S+\\.\\S+/;\n\nexport function emailValidator(s: string) {\n return {\n isValid: !!s.match(emailRegex),\n errorMsg: \"Email format invalid\",\n };\n}\n\nconst usernameRegex = /^[-a-z0-9_]{3,32}$/g;\nconst invalidRegex = /^-|^_|-$|_$|--|__|-_|_-/;\n\nexport function usernameValidator(s: string) {\n return {\n isValid: !!s.match(usernameRegex) && !s.match(invalidRegex),\n errorMsg:\n \"Username can only contain lowercase letters, dashes, and underscores and be between 3 and 32 characters\",\n detailedErrorMsg: getUsernameErrorMsg(s),\n };\n}\n\nfunction getUsernameErrorMsg(s: string) {\n if (s.length < 3) {\n return \"Username too short\";\n }\n if (s.length > 32) {\n return \"Username too long\";\n }\n if (s.toLowerCase() !== s) {\n return \"Username cannot have uppercase letters\";\n }\n if (!s.match(usernameRegex)) {\n return \"Username invalid\";\n }\n if (s.match(invalidRegex)) {\n return \"Username invalid\";\n }\n return \"\";\n}\n"],"names":["emailRegex","usernameRegex","invalidRegex","getUsernameErrorMsg","s","length","toLowerCase","match","isValid","errorMsg","detailedErrorMsg"],"mappings":"aAAA,MAAMA,EAAa,eASnB,MAAMC,EAAgB,sBAChBC,EAAe,0BAWrB,SAASC,EAAoBC,GAC3B,OAAIA,EAAEC,OAAS,EACN,qBAELD,EAAEC,OAAS,GACN,oBAELD,EAAEE,gBAAkBF,EACf,yCAEJA,EAAEG,MAAMN,GAGTG,EAAEG,MAAML,GACH,mBAEF,GALE,kBAMX,wBApCM,SAAyBE,GAC7B,MAAO,CACLI,UAAWJ,EAAEG,MAAMP,GACnBS,SAAU,uBAEd,4BAKM,SAA4BL,GAChC,MAAO,CACLI,UAAWJ,EAAEG,MAAMN,KAAmBG,EAAEG,MAAML,GAC9CO,SACE,0GACFC,iBAAkBP,EAAoBC,GAE1C"}
|
package/dist/compareArray.d.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
declare const oneHour: number;
|
|
2
|
-
declare function getUTCDateAndTimeString(date: Date): string;
|
|
3
|
-
declare function getDateString(date: Date): string;
|
|
4
|
-
declare function getUTCDateString(date: Date): string;
|
|
5
|
-
declare function getUTCTimeString(date: Date): string;
|
|
6
|
-
declare function getNow(): Date;
|
|
7
|
-
declare function getDateMinusHours(date: Date, hours: number): Date;
|
|
8
|
-
declare function getUTCNowDateString(): string;
|
|
9
|
-
declare function getLongDateTimeString(d: Date): string;
|
|
10
|
-
declare function getTimeWithSeconds(date: Date): string;
|
|
11
|
-
declare function getTimeAgoString(oldDateTime: number): string;
|
|
12
|
-
declare function areTimeAgosEqual(a: Date, b: Date): boolean;
|
|
13
|
-
declare function convertToUTCDate(d: Date): Date;
|
|
14
|
-
|
|
15
|
-
export { areTimeAgosEqual, convertToUTCDate, getDateMinusHours, getDateString, getLongDateTimeString, getNow, getTimeAgoString, getTimeWithSeconds, getUTCDateAndTimeString, getUTCDateString, getUTCNowDateString, getUTCTimeString, oneHour };
|
package/dist/dedupe.d.d.ts
DELETED
package/dist/enumKeys.d.d.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* enumKeys takes an enum and returns an array of strongly typed keys. Useful to iterate over string enums.
|
|
3
|
-
* @param obj The enum
|
|
4
|
-
* @returns An array of strong typed keys
|
|
5
|
-
* @example
|
|
6
|
-
*
|
|
7
|
-
* enum MyEnum {
|
|
8
|
-
* Key1 = "value1",
|
|
9
|
-
* Key2 = "value2",
|
|
10
|
-
* Key3 = "value3"
|
|
11
|
-
* }
|
|
12
|
-
*
|
|
13
|
-
* // ks's type is ("Key1" || "Key2" || "Key3")[]
|
|
14
|
-
* const ks = enumKeys(MyEnum);
|
|
15
|
-
*
|
|
16
|
-
* // keys' type is MyEnum[]
|
|
17
|
-
* // Unfortunately, we can't do this inside enumKeys because there is no generic type constraint for enums.
|
|
18
|
-
* const keys = ks.map(k => MyEnum[k])
|
|
19
|
-
*/
|
|
20
|
-
declare function enumKeys<O extends object, K extends keyof O = keyof O>(obj: O): K[];
|
|
21
|
-
|
|
22
|
-
export { enumKeys as default };
|
package/dist/esm/compareArray.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compareArray.js","sources":["../../../src/compareArray.ts"],"sourcesContent":["export default function compareArray(arr1: string[], arr2: string[]): boolean {\n if (arr1.length !== arr2.length) return false;\n const sortedArr1 = arr1.sort();\n const sortedArr2 = arr2.sort();\n for (let i = 0; i < arr1.length; i++) {\n if (sortedArr1[i] !== sortedArr2[i]) {\n return false;\n }\n }\n return true;\n}\n"],"names":["compareArray","arr1","arr2","length","sortedArr1","sort","sortedArr2","i"],"mappings":"AAAc,SAAUA,EAAaC,EAAgBC,GACnD,GAAID,EAAKE,SAAWD,EAAKC,OAAQ,OAAO,EACxC,MAAMC,EAAaH,EAAKI,OAClBC,EAAaJ,EAAKG,OACxB,IAAK,IAAIE,EAAI,EAAGA,EAAIN,EAAKE,OAAQI,IAC/B,GAAIH,EAAWG,KAAOD,EAAWC,GAC/B,OAAO,EAGX,OAAO,CACT"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{format as t}from"timeago.js";const e=36e5;function n(t){return`${o(t)} ${`${u(t)}:${s(t.getUTCSeconds())}`}`}function r(t){const e=s(t.getMonth()+1),n=s(t.getDate());return`${t.getFullYear()}-${e}-${n}`}function o(t){const e=s(t.getUTCMonth()+1),n=s(t.getUTCDate());return`${t.getUTCFullYear()}-${e}-${n}`}function u(t){const e=t.getUTCHours(),n=t.getUTCMinutes();return`${s(e)}:${s(n)}`}function s(t){return t<10?`0${t}`:String(t)}function c(){return new Date(Date.now())}function i(t,e){return 0===e||t.setHours(t.getHours()-e),t}function g(){return o(c())}function $(t){const[e,n,r]=t.toLocaleString().split(" "),o=r?` ${r}`:"";return`${e} ${n.slice(0,-3)}${o}`}function f(t){const e=function(t){return`${s(t.getHours())}:${s(t.getMinutes())}`}(t);return`${e}:${s(t.getSeconds())}`}function a(e){return t(new Date(e))}function C(e,n){return t(e)===t(n)}function T(t){const e=new Date(t);return e.setUTCFullYear(t.getFullYear()),e.setUTCMonth(t.getMonth()),e.setUTCDate(t.getDate()),e.setUTCHours(t.getHours()),e.setUTCMinutes(t.getMinutes()),e.setUTCSeconds(t.getSeconds()),e}export{C as areTimeAgosEqual,T as convertToUTCDate,i as getDateMinusHours,r as getDateString,$ as getLongDateTimeString,c as getNow,a as getTimeAgoString,f as getTimeWithSeconds,n as getUTCDateAndTimeString,o as getUTCDateString,g as getUTCNowDateString,u as getUTCTimeString,e as oneHour};
|
|
2
|
-
//# sourceMappingURL=dateConversions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dateConversions.js","sources":["../../../src/dateConversions.ts"],"sourcesContent":["import { format } from \"timeago.js\";\n\n// TIME IN MS\nconst oneSecond = 1000;\nconst oneMinute = oneSecond * 60;\nexport const oneHour = oneMinute * 60;\n\n// Gets UTC date in format YYYY-MM-DD HH:MM:SS\nexport function getUTCDateAndTimeString(date: Date): string {\n const d = getUTCDateString(date);\n const t = `${getUTCTimeString(date)}:${zeroPadNumber(date.getUTCSeconds())}`;\n return `${d} ${t}`;\n}\n\n// Gets date in format YYYY-MM-DD\nexport function getDateString(date: Date): string {\n const month = zeroPadNumber(date.getMonth() + 1); // January is 0\n const day = zeroPadNumber(date.getDate());\n const year = date.getFullYear();\n return `${year}-${month}-${day}`;\n}\n\n// Gets UTC date in format YYYY-MM-DD\nexport function getUTCDateString(date: Date): string {\n const month = zeroPadNumber(date.getUTCMonth() + 1); // January is 0\n const day = zeroPadNumber(date.getUTCDate());\n const year = date.getUTCFullYear();\n return `${year}-${month}-${day}`;\n}\n\n// Gets UTC time in format HH:MM:SS\nexport function getUTCTimeString(date: Date): string {\n const hour = date.getUTCHours();\n const mins = date.getUTCMinutes();\n return `${zeroPadNumber(hour)}:${zeroPadNumber(mins)}`;\n}\n\nfunction zeroPadNumber(num: number): string {\n if (num < 10) {\n return `0${num}`;\n }\n return String(num);\n}\n\nexport function getNow(): Date {\n return new Date(Date.now());\n}\n\nexport function getDateMinusHours(date: Date, hours: number): Date {\n if (hours === 0) return date;\n date.setHours(date.getHours() - hours);\n return date;\n}\n\nexport function getUTCNowDateString(): string {\n return getUTCDateString(getNow());\n}\n\n// Gets local time in format \"M/DD/YYYY, HH:MM [AM|PM]\"\nexport function getLongDateTimeString(d: Date): string {\n const [date, time, period] = d.toLocaleString().split(\" \");\n const per = period ? ` ${period}` : \"\";\n return `${date} ${time.slice(0, -3)}${per}`;\n}\n\nfunction getTime(date: Date): string {\n const hour = zeroPadNumber(date.getHours());\n const mins = zeroPadNumber(date.getMinutes());\n return `${hour}:${mins}`;\n}\n\nexport function getTimeWithSeconds(date: Date): string {\n const t = getTime(date);\n return `${t}:${zeroPadNumber(date.getSeconds())}`;\n}\n\nexport function getTimeAgoString(oldDateTime: number): string {\n return format(new Date(oldDateTime));\n}\n\nexport function areTimeAgosEqual(a: Date, b: Date): boolean {\n return format(a) === format(b);\n}\n\n// Manually convert local date to UTC\nexport function convertToUTCDate(d: Date): Date {\n const utcDate = new Date(d);\n utcDate.setUTCFullYear(d.getFullYear());\n utcDate.setUTCMonth(d.getMonth());\n utcDate.setUTCDate(d.getDate());\n utcDate.setUTCHours(d.getHours());\n utcDate.setUTCMinutes(d.getMinutes());\n utcDate.setUTCSeconds(d.getSeconds());\n return utcDate;\n}\n"],"names":["oneHour","oneMinute","getUTCDateAndTimeString","date","getUTCDateString","getUTCTimeString","zeroPadNumber","getUTCSeconds","getDateString","month","getMonth","day","getDate","getFullYear","getUTCMonth","getUTCDate","getUTCFullYear","hour","getUTCHours","mins","getUTCMinutes","num","String","getNow","Date","now","getDateMinusHours","hours","setHours","getHours","getUTCNowDateString","getLongDateTimeString","d","time","period","toLocaleString","split","per","slice","getTimeWithSeconds","t","getMinutes","getTime","getSeconds","getTimeAgoString","oldDateTime","format","areTimeAgosEqual","a","b","convertToUTCDate","utcDate","setUTCFullYear","setUTCMonth","setUTCDate","setUTCHours","setUTCMinutes","setUTCSeconds"],"mappings":"oCAGA,MAEaA,EAAUC,KAGjB,SAAUC,EAAwBC,GAGtC,MAAO,GAFGC,EAAiBD,MACjB,GAAGE,EAAiBF,MAASG,EAAcH,EAAKI,oBAE5D,CAGM,SAAUC,EAAcL,GAC5B,MAAMM,EAAQH,EAAcH,EAAKO,WAAa,GACxCC,EAAML,EAAcH,EAAKS,WAE/B,MAAO,GADMT,EAAKU,iBACAJ,KAASE,GAC7B,CAGM,SAAUP,EAAiBD,GAC/B,MAAMM,EAAQH,EAAcH,EAAKW,cAAgB,GAC3CH,EAAML,EAAcH,EAAKY,cAE/B,MAAO,GADMZ,EAAKa,oBACAP,KAASE,GAC7B,CAGM,SAAUN,EAAiBF,GAC/B,MAAMc,EAAOd,EAAKe,cACZC,EAAOhB,EAAKiB,gBAClB,MAAO,GAAGd,EAAcW,MAASX,EAAca,IACjD,CAEA,SAASb,EAAce,GACrB,OAAIA,EAAM,GACD,IAAIA,IAENC,OAAOD,EAChB,UAEgBE,IACd,OAAO,IAAIC,KAAKA,KAAKC,MACvB,CAEM,SAAUC,EAAkBvB,EAAYwB,GAC5C,OAAc,IAAVA,GACJxB,EAAKyB,SAASzB,EAAK0B,WAAaF,GADRxB,CAG1B,UAEgB2B,IACd,OAAO1B,EAAiBmB,IAC1B,CAGM,SAAUQ,EAAsBC,GACpC,MAAO7B,EAAM8B,EAAMC,GAAUF,EAAEG,iBAAiBC,MAAM,KAChDC,EAAMH,EAAS,IAAIA,IAAW,GACpC,MAAO,GAAG/B,KAAQ8B,EAAKK,MAAM,GAAG,KAAMD,GACxC,CAQM,SAAUE,EAAmBpC,GACjC,MAAMqC,EAPR,SAAiBrC,GAGf,MAAO,GAFMG,EAAcH,EAAK0B,eACnBvB,EAAcH,EAAKsC,eAElC,CAGYC,CAAQvC,GAClB,MAAO,GAAGqC,KAAKlC,EAAcH,EAAKwC,eACpC,CAEM,SAAUC,EAAiBC,GAC/B,OAAOC,EAAO,IAAItB,KAAKqB,GACzB,CAEM,SAAUE,EAAiBC,EAASC,GACxC,OAAOH,EAAOE,KAAOF,EAAOG,EAC9B,CAGM,SAAUC,EAAiBlB,GAC/B,MAAMmB,EAAU,IAAI3B,KAAKQ,GAOzB,OANAmB,EAAQC,eAAepB,EAAEnB,eACzBsC,EAAQE,YAAYrB,EAAEtB,YACtByC,EAAQG,WAAWtB,EAAEpB,WACrBuC,EAAQI,YAAYvB,EAAEH,YACtBsB,EAAQK,cAAcxB,EAAES,cACxBU,EAAQM,cAAczB,EAAEW,cACjBQ,CACT"}
|
package/dist/esm/dedupe.js
DELETED
package/dist/esm/dedupe.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dedupe.js","sources":["../../../src/dedupe.ts"],"sourcesContent":["// Removes duplicates from array for primitive types\nexport default function dedupe<T>(arr: T[]): T[] {\n return Array.from(new Set(arr));\n}\n"],"names":["dedupe","arr","Array","from","Set"],"mappings":"AACc,SAAUA,EAAUC,GAChC,OAAOC,MAAMC,KAAK,IAAIC,IAAIH,GAC5B"}
|
package/dist/esm/enumKeys.js
DELETED
package/dist/esm/enumKeys.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"enumKeys.js","sources":["../../../src/enumKeys.ts"],"sourcesContent":["/**\n * enumKeys takes an enum and returns an array of strongly typed keys. Useful to iterate over string enums.\n * @param obj The enum\n * @returns An array of strong typed keys\n * @example\n *\n * enum MyEnum {\n * Key1 = \"value1\",\n * Key2 = \"value2\",\n * Key3 = \"value3\"\n * }\n *\n * // ks's type is (\"Key1\" || \"Key2\" || \"Key3\")[]\n * const ks = enumKeys(MyEnum);\n *\n * // keys' type is MyEnum[]\n * // Unfortunately, we can't do this inside enumKeys because there is no generic type constraint for enums.\n * const keys = ks.map(k => MyEnum[k])\n */\nfunction enumKeys<O extends object, K extends keyof O = keyof O>(obj: O): K[] {\n return Object.keys(obj)\n .filter(k => Number.isNaN(+k))\n .map(k => k as K);\n}\n\nexport default enumKeys;\n"],"names":["enumKeys","obj","Object","keys","filter","k","Number","isNaN","map"],"mappings":"AAmBA,SAASA,EAAwDC,GAC/D,OAAOC,OAAOC,KAAKF,GAChBG,QAAOC,GAAKC,OAAOC,OAAOF,KAC1BG,KAAIH,GAAKA,GACd"}
|
package/dist/esm/excerpt.js
DELETED
package/dist/esm/excerpt.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"excerpt.js","sources":["../../../src/excerpt.ts"],"sourcesContent":["const fullWidthRegex = /[^\\u0020-\\u007E]/;\n\n// Half-width characters have a width of 1, while full-width characters, like those in Japanese and Chinese, have a width of 2.\nfunction truncate(str: string, len: number): string {\n let truncated = \"\";\n let width = 0;\n\n // eslint-disable-next-line no-restricted-syntax\n for (const char of str) {\n width += fullWidthRegex.test(char) ? 2 : 1;\n\n if (width > len - 1) {\n return `${truncated}…`;\n }\n\n truncated += char;\n }\n\n return truncated;\n}\n\nexport default function excerpt(str: string, len = 100): string {\n return truncate(str, len);\n}\n"],"names":["fullWidthRegex","excerpt","str","len","truncated","width","char","test","truncate"],"mappings":"AAAA,MAAMA,EAAiB,mBAqBT,SAAUC,EAAQC,EAAaC,EAAM,KACjD,OAnBF,SAAkBD,EAAaC,GAC7B,IAAIC,EAAY,GACZC,EAAQ,EAGZ,IAAK,MAAMC,KAAQJ,EAAK,CAGtB,GAFAG,GAASL,EAAeO,KAAKD,GAAQ,EAAI,EAErCD,EAAQF,EAAM,EAChB,MAAO,GAAGC,KAGZA,GAAaE,CACf,CAEA,OAAOF,CACT,CAGSI,CAASN,EAAKC,EACvB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fakeEscapePress.js","sources":["../../../src/fakeEscapePress.ts"],"sourcesContent":["/* \nreactjs-popup stays in it's absolute position when scrolled, \nthis is a workaround until the issue is fixed \nhttps://github.com/yjose/reactjs-popup/issues/208\n\nMake sure to include the following in your react component\n useEffectOnMount(() => {\n document.addEventListener(\"wheel\", fakeEscapePress);\n return () => document.removeEventListener(\"wheel\", fakeEscapePress);\n });\n*/\n\nexport default function fakeEscapePress() {\n document.dispatchEvent(\n new KeyboardEvent(\"keydown\", {\n key: \"Escape\",\n }),\n );\n document.dispatchEvent(\n new KeyboardEvent(\"keyup\", {\n key: \"Escape\",\n }),\n );\n}\n"],"names":["fakeEscapePress","document","dispatchEvent","KeyboardEvent","key"],"mappings":"AAYc,SAAUA,IACtBC,SAASC,cACP,IAAIC,cAAc,UAAW,CAC3BC,IAAK,YAGTH,SAASC,cACP,IAAIC,cAAc,QAAS,CACzBC,IAAK,WAGX"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"initialUppercase.js","sources":["../../../src/initialUppercase.ts"],"sourcesContent":["export default function initialUppercase(s: string): string {\n const [first, ...rest] = s;\n return [first.toLocaleUpperCase(), ...rest].join(\"\");\n}\n"],"names":["initialUppercase","s","first","rest","toLocaleUpperCase","join"],"mappings":"AAAc,SAAUA,EAAiBC,GACvC,MAAOC,KAAUC,GAAQF,EACzB,MAAO,CAACC,EAAME,uBAAwBD,GAAME,KAAK,GACnD"}
|
package/dist/esm/keycodes.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var E;!function(E){E[E.BACKSPACE=8]="BACKSPACE",E[E.TAB=9]="TAB",E[E.ENTER=13]="ENTER",E[E.SHIFT=16]="SHIFT",E[E.CTRL=17]="CTRL",E[E.ALT=18]="ALT",E[E.PAUSE=19]="PAUSE",E[E.CAPS_LOCK=20]="CAPS_LOCK",E[E.ESCAPE=27]="ESCAPE",E[E.SPACE=32]="SPACE",E[E.PAGE_UP=33]="PAGE_UP",E[E.PAGE_DOWN=34]="PAGE_DOWN",E[E.END=35]="END",E[E.HOME=36]="HOME",E[E.LEFT_ARROW=37]="LEFT_ARROW",E[E.UP_ARROW=38]="UP_ARROW",E[E.RIGHT_ARROW=39]="RIGHT_ARROW",E[E.DOWN_ARROW=40]="DOWN_ARROW",E[E.INSERT=45]="INSERT",E[E.DELETE=46]="DELETE",E[E.KEY_0=48]="KEY_0",E[E.KEY_1=49]="KEY_1",E[E.KEY_2=50]="KEY_2",E[E.KEY_3=51]="KEY_3",E[E.KEY_4=52]="KEY_4",E[E.KEY_5=53]="KEY_5",E[E.KEY_6=54]="KEY_6",E[E.KEY_7=55]="KEY_7",E[E.KEY_8=56]="KEY_8",E[E.KEY_9=57]="KEY_9",E[E.KEY_A=65]="KEY_A",E[E.KEY_B=66]="KEY_B",E[E.KEY_C=67]="KEY_C",E[E.KEY_D=68]="KEY_D",E[E.KEY_E=69]="KEY_E",E[E.KEY_F=70]="KEY_F",E[E.KEY_G=71]="KEY_G",E[E.KEY_H=72]="KEY_H",E[E.KEY_I=73]="KEY_I",E[E.KEY_J=74]="KEY_J",E[E.KEY_K=75]="KEY_K",E[E.KEY_L=76]="KEY_L",E[E.KEY_M=77]="KEY_M",E[E.KEY_N=78]="KEY_N",E[E.KEY_O=79]="KEY_O",E[E.KEY_P=80]="KEY_P",E[E.KEY_Q=81]="KEY_Q",E[E.KEY_R=82]="KEY_R",E[E.KEY_S=83]="KEY_S",E[E.KEY_T=84]="KEY_T",E[E.KEY_U=85]="KEY_U",E[E.KEY_V=86]="KEY_V",E[E.KEY_W=87]="KEY_W",E[E.KEY_X=88]="KEY_X",E[E.KEY_Y=89]="KEY_Y",E[E.KEY_Z=90]="KEY_Z",E[E.LEFT_META=91]="LEFT_META",E[E.RIGHT_META=92]="RIGHT_META",E[E.SELECT=93]="SELECT",E[E.NUMPAD_0=96]="NUMPAD_0",E[E.NUMPAD_1=97]="NUMPAD_1",E[E.NUMPAD_2=98]="NUMPAD_2",E[E.NUMPAD_3=99]="NUMPAD_3",E[E.NUMPAD_4=100]="NUMPAD_4",E[E.NUMPAD_5=101]="NUMPAD_5",E[E.NUMPAD_6=102]="NUMPAD_6",E[E.NUMPAD_7=103]="NUMPAD_7",E[E.NUMPAD_8=104]="NUMPAD_8",E[E.NUMPAD_9=105]="NUMPAD_9",E[E.MULTIPLY=106]="MULTIPLY",E[E.ADD=107]="ADD",E[E.SUBTRACT=109]="SUBTRACT",E[E.DECIMAL=110]="DECIMAL",E[E.DIVIDE=111]="DIVIDE",E[E.F1=112]="F1",E[E.F2=113]="F2",E[E.F3=114]="F3",E[E.F4=115]="F4",E[E.F5=116]="F5",E[E.F6=117]="F6",E[E.F7=118]="F7",E[E.F8=119]="F8",E[E.F9=120]="F9",E[E.F10=121]="F10",E[E.F11=122]="F11",E[E.F12=123]="F12",E[E.NUM_LOCK=144]="NUM_LOCK",E[E.SCROLL_LOCK=145]="SCROLL_LOCK",E[E.SEMICOLON=186]="SEMICOLON",E[E.EQUALS=187]="EQUALS",E[E.COMMA=188]="COMMA",E[E.DASH=189]="DASH",E[E.PERIOD=190]="PERIOD",E[E.FORWARD_SLASH=191]="FORWARD_SLASH",E[E.GRAVE_ACCENT=192]="GRAVE_ACCENT",E[E.OPEN_BRACKET=219]="OPEN_BRACKET",E[E.BACK_SLASH=220]="BACK_SLASH",E[E.CLOSE_BRACKET=221]="CLOSE_BRACKET",E[E.SINGLE_QUOTE=222]="SINGLE_QUOTE"}(E||(E={}));export{E as KeyCodes};
|
|
2
|
-
//# sourceMappingURL=keycodes.js.map
|
package/dist/esm/keycodes.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keycodes.js","sources":["../../../src/keycodes.ts"],"sourcesContent":["export enum KeyCodes {\n BACKSPACE = 8,\n TAB = 9,\n ENTER = 13,\n SHIFT = 16,\n CTRL = 17,\n ALT = 18,\n PAUSE = 19,\n CAPS_LOCK = 20,\n ESCAPE = 27,\n SPACE = 32,\n PAGE_UP = 33,\n PAGE_DOWN = 34,\n END = 35,\n HOME = 36,\n LEFT_ARROW = 37,\n UP_ARROW = 38,\n RIGHT_ARROW = 39,\n DOWN_ARROW = 40,\n INSERT = 45,\n DELETE = 46,\n KEY_0 = 48,\n KEY_1 = 49,\n KEY_2 = 50,\n KEY_3 = 51,\n KEY_4 = 52,\n KEY_5 = 53,\n KEY_6 = 54,\n KEY_7 = 55,\n KEY_8 = 56,\n KEY_9 = 57,\n KEY_A = 65,\n KEY_B = 66,\n KEY_C = 67,\n KEY_D = 68,\n KEY_E = 69,\n KEY_F = 70,\n KEY_G = 71,\n KEY_H = 72,\n KEY_I = 73,\n KEY_J = 74,\n KEY_K = 75,\n KEY_L = 76,\n KEY_M = 77,\n KEY_N = 78,\n KEY_O = 79,\n KEY_P = 80,\n KEY_Q = 81,\n KEY_R = 82,\n KEY_S = 83,\n KEY_T = 84,\n KEY_U = 85,\n KEY_V = 86,\n KEY_W = 87,\n KEY_X = 88,\n KEY_Y = 89,\n KEY_Z = 90,\n LEFT_META = 91,\n RIGHT_META = 92,\n SELECT = 93,\n NUMPAD_0 = 96,\n NUMPAD_1 = 97,\n NUMPAD_2 = 98,\n NUMPAD_3 = 99,\n NUMPAD_4 = 100,\n NUMPAD_5 = 101,\n NUMPAD_6 = 102,\n NUMPAD_7 = 103,\n NUMPAD_8 = 104,\n NUMPAD_9 = 105,\n MULTIPLY = 106,\n ADD = 107,\n SUBTRACT = 109,\n DECIMAL = 110,\n DIVIDE = 111,\n F1 = 112,\n F2 = 113,\n F3 = 114,\n F4 = 115,\n F5 = 116,\n F6 = 117,\n F7 = 118,\n F8 = 119,\n F9 = 120,\n F10 = 121,\n F11 = 122,\n F12 = 123,\n NUM_LOCK = 144,\n SCROLL_LOCK = 145,\n SEMICOLON = 186,\n EQUALS = 187,\n COMMA = 188,\n DASH = 189,\n PERIOD = 190,\n FORWARD_SLASH = 191,\n GRAVE_ACCENT = 192,\n OPEN_BRACKET = 219,\n BACK_SLASH = 220,\n CLOSE_BRACKET = 221,\n SINGLE_QUOTE = 222,\n}\n"],"names":["KeyCodes"],"mappings":"IAAYA,GAAZ,SAAYA,GACVA,EAAAA,EAAA,UAAA,GAAA,YACAA,EAAAA,EAAA,IAAA,GAAA,MACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,KAAA,IAAA,OACAA,EAAAA,EAAA,IAAA,IAAA,MACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,UAAA,IAAA,YACAA,EAAAA,EAAA,OAAA,IAAA,SACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,QAAA,IAAA,UACAA,EAAAA,EAAA,UAAA,IAAA,YACAA,EAAAA,EAAA,IAAA,IAAA,MACAA,EAAAA,EAAA,KAAA,IAAA,OACAA,EAAAA,EAAA,WAAA,IAAA,aACAA,EAAAA,EAAA,SAAA,IAAA,WACAA,EAAAA,EAAA,YAAA,IAAA,cACAA,EAAAA,EAAA,WAAA,IAAA,aACAA,EAAAA,EAAA,OAAA,IAAA,SACAA,EAAAA,EAAA,OAAA,IAAA,SACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,MAAA,IAAA,QACAA,EAAAA,EAAA,UAAA,IAAA,YACAA,EAAAA,EAAA,WAAA,IAAA,aACAA,EAAAA,EAAA,OAAA,IAAA,SACAA,EAAAA,EAAA,SAAA,IAAA,WACAA,EAAAA,EAAA,SAAA,IAAA,WACAA,EAAAA,EAAA,SAAA,IAAA,WACAA,EAAAA,EAAA,SAAA,IAAA,WACAA,EAAAA,EAAA,SAAA,KAAA,WACAA,EAAAA,EAAA,SAAA,KAAA,WACAA,EAAAA,EAAA,SAAA,KAAA,WACAA,EAAAA,EAAA,SAAA,KAAA,WACAA,EAAAA,EAAA,SAAA,KAAA,WACAA,EAAAA,EAAA,SAAA,KAAA,WACAA,EAAAA,EAAA,SAAA,KAAA,WACAA,EAAAA,EAAA,IAAA,KAAA,MACAA,EAAAA,EAAA,SAAA,KAAA,WACAA,EAAAA,EAAA,QAAA,KAAA,UACAA,EAAAA,EAAA,OAAA,KAAA,SACAA,EAAAA,EAAA,GAAA,KAAA,KACAA,EAAAA,EAAA,GAAA,KAAA,KACAA,EAAAA,EAAA,GAAA,KAAA,KACAA,EAAAA,EAAA,GAAA,KAAA,KACAA,EAAAA,EAAA,GAAA,KAAA,KACAA,EAAAA,EAAA,GAAA,KAAA,KACAA,EAAAA,EAAA,GAAA,KAAA,KACAA,EAAAA,EAAA,GAAA,KAAA,KACAA,EAAAA,EAAA,GAAA,KAAA,KACAA,EAAAA,EAAA,IAAA,KAAA,MACAA,EAAAA,EAAA,IAAA,KAAA,MACAA,EAAAA,EAAA,IAAA,KAAA,MACAA,EAAAA,EAAA,SAAA,KAAA,WACAA,EAAAA,EAAA,YAAA,KAAA,cACAA,EAAAA,EAAA,UAAA,KAAA,YACAA,EAAAA,EAAA,OAAA,KAAA,SACAA,EAAAA,EAAA,MAAA,KAAA,QACAA,EAAAA,EAAA,KAAA,KAAA,OACAA,EAAAA,EAAA,OAAA,KAAA,SACAA,EAAAA,EAAA,cAAA,KAAA,gBACAA,EAAAA,EAAA,aAAA,KAAA,eACAA,EAAAA,EAAA,aAAA,KAAA,eACAA,EAAAA,EAAA,WAAA,KAAA,aACAA,EAAAA,EAAA,cAAA,KAAA,gBACAA,EAAAA,EAAA,aAAA,KAAA,cACD,CApGD,CAAYA,IAAAA,EAAQ,CAAA"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import n from"../initialUppercase.js";import t from"../nTimes.js";import r from"../randomArrayItem.js";import e from"./words.js";function o(n,t){const[r,e]=n<t?[n,t]:[t,n],o=e-r;return Math.floor(Math.random()*o)+r}function i(n){return n.split(/[\s,]+/)}const s=function(e){const s="string"==typeof e.words?i(e.words):e.words;if(0===s.length)throw new Error("Loremer refuses to be initialized with an empty dictionary. Try again and give him some damn words this time.");function a({trueSingleWord:n,minLength:t,maxLength:e,matchRegex:o}={}){const i=n||t||e||o?s.filter((r=>!(o&&!r.match(o)||n&&r.indexOf(" ")>-1||t&&t>0&&r.length<t||e&&e>0&&r.length>e))):s;if(!i.length)throw new Error(`Loremer's dictionary doesn't contain any words that satisfy the given constraints: ${JSON.stringify({maxLength:e,minLength:t,trueSingleWord:n,matchRegex:String(o)})}`);return r(i)}function m(n){return t(n,a)}const c={min:8,max:13};function g(t={}){const e=Object.assign(Object.assign({},c),t),[i,...s]=m(o(e.min,e.max));return[n(i),...s].join(" ")+r([".",".",".",".","!","?"])}function u(n){return t(n,g)}return{word:a,words:m,resourceNameSegment:function(){return a({matchRegex:/^[-a-zA-Z_]{3,32}$/,trueSingleWord:!0})},sentence:g,sentences:u,paragraph:function(){return u(o(2,5)).join(" ")}}}({words:e()});export{s as loremer,i as parseWords};
|
|
2
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/loremer/index.ts"],"sourcesContent":["import initialUppercase from \"../initialUppercase\";\nimport nTimes from \"../nTimes\";\nimport randomArrayItem from \"../randomArrayItem\";\nimport defaultWords from \"./words\";\n\ntype LoremerOptions = { words: string[] | string };\n\n// custom lorem ipsum generator: https://en.wikipedia.org/wiki/Lorem_ipsum\nexport default function Loremer(opts: LoremerOptions) {\n const _words =\n typeof opts.words === \"string\" ? parseWords(opts.words) : opts.words;\n\n if (_words.length === 0) {\n throw new Error(\n \"Loremer refuses to be initialized with an empty dictionary. Try again and give him some damn words this time.\",\n );\n }\n\n type WordOptions = {\n // Some of the \"words\" in the default dictionary are actually more than one word.\n // Accept an option to _actually_ limit the generator to a single word.\n trueSingleWord?: boolean;\n matchRegex?: RegExp;\n minLength?: number;\n maxLength?: number;\n };\n function word({\n trueSingleWord,\n minLength,\n maxLength,\n matchRegex,\n }: WordOptions = {}): string {\n const hasCriteria = trueSingleWord || minLength || maxLength || matchRegex;\n\n // Filter words by criteria:\n const matchingWords = hasCriteria\n ? _words.filter(\n w =>\n // If there's a regex specified, reject non-matches\n !(matchRegex && !w.match(matchRegex)) &&\n // If we want a trueSingleWord, reject words with spaces\n !(trueSingleWord && w.indexOf(\" \") > -1) &&\n // If min or max lengths are specified, enforce them\n !(minLength && minLength > 0 && w.length < minLength) &&\n !(maxLength && maxLength > 0 && w.length > maxLength),\n )\n : _words;\n\n if (!matchingWords.length) {\n throw new Error(\n `Loremer's dictionary doesn't contain any words that satisfy the given constraints: ${JSON.stringify(\n {\n maxLength,\n minLength,\n trueSingleWord,\n matchRegex: String(matchRegex),\n },\n )}`,\n );\n }\n\n return randomArrayItem(matchingWords);\n }\n\n function resourceNameSegment() {\n return word({\n matchRegex: /^[-a-zA-Z_]{3,32}$/,\n trueSingleWord: true,\n });\n }\n\n function words(n: number) {\n return nTimes(n, word);\n }\n\n type SentenceOptions = {\n max?: number;\n min?: number;\n };\n const defaultOptions = { min: 8, max: 13 };\n function sentence(options: SentenceOptions = {}) {\n const o = { ...defaultOptions, ...options };\n const [first, ...rest] = words(randomInRange(o.min, o.max));\n return (\n [initialUppercase(first), ...rest].join(\" \") + randomEndingPunctuation()\n );\n }\n\n function sentences(n: number) {\n return nTimes(n, sentence);\n }\n\n function paragraph() {\n return sentences(randomInRange(2, 5)).join(\" \");\n }\n\n return { word, words, resourceNameSegment, sentence, sentences, paragraph };\n}\n\nfunction randomInRange(a: number, b: number) {\n const [lower, upper] = a < b ? [a, b] : [b, a];\n\n const range = upper - lower;\n return Math.floor(Math.random() * range) + lower;\n}\n\nfunction randomEndingPunctuation() {\n return randomArrayItem([\".\", \".\", \".\", \".\", \"!\", \"?\"]);\n}\n\nexport function parseWords(words: string): string[] {\n return words.split(/[\\s,]+/);\n}\n\nexport const loremer = Loremer({ words: defaultWords() });\n"],"names":["randomInRange","a","b","lower","upper","range","Math","floor","random","parseWords","words","split","loremer","opts","_words","length","Error","word","trueSingleWord","minLength","maxLength","matchRegex","matchingWords","filter","w","match","indexOf","JSON","stringify","String","randomArrayItem","n","nTimes","defaultOptions","min","max","sentence","options","o","Object","assign","first","rest","initialUppercase","join","sentences","resourceNameSegment","paragraph","Loremer","defaultWords"],"mappings":"iIAmGA,SAASA,EAAcC,EAAWC,GAChC,MAAOC,EAAOC,GAASH,EAAIC,EAAI,CAACD,EAAGC,GAAK,CAACA,EAAGD,GAEtCI,EAAQD,EAAQD,EACtB,OAAOG,KAAKC,MAAMD,KAAKE,SAAWH,GAASF,CAC7C,CAMM,SAAUM,EAAWC,GACzB,OAAOA,EAAMC,MAAM,SACrB,CAEO,MAAMC,EA1GC,SAAkBC,GAC9B,MAAMC,EACkB,iBAAfD,EAAKH,MAAqBD,EAAWI,EAAKH,OAASG,EAAKH,MAEjE,GAAsB,IAAlBI,EAAOC,OACT,MAAM,IAAIC,MACR,iHAYJ,SAASC,GAAKC,eACZA,EAAcC,UACdA,EAASC,UACTA,EAASC,WACTA,GACe,IACf,MAGMC,EAHcJ,GAAkBC,GAAaC,GAAaC,EAI5DP,EAAOS,QACLC,KAEIH,IAAeG,EAAEC,MAAMJ,IAEvBH,GAAkBM,EAAEE,QAAQ,MAAO,GAEnCP,GAAaA,EAAY,GAAKK,EAAET,OAASI,GACzCC,GAAaA,EAAY,GAAKI,EAAET,OAASK,KAE/CN,EAEJ,IAAKQ,EAAcP,OACjB,MAAM,IAAIC,MACR,sFAAsFW,KAAKC,UACzF,CACER,YACAD,YACAD,iBACAG,WAAYQ,OAAOR,QAM3B,OAAOS,EAAgBR,EACzB,CASA,SAASZ,EAAMqB,GACb,OAAOC,EAAOD,EAAGd,EACnB,CAMA,MAAMgB,EAAiB,CAAEC,IAAK,EAAGC,IAAK,IACtC,SAASC,EAASC,EAA2B,IAC3C,MAAMC,EAACC,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAAQP,GAAmBI,IAC3BI,KAAUC,GAAQhC,EAAMV,EAAcsC,EAAEJ,IAAKI,EAAEH,MACtD,MACE,CAACQ,EAAiBF,MAAWC,GAAME,KAAK,KAuBrCd,EAAgB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KArBjD,CAEA,SAASe,EAAUd,GACjB,OAAOC,EAAOD,EAAGK,EACnB,CAMA,MAAO,CAAEnB,OAAMP,QAAOoC,oBAhCtB,WACE,OAAO7B,EAAK,CACVI,WAAY,qBACZH,gBAAgB,GAEpB,EA2B2CkB,WAAUS,YAAWE,UAJhE,WACE,OAAOF,EAAU7C,EAAc,EAAG,IAAI4C,KAAK,IAC7C,EAGF,CAiBuBI,CAAQ,CAAEtC,MAAOuC"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e=["is","a","the","we","but","and","this","that","in","to","of","have","not","with"],r=["accelerometer","ADSL","android","archive","ATX","backup","bandwidth","benchmark","barcode","booting","bios","bitmap","Bitcoin","BitTorrent","blacklist","bluetooth","binary","backlink","bloatware","burn","cache","compression","content","CMOS","cookie","cybercrime","cybersecurity","daemon","debug","dock","DOS","driver","device driver","DPI","DRM","encryption","emulator","ethernet","end user","fat32","framework","freeware","firewall","FTP","gif","Git","GPS","GUI","HTML","https","IEEE","ISO","IMEI","ISP","Java","JavaScript","jpeg","kernel","LAN","LCD","LED","Macintosh","mp3","malware","MMS","MIDI","newbie","OEM","OS","OCR","overclock","pdf","phishing","Python","plug-in","qwerty","remote access","registry","read-only","RAID","rooting","Safe Mode","SSID","SEO","service pack","server","source code","spam","search engine","Swype","trash","underclock","Unix","virus","VGA","web","wifi","Wikipedia","Windows","wireless LAN","World Wide Web","WYSIWYG","WPA","wumpus","zip"],a=["accelerator","incubator","accredited investor","advertorials","advertainment","bleeding edge","bootstrapping","B2B","B2C","burn rate","capital","churn rate","cliff","pitch deck","disrupt","disruptive","exit","freemium","gamify","growth hacking","growth hacker","hockey stick","IP","iterate","launch","lean","leverage","loss leader","market penetration","monetize","MVP","pivot","ramen","responsive design","ROI","runway","SAAS","scaleable","sweat equity","term sheet","traction","valuation","value prop","vaporware","VC","venture"],t=["Adobe","Airbnb","Amazon","Apple","Facebook","Google","Instagram","Microsoft","Netflix","Oracle","Salesforce","Snapchat","Telegram","Twitter","Uber","WeChat","WhatsApp"],i=["0-day","exploit","hacker","virus","vulnerability","warez"],o=["Dolt","DoltHub","database","version control","MySQL","Git","GitHub","rollback","collaborate","clone","branch","merge","commit","repository","pull request","schema","data","command line","diff","commit log","lineage","time travel","community","data bounty","open source","query","workflow","script"];var c=()=>[...e,...e,...e,...e,...e,...o,...r,...a,...t,...i];export{c as default};
|
|
2
|
-
//# sourceMappingURL=words.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"words.js","sources":["../../../../src/loremer/words.ts"],"sourcesContent":["const commonWords = [\n \"is\",\n \"a\",\n \"the\",\n \"we\",\n \"but\",\n \"and\",\n \"this\",\n \"that\",\n \"in\",\n \"to\",\n \"of\",\n \"have\",\n \"not\",\n \"with\",\n];\nconst fromWikipedia = [\n \"accelerometer\",\n \"ADSL\",\n \"android\",\n \"archive\",\n \"ATX\",\n \"backup\",\n \"bandwidth\",\n \"benchmark\",\n \"barcode\",\n \"booting\",\n \"bios\",\n \"bitmap\",\n \"Bitcoin\",\n \"BitTorrent\",\n \"blacklist\",\n \"bluetooth\",\n \"binary\",\n \"backlink\",\n \"bloatware\",\n \"burn\",\n \"cache\",\n \"compression\",\n \"content\",\n \"CMOS\",\n \"cookie\",\n \"cybercrime\",\n \"cybersecurity\",\n \"daemon\",\n \"debug\",\n \"dock\",\n \"DOS\",\n \"driver\",\n \"device driver\",\n \"DPI\",\n \"DRM\",\n \"encryption\",\n \"emulator\",\n \"ethernet\",\n \"end user\",\n \"fat32\",\n \"framework\",\n \"freeware\",\n \"firewall\",\n \"FTP\",\n \"gif\",\n \"Git\",\n \"GPS\",\n \"GUI\",\n \"HTML\",\n \"https\",\n \"IEEE\",\n \"ISO\",\n \"IMEI\",\n \"ISP\",\n \"Java\",\n \"JavaScript\",\n \"jpeg\",\n \"kernel\",\n \"LAN\",\n \"LCD\",\n \"LED\",\n \"Macintosh\",\n \"mp3\",\n \"malware\",\n \"MMS\",\n \"MIDI\",\n \"newbie\",\n \"OEM\",\n \"OS\",\n \"OCR\",\n \"overclock\",\n \"pdf\",\n \"phishing\",\n \"Python\",\n \"plug-in\",\n \"qwerty\",\n \"remote access\",\n \"registry\",\n \"read-only\",\n \"RAID\",\n \"rooting\",\n \"Safe Mode\",\n \"SSID\",\n \"SEO\",\n \"service pack\",\n \"server\",\n \"source code\",\n \"spam\",\n \"search engine\",\n \"Swype\",\n \"trash\",\n \"underclock\",\n \"Unix\",\n \"virus\",\n \"VGA\",\n \"web\",\n \"wifi\",\n \"Wikipedia\",\n \"Windows\",\n \"wireless LAN\",\n \"World Wide Web\",\n \"WYSIWYG\",\n \"WPA\",\n \"wumpus\",\n \"zip\",\n];\nconst startupJargon = [\n \"accelerator\",\n \"incubator\",\n \"accredited investor\",\n \"advertorials\",\n \"advertainment\",\n \"bleeding edge\",\n \"bootstrapping\",\n \"B2B\",\n \"B2C\",\n \"burn rate\",\n \"capital\",\n \"churn rate\",\n \"cliff\",\n \"pitch deck\",\n \"disrupt\",\n \"disruptive\",\n \"exit\",\n \"freemium\",\n \"gamify\",\n \"growth hacking\",\n \"growth hacker\",\n \"hockey stick\",\n \"IP\",\n \"iterate\",\n \"launch\",\n \"lean\",\n \"leverage\",\n \"loss leader\",\n \"market penetration\",\n \"monetize\",\n \"MVP\",\n \"pivot\",\n \"ramen\",\n \"responsive design\",\n \"ROI\",\n \"runway\",\n \"SAAS\",\n \"scaleable\",\n \"sweat equity\",\n \"term sheet\",\n \"traction\",\n \"valuation\",\n \"value prop\",\n \"vaporware\",\n \"VC\",\n \"venture\",\n];\nconst appsAndCompanies = [\n \"Adobe\",\n \"Airbnb\",\n \"Amazon\",\n \"Apple\",\n \"Facebook\",\n \"Google\",\n \"Instagram\",\n \"Microsoft\",\n \"Netflix\",\n \"Oracle\",\n \"Salesforce\",\n \"Snapchat\",\n \"Telegram\",\n \"Twitter\",\n \"Uber\",\n \"WeChat\",\n \"WhatsApp\",\n];\nconst security = [\n \"0-day\",\n \"exploit\",\n \"hacker\",\n \"virus\",\n \"vulnerability\",\n \"warez\",\n];\nconst dolthubWords = [\n \"Dolt\",\n \"DoltHub\",\n \"database\",\n \"version control\",\n \"MySQL\",\n \"Git\",\n \"GitHub\",\n \"rollback\",\n \"collaborate\",\n \"clone\",\n \"branch\",\n \"merge\",\n \"commit\",\n \"repository\",\n \"pull request\",\n \"schema\",\n \"data\",\n \"command line\",\n \"diff\",\n \"commit log\",\n \"lineage\",\n \"time travel\",\n \"community\",\n \"data bounty\",\n \"open source\",\n \"query\",\n \"workflow\",\n \"script\",\n];\nexport default () => [\n ...commonWords,\n ...commonWords,\n ...commonWords,\n ...commonWords,\n ...commonWords,\n ...dolthubWords,\n ...fromWikipedia,\n ...startupJargon,\n ...appsAndCompanies,\n ...security,\n];\n"],"names":["commonWords","fromWikipedia","startupJargon","appsAndCompanies","security","dolthubWords","defaultWords"],"mappings":"AAAA,MAAMA,EAAc,CAClB,KACA,IACA,MACA,KACA,MACA,MACA,OACA,OACA,KACA,KACA,KACA,OACA,MACA,QAEIC,EAAgB,CACpB,gBACA,OACA,UACA,UACA,MACA,SACA,YACA,YACA,UACA,UACA,OACA,SACA,UACA,aACA,YACA,YACA,SACA,WACA,YACA,OACA,QACA,cACA,UACA,OACA,SACA,aACA,gBACA,SACA,QACA,OACA,MACA,SACA,gBACA,MACA,MACA,aACA,WACA,WACA,WACA,QACA,YACA,WACA,WACA,MACA,MACA,MACA,MACA,MACA,OACA,QACA,OACA,MACA,OACA,MACA,OACA,aACA,OACA,SACA,MACA,MACA,MACA,YACA,MACA,UACA,MACA,OACA,SACA,MACA,KACA,MACA,YACA,MACA,WACA,SACA,UACA,SACA,gBACA,WACA,YACA,OACA,UACA,YACA,OACA,MACA,eACA,SACA,cACA,OACA,gBACA,QACA,QACA,aACA,OACA,QACA,MACA,MACA,OACA,YACA,UACA,eACA,iBACA,UACA,MACA,SACA,OAEIC,EAAgB,CACpB,cACA,YACA,sBACA,eACA,gBACA,gBACA,gBACA,MACA,MACA,YACA,UACA,aACA,QACA,aACA,UACA,aACA,OACA,WACA,SACA,iBACA,gBACA,eACA,KACA,UACA,SACA,OACA,WACA,cACA,qBACA,WACA,MACA,QACA,QACA,oBACA,MACA,SACA,OACA,YACA,eACA,aACA,WACA,YACA,aACA,YACA,KACA,WAEIC,EAAmB,CACvB,QACA,SACA,SACA,QACA,WACA,SACA,YACA,YACA,UACA,SACA,aACA,WACA,WACA,UACA,OACA,SACA,YAEIC,EAAW,CACf,QACA,UACA,SACA,QACA,gBACA,SAEIC,EAAe,CACnB,OACA,UACA,WACA,kBACA,QACA,MACA,SACA,WACA,cACA,QACA,SACA,QACA,SACA,aACA,eACA,SACA,OACA,eACA,OACA,aACA,UACA,cACA,YACA,cACA,cACA,QACA,WACA,UAEF,IAAAC,EAAe,IAAM,IAChBN,KACAA,KACAA,KACAA,KACAA,KACAK,KACAJ,KACAC,KACAC,KACAC"}
|
package/dist/esm/nTimes.js
DELETED
package/dist/esm/nTimes.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nTimes.js","sources":["../../../src/nTimes.ts"],"sourcesContent":["export default function nTimes<T>(\n n: number,\n operation: (...args: any[]) => T,\n args: Parameters<typeof operation> = [],\n): T[] {\n const collection = [];\n for (let i = 0; i < n; i++) {\n collection.push(operation(...args));\n }\n return collection;\n}\n\nexport function nTimesWithIndex<T>(n: number, operation: (n: number) => T) {\n const collection = [];\n for (let i = 0; i < n; i++) {\n collection.push(operation(i));\n }\n return collection;\n}\n"],"names":["nTimes","n","operation","args","collection","i","push","nTimesWithIndex"],"mappings":"AAAc,SAAUA,EACtBC,EACAC,EACAC,EAAqC,IAErC,MAAMC,EAAa,GACnB,IAAK,IAAIC,EAAI,EAAGA,EAAIJ,EAAGI,IACrBD,EAAWE,KAAKJ,KAAaC,IAE/B,OAAOC,CACT,CAEM,SAAUG,EAAmBN,EAAWC,GAC5C,MAAME,EAAa,GACnB,IAAK,IAAIC,EAAI,EAAGA,EAAIJ,EAAGI,IACrBD,EAAWE,KAAKJ,EAAUG,IAE5B,OAAOD,CACT"}
|
package/dist/esm/null.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"null.js","sources":["../../../src/null.ts"],"sourcesContent":["// Using an unprintable string for null values so we can distinguish between\n// string \"null\" and null\nexport const NULL_VALUE = \"\\uf5f2\\ueb94NULL\\uf5a8\\ue6ff\";\n\nexport function isNullValue(dv: string): boolean {\n return dv === NULL_VALUE;\n}\n\nexport function getDisplayValue(dv: string): string {\n return isNullValue(dv) ? \"NULL\" : dv;\n}\n\nexport function getDisplayValueForApi(dv: string): string | null {\n return isNullValue(dv) ? null : dv;\n}\n"],"names":["NULL_VALUE","isNullValue","dv","getDisplayValue","getDisplayValueForApi"],"mappings":"AAEO,MAAMA,EAAa,WAEpB,SAAUC,EAAYC,GAC1B,OAAOA,IAAOF,CAChB,CAEM,SAAUG,EAAgBD,GAC9B,OAAOD,EAAYC,GAAM,OAASA,CACpC,CAEM,SAAUE,EAAsBF,GACpC,OAAOD,EAAYC,GAAM,KAAOA,CAClC"}
|
package/dist/esm/numberFormat.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
function r(r){return new Intl.NumberFormat("en-US").format(r)}function n(r){return new Intl.NumberFormat("en-US",{style:"currency",currency:"USD"}).format(r)}function t(r){return new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:0,maximumFractionDigits:0}).format(r)}export{r as formatNumber,t as formatToRoundedUsd,n as formatToUsd};
|
|
2
|
-
//# sourceMappingURL=numberFormat.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"numberFormat.js","sources":["../../../src/numberFormat.ts"],"sourcesContent":["export function formatNumber(num: number): string {\n return new Intl.NumberFormat(\"en-US\").format(num);\n}\n\nexport function formatToUsd(num: number): string {\n return new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currency: \"USD\",\n }).format(num);\n}\n\nexport function formatToRoundedUsd(num: number): string {\n return new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currency: \"USD\",\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n }).format(num);\n}\n"],"names":["formatNumber","num","Intl","NumberFormat","format","formatToUsd","style","currency","formatToRoundedUsd","minimumFractionDigits","maximumFractionDigits"],"mappings":"AAAM,SAAUA,EAAaC,GAC3B,OAAO,IAAIC,KAAKC,aAAa,SAASC,OAAOH,EAC/C,CAEM,SAAUI,EAAYJ,GAC1B,OAAO,IAAIC,KAAKC,aAAa,QAAS,CACpCG,MAAO,WACPC,SAAU,QACTH,OAAOH,EACZ,CAEM,SAAUO,EAAmBP,GACjC,OAAO,IAAIC,KAAKC,aAAa,QAAS,CACpCG,MAAO,WACPC,SAAU,MACVE,sBAAuB,EACvBC,sBAAuB,IACtBN,OAAOH,EACZ"}
|
package/dist/esm/pluralize.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
function e(e,a){return 1===e?a:function(e){switch(e){case"person":return"people";case"repository":return"repositories";case"repository updated today":return"repositories updated today";case"database":return"databases";case"database updated today":return"databases updated today";case"branch":return"branches";default:return`${e}s`}}(a)}export{e as default};
|
|
2
|
-
//# sourceMappingURL=pluralize.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pluralize.js","sources":["../../../src/pluralize.ts"],"sourcesContent":["export default function pluralize(num: number, str: string): string {\n if (num === 1) {\n return str;\n }\n return getPlural(str);\n}\n\nfunction getPlural(s: string): string {\n switch (s) {\n case \"person\":\n return \"people\";\n case \"repository\":\n return \"repositories\";\n case \"repository updated today\":\n return \"repositories updated today\";\n case \"database\":\n return \"databases\";\n case \"database updated today\":\n return \"databases updated today\";\n case \"branch\":\n return \"branches\";\n default:\n return `${s}s`;\n }\n}\n"],"names":["pluralize","num","str","s","getPlural"],"mappings":"AAAc,SAAUA,EAAUC,EAAaC,GAC7C,OAAY,IAARD,EACKC,EAKX,SAAmBC,GACjB,OAAQA,GACN,IAAK,SACH,MAAO,SACT,IAAK,aACH,MAAO,eACT,IAAK,2BACH,MAAO,6BACT,IAAK,WACH,MAAO,YACT,IAAK,yBACH,MAAO,0BACT,IAAK,SACH,MAAO,WACT,QACE,MAAO,GAAGA,KAEhB,CApBSC,CAAUF,EACnB"}
|
package/dist/esm/prettyJSON.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prettyJSON.js","sources":["../../../src/prettyJSON.ts"],"sourcesContent":["export default function prettyJSON(data: any): string {\n try {\n return JSON.stringify(data, null, 2);\n } catch (err) {\n console.error(err);\n return `${data}`;\n }\n}\n\nexport function prettyJSONText(text: string): string {\n try {\n return JSON.stringify(JSON.parse(text), null, 2);\n } catch (err) {\n console.error(err);\n return text;\n }\n}\n"],"names":["prettyJSON","data","JSON","stringify","err","console","error","prettyJSONText","text","parse"],"mappings":"AAAc,SAAUA,EAAWC,GACjC,IACE,OAAOC,KAAKC,UAAUF,EAAM,KAAM,EACpC,CAAE,MAAOG,GAEP,OADAC,QAAQC,MAAMF,GACP,GAAGH,GACZ,CACF,CAEM,SAAUM,EAAeC,GAC7B,IACE,OAAON,KAAKC,UAAUD,KAAKO,MAAMD,GAAO,KAAM,EAChD,CAAE,MAAOJ,GAEP,OADAC,QAAQC,MAAMF,GACPI,CACT,CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"randomArrayItem.js","sources":["../../../src/randomArrayItem.ts"],"sourcesContent":["export default function randomArrayItem<T>(arr: T[]): T {\n if (arr.length === 0) {\n throw new Error(\"Can't take random element of empty array\");\n }\n return arr[Math.floor(Math.random() * arr.length)];\n}\n"],"names":["randomArrayItem","arr","length","Error","Math","floor","random"],"mappings":"AAAc,SAAUA,EAAmBC,GACzC,GAAmB,IAAfA,EAAIC,OACN,MAAM,IAAIC,MAAM,4CAElB,OAAOF,EAAIG,KAAKC,MAAMD,KAAKE,SAAWL,EAAIC,QAC5C"}
|
package/dist/esm/randomNum.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"randomNum.js","sources":["../../../src/randomNum.ts"],"sourcesContent":["export default function randomNum(min: number, max: number): number {\n return Math.floor(Math.random() * (max - min) + min);\n}\n"],"names":["randomNum","min","max","Math","floor","random"],"mappings":"AAAc,SAAUA,EAAUC,EAAaC,GAC7C,OAAOC,KAAKC,MAAMD,KAAKE,UAAYH,EAAMD,GAAOA,EAClD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"safeJSONParse.js","sources":["../../../src/safeJSONParse.ts"],"sourcesContent":["// safeJSONParse attempts to parse a JSON string, and if it fails returns the\n// original string instead of throwing an error\nexport default function safeJSONParse(text: string): any {\n try {\n return JSON.parse(text);\n } catch (_) {\n return text;\n }\n}\n"],"names":["safeJSONParse","text","JSON","parse","_"],"mappings":"AAEc,SAAUA,EAAcC,GACpC,IACE,OAAOC,KAAKC,MAAMF,EACpB,CAAE,MAAOG,GACP,OAAOH,CACT,CACF"}
|
package/dist/esm/sprintf.js
DELETED
package/dist/esm/sprintf.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sprintf.js","sources":["../../../src/sprintf.ts"],"sourcesContent":["const replaceToken = \"$\";\n\n// sprintf takes a string and replaces all instances of `replaceToken` with the provided arguments\nexport const sprintf = (str: string, ...argv: any[]): string => {\n if (!argv.length) return str;\n // eslint-disable-next-line no-return-assign, no-param-reassign\n return sprintf((str = str.replace(replaceToken, argv.shift())), ...argv);\n};\n"],"names":["sprintf","str","argv","length","replace","shift"],"mappings":"AAAA,MAGaA,EAAU,CAACC,KAAgBC,IACjCA,EAAKC,OAEHH,EAASC,EAAMA,EAAIG,QANP,IAM6BF,EAAKG,YAAcH,GAF1CD"}
|
package/dist/esm/toOrdinal.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toOrdinal.js","sources":["../../../src/toOrdinal.ts"],"sourcesContent":["export default function toOrdinal(n: number): string {\n if (n % 10 === 1 && n % 100 !== 11) return `${n}st`;\n\n if (n % 10 === 2 && n % 100 !== 12) return `${n}nd`;\n\n if (n % 10 === 3 && n % 100 !== 13) return `${n}rd`;\n\n return `${n}th`;\n}\n"],"names":["toOrdinal","n"],"mappings":"AAAc,SAAUA,EAAUC,GAChC,OAAIA,EAAI,IAAO,GAAKA,EAAI,KAAQ,GAAW,GAAGA,MAE1CA,EAAI,IAAO,GAAKA,EAAI,KAAQ,GAAW,GAAGA,MAE1CA,EAAI,IAAO,GAAKA,EAAI,KAAQ,GAAW,GAAGA,MAEvC,GAAGA,KACZ"}
|
package/dist/esm/tuplify.js
DELETED
package/dist/esm/tuplify.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tuplify.js","sources":["../../../src/tuplify.ts"],"sourcesContent":["export default function tuplify<T extends any[]>(...elements: T) {\n return elements;\n}\n"],"names":["tuplify","elements"],"mappings":"AAAc,SAAUA,KAA4BC,GAClD,OAAOA,CACT"}
|
package/dist/esm/urlUtils.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
class t{constructor(t,e){this.href=t,this.as=null!=e?e:t}hrefPathname(t){const h=e(this.href);return t?`${h}/${t}`:h}asPathname(t){const h=e(this.as);return t?`${h}/${t}`:h}getQuery(){if("string"!=typeof this.href)return this.href.query}getHash(){var t;return"string"==typeof this.href?"":null!==(t=this.href.hash)&&void 0!==t?t:""}addStatic(e){return new t(this.hrefPathname(e),this.asPathname(e))}maybeAddStatic(e){return new t(this.hrefPathname(e),this.asPathname(e))}addDynamic(e,h,a=!1){const n=a?encodeURIComponent(h):h;return new t(this.hrefPathname(`[${e}]`),this.asPathname(n))}withQuery(e){const a=h(e);return new t({pathname:this.hrefPathname(),query:a,hash:this.getHash()},{pathname:this.asPathname(),query:a,hash:this.getHash()})}withHash(e){return new t({pathname:this.hrefPathname(),query:this.getQuery(),hash:e},{pathname:this.asPathname(),query:this.getQuery(),hash:e})}}function e(t){var e;return t?"string"==typeof t?t:null!==(e=t.pathname)&&void 0!==e?e:"":""}function h(t){return Object.keys(t).reduce(((e,h)=>{const a=t[h];return null!=a&&a.length>0?Object.assign(Object.assign({},e),{[h]:a}):e}),{})}export{t as Route,h as queryHandler};
|
|
2
|
-
//# sourceMappingURL=urlUtils.js.map
|
package/dist/esm/urlUtils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"urlUtils.js","sources":["../../../src/urlUtils.ts"],"sourcesContent":["import { ParsedUrlQueryInput } from \"querystring\";\nimport { UrlObject } from \"url\";\n\ntype Url = string | UrlObject;\n\nexport type LinkObject = {\n href: Url;\n as?: Url;\n};\n\n/**\n * __Route__\n *\n * `Route` class that handles adding static and dynamic route segments to\n * existing routes. `Route` can be initialized with a \"href\" string or\n * `UrlObject` and optional \"as\" string or `UrlObject`.\n *\n * @example\n * const routeA = new Route(\"/repositories\");\n * routeA.hrefPathname() // \"/repositories\"\n * routeA.addDynamic(\"ownerName\", \"my-owner\")\n * routeA.hrefPathname() // \"repositories/[ownerName]\"\n * routeA.asPathname() // \"repositories/my-owner\"\n *\n * const routeB = new Route(\n * { pathname: \"/repositories/[ownerName]\", query: { refName: \"main\" } },\n * { pathname: \"/repositories/my-owner\", query: { refName: \"main\" } },\n * )\n * routeB.hrefPathname() // \"/repositories/[ownerName]\"\n * routeB.asPathname() // \"repositories/my-owner\"\n * routeB.getQuery() // { refName: \"main\" }\n */\nexport class Route {\n href: Url;\n\n as: Url;\n\n constructor(href: Url, as?: Url) {\n this.href = href;\n this.as = as ?? href;\n }\n\n /**\n * __hrefPathname__\n *\n * Gets pathname string from href string or `UrlObject`.\n *\n * @param addFrag Optional route fragment string to add to `href` pathname\n *\n * @returns `href` pathname string, with added route fragment if provided\n *\n * @example\n * const routeA = new Route(\"/repositories\");\n * routeA.hrefPathname() // \"/repositories\"\n * routeA.hrefPathname(\"[ownerName]\") // \"repositories/[ownerName]\"\n *\n * const routeB = new Route({ pathname: \"/repositories\" })\n * routeB.hrefPathname() // \"/repositories\"\n * routeB.hrefPathname(\"[ownerName]\") // \"repositories/[ownerName]\"\n */\n hrefPathname(addFrag?: string): string {\n const href = getPathname(this.href);\n if (!addFrag) return href;\n return `${href}/${addFrag}`;\n }\n\n /**\n * __asPathname__\n *\n * Gets pathname string from as string or `UrlObject`.\n *\n * @param addFrag Optional route fragment string to add to `as` pathname\n *\n * @returns `as` pathname string, with added route fragment if provided\n *\n * @example\n * const routeA = new Route(\"/repositories\");\n * routeA.asPathname() // \"/repositories\"\n * routeA.asPathname(\"my-username\") // \"repositories/my-username\"\n *\n * const routeB = new Route(\n * { pathname: \"/repositories/[ownerName]\" },\n * { pathname: \"/repositories/my-username\" },\n * );\n * routeB.asPathname() // \"/repositories/my-username\"\n * routeB.asPathname(\"data\") // \"repositories/my-username/data\"\n */\n asPathname(addFrag?: string): string {\n const as = getPathname(this.as);\n if (!addFrag) return as;\n return `${as}/${addFrag}`;\n }\n\n /**\n * __getQuery__\n *\n * Gets query object from the href `UrlObject`.\n *\n * @returns query object\n *\n * @example\n * const route = new Route(\"/repositories\");\n * route.withQuery({ refName: \"main\" })\n * route.getQuery() // { refName: \"main\" }\n */\n getQuery(): string | ParsedUrlQueryInput | undefined | null {\n if (typeof this.href === \"string\") return undefined;\n return this.href.query;\n }\n\n /**\n * __getHash__\n *\n * Gets hash string from the href `UrlObject`.\n *\n * @returns hash string\n *\n * @example\n * const route = new Route(\"/repositories\");\n * route.withHash(\"commitA\")\n * route.getHash() // \"commitA\"\n */\n getHash(): string {\n if (typeof this.href === \"string\") return \"\";\n return this.href.hash ?? \"\";\n }\n\n /**\n * __addStatic__\n *\n * Adds static route fragment string to a `Route`. Static route fragments look like:\n * ```ts\n * { href: \"/repositories\", as: \"/repositories\" }\n * ```\n * As opposed to dynamic route fragments which look like:\n * ```ts\n * { href: \"/[ownerName]\", as: \"/owner-value\" }\n * ```\n *\n * @param pathFrag Route fragment string to add to the url. \"/\" is automatically prepended.\n *\n * @returns new instance of `Route`\n *\n * @example\n * const route = new Route(\"/repositories\");\n * route.addStatic(\"data\")\n * route.hrefPathname() // \"/repositories/data\"\n * route.asPathname() // \"/repositories/data\"\n */\n addStatic(pathFrag: string): Route {\n return new Route(this.hrefPathname(pathFrag), this.asPathname(pathFrag));\n }\n\n /**\n * __maybeAddStatic__\n *\n * Maybe adds static route fragment string to a `Route`.\n *\n * @see this.addStatic\n *\n * @param pathFrag Optional route fragment string to add to the url. \"/\" is automatically prepended.\n *\n * @example\n * const route = new Route(\"/repositories\");\n * route.maybeAddStatic(\"data\")\n * route.hrefPathname() // \"/repositories/data\"\n * route.maybeAddStatic()\n * route.hrefPathname() // \"/repositories\"\n */\n maybeAddStatic(pathFrag?: string): Route {\n return new Route(this.hrefPathname(pathFrag), this.asPathname(pathFrag));\n }\n\n /**\n * __addDynamic__\n *\n * Adds dynamic route fragment string to a Route.\n * Dynamic route fragments look like:\n * ```ts\n * { href: \"/[ownerName]\", as: \"/owner-value\" }\n * ```\n * As opposed to static route fragments which look like:\n *\n * ```ts\n * { href: \"/repositories\", as: \"/repositories\" }\n * ```\n *\n * @param param String fragment to add to the href path. This value will be wrapped in square brackets. \"/\" is automatically prepended.\n * @param as Value of the `param` to be added to the `as` path. \"/\" is automatically prepended.\n * @param encode Default false. If true, encodes a `as` param value string as a valid component of a Uniform Resource Identifier (URI).\n *\n * @returns new instance of `Route`\n *\n * @example\n * const route = new Route(\"/repositories\");\n * route.addDynamic(\"ownerName\", \"my-owner-name\")\n * route.hrefPathname() // \"/repositories/[ownerName]\"\n * route.asPathname() // \"/repositories/my-owner-name\"\n */\n addDynamic(param: string, as: string, encode = false): Route {\n const asStr = encode ? encodeURIComponent(as) : as;\n return new Route(this.hrefPathname(`[${param}]`), this.asPathname(asStr));\n }\n\n /**\n * __withQuery__\n *\n * Adds query object to a `Route`. Looks like \"?refName=main&active=Tables\"\n * when url is formatted.\n *\n * @param q Record with fields that will be added to the query string.\n *\n * @returns new instance of `Route`\n *\n * @example\n * const route = new Route(\"/repositories/[ownerName]\", \"/repositories/my-owner\");\n * route.withQuery({ refName: \"main\", active: undefined })\n * route.hrefPathname() // { pathname: \"/repositories/[ownerName]\", query: { refName: \"main\" } }\n * route.asPathname() // { pathname: \"/repositories/my-owner\", query: { refName: \"main\" } }\n */\n withQuery(q: Record<string, string | undefined | null>): Route {\n const query = queryHandler(q);\n return new Route(\n { pathname: this.hrefPathname(), query, hash: this.getHash() },\n { pathname: this.asPathname(), query, hash: this.getHash() },\n );\n }\n\n /**\n * __withHash__\n *\n * Adds hash string to a `Route`. Looks like \"#hash-value\" when url is formatted.\n *\n * @param hash Optional hash string\n *\n * @returns new instance of Route\n *\n * @example\n * const route = new Route(\"/repositories/[ownerName]\", \"/repositories/my-owner\");\n * route.withHash({ commitId: \"commitA\" })\n * route.hrefPathname() // { pathname: \"/repositories/[ownerName]\", hash: { commitId: \"commitA\" } }\n * route.asPathname() // { pathname: \"/repositories/my-owner\", hash: { commitId: \"commitA\" } }\n */\n withHash(hash?: string): Route {\n return new Route(\n { pathname: this.hrefPathname(), query: this.getQuery(), hash },\n { pathname: this.asPathname(), query: this.getQuery(), hash },\n );\n }\n}\n\n// Gets pathname from url string or object\nfunction getPathname(as?: string | UrlObject): string {\n if (!as) return \"\";\n if (typeof as === \"string\") return as;\n return as.pathname ?? \"\";\n}\n\n// Returns query object with undefined or empty values removed\nexport function queryHandler(\n q: Record<string, string | undefined | null>,\n): string | null | ParsedUrlQueryInput | undefined {\n return Object.keys(q).reduce((prev, key) => {\n const currVal = q[key];\n if (currVal !== undefined && currVal !== null && currVal.length > 0) {\n return { ...prev, [key]: currVal };\n }\n return prev;\n }, {} as NodeJS.Dict<string>);\n}\n"],"names":["Route","constructor","href","as","this","hrefPathname","addFrag","getPathname","asPathname","getQuery","query","getHash","_a","hash","addStatic","pathFrag","maybeAddStatic","addDynamic","param","encode","asStr","encodeURIComponent","withQuery","q","queryHandler","pathname","withHash","Object","keys","reduce","prev","key","currVal","length","assign"],"mappings":"MAgCaA,EAKX,WAAAC,CAAYC,EAAWC,GACrBC,KAAKF,KAAOA,EACZE,KAAKD,GAAKA,QAAAA,EAAMD,CAClB,CAoBA,YAAAG,CAAaC,GACX,MAAMJ,EAAOK,EAAYH,KAAKF,MAC9B,OAAKI,EACE,GAAGJ,KAAQI,IADGJ,CAEvB,CAuBA,UAAAM,CAAWF,GACT,MAAMH,EAAKI,EAAYH,KAAKD,IAC5B,OAAKG,EACE,GAAGH,KAAMG,IADKH,CAEvB,CAcA,QAAAM,GACE,GAAyB,iBAAdL,KAAKF,KAChB,OAAOE,KAAKF,KAAKQ,KACnB,CAcA,OAAAC,SACE,MAAyB,iBAAdP,KAAKF,KAA0B,GACrB,QAAdU,EAAAR,KAAKF,KAAKW,YAAI,IAAAD,EAAAA,EAAI,EAC3B,CAwBA,SAAAE,CAAUC,GACR,OAAO,IAAIf,EAAMI,KAAKC,aAAaU,GAAWX,KAAKI,WAAWO,GAChE,CAkBA,cAAAC,CAAeD,GACb,OAAO,IAAIf,EAAMI,KAAKC,aAAaU,GAAWX,KAAKI,WAAWO,GAChE,CA4BA,UAAAE,CAAWC,EAAef,EAAYgB,GAAS,GAC7C,MAAMC,EAAQD,EAASE,mBAAmBlB,GAAMA,EAChD,OAAO,IAAIH,EAAMI,KAAKC,aAAa,IAAIa,MAAWd,KAAKI,WAAWY,GACpE,CAkBA,SAAAE,CAAUC,GACR,MAAMb,EAAQc,EAAaD,GAC3B,OAAO,IAAIvB,EACT,CAAEyB,SAAUrB,KAAKC,eAAgBK,QAAOG,KAAMT,KAAKO,WACnD,CAAEc,SAAUrB,KAAKI,aAAcE,QAAOG,KAAMT,KAAKO,WAErD,CAiBA,QAAAe,CAASb,GACP,OAAO,IAAIb,EACT,CAAEyB,SAAUrB,KAAKC,eAAgBK,MAAON,KAAKK,WAAYI,QACzD,CAAEY,SAAUrB,KAAKI,aAAcE,MAAON,KAAKK,WAAYI,QAE3D,EAIF,SAASN,EAAYJ,SACnB,OAAKA,EACa,iBAAPA,EAAwBA,EACjB,UAAXA,EAAGsB,gBAAQ,IAAAb,EAAAA,EAAI,GAFN,EAGlB,CAGM,SAAUY,EACdD,GAEA,OAAOI,OAAOC,KAAKL,GAAGM,QAAO,CAACC,EAAMC,KAClC,MAAMC,EAAUT,EAAEQ,GAClB,OAAIC,SAA6CA,EAAQC,OAAS,EAChEN,OAAAO,OAAAP,OAAAO,OAAA,CAAA,EAAYJ,GAAI,CAAEC,CAACA,GAAMC,IAEpBF,CAAI,GACV,CAAA,EACL"}
|
package/dist/esm/validators.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e=/\S+@\S+\.\S+/;function n(n){return{isValid:!!n.match(e),errorMsg:"Email format invalid"}}const a=/^[-a-z0-9_]{3,32}$/g,r=/^-|^_|-$|_$|--|__|-_|_-/;function t(e){return{isValid:!!e.match(a)&&!e.match(r),errorMsg:"Username can only contain lowercase letters, dashes, and underscores and be between 3 and 32 characters",detailedErrorMsg:s(e)}}function s(e){return e.length<3?"Username too short":e.length>32?"Username too long":e.toLowerCase()!==e?"Username cannot have uppercase letters":e.match(a)?e.match(r)?"Username invalid":"":"Username invalid"}export{n as emailValidator,t as usernameValidator};
|
|
2
|
-
//# sourceMappingURL=validators.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validators.js","sources":["../../../src/validators.ts"],"sourcesContent":["const emailRegex = /\\S+@\\S+\\.\\S+/;\n\nexport function emailValidator(s: string) {\n return {\n isValid: !!s.match(emailRegex),\n errorMsg: \"Email format invalid\",\n };\n}\n\nconst usernameRegex = /^[-a-z0-9_]{3,32}$/g;\nconst invalidRegex = /^-|^_|-$|_$|--|__|-_|_-/;\n\nexport function usernameValidator(s: string) {\n return {\n isValid: !!s.match(usernameRegex) && !s.match(invalidRegex),\n errorMsg:\n \"Username can only contain lowercase letters, dashes, and underscores and be between 3 and 32 characters\",\n detailedErrorMsg: getUsernameErrorMsg(s),\n };\n}\n\nfunction getUsernameErrorMsg(s: string) {\n if (s.length < 3) {\n return \"Username too short\";\n }\n if (s.length > 32) {\n return \"Username too long\";\n }\n if (s.toLowerCase() !== s) {\n return \"Username cannot have uppercase letters\";\n }\n if (!s.match(usernameRegex)) {\n return \"Username invalid\";\n }\n if (s.match(invalidRegex)) {\n return \"Username invalid\";\n }\n return \"\";\n}\n"],"names":["emailRegex","emailValidator","s","isValid","match","errorMsg","usernameRegex","invalidRegex","usernameValidator","detailedErrorMsg","getUsernameErrorMsg","length","toLowerCase"],"mappings":"AAAA,MAAMA,EAAa,eAEb,SAAUC,EAAeC,GAC7B,MAAO,CACLC,UAAWD,EAAEE,MAAMJ,GACnBK,SAAU,uBAEd,CAEA,MAAMC,EAAgB,sBAChBC,EAAe,0BAEf,SAAUC,EAAkBN,GAChC,MAAO,CACLC,UAAWD,EAAEE,MAAME,KAAmBJ,EAAEE,MAAMG,GAC9CF,SACE,0GACFI,iBAAkBC,EAAoBR,GAE1C,CAEA,SAASQ,EAAoBR,GAC3B,OAAIA,EAAES,OAAS,EACN,qBAELT,EAAES,OAAS,GACN,oBAELT,EAAEU,gBAAkBV,EACf,yCAEJA,EAAEE,MAAME,GAGTJ,EAAEE,MAAMG,GACH,mBAEF,GALE,kBAMX"}
|
package/dist/excerpt.d.d.ts
DELETED