@nhtio/lucid-resourceful 0.1.0-master-29dd5a13 → 0.1.0-master-641df8fc
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/adonis-env.d.ts +17 -0
- package/bundled_liqe.d.ts +6 -5
- package/bundled_xml_js.d.ts +5 -4
- package/definitions.d.ts +1 -1
- package/encoding.d.ts +6 -6
- package/errors.d.ts +23 -8
- package/{index-Bsyx9Sty.js → index-B-5JiNqG.js} +76 -221
- package/index-B-5JiNqG.js.map +1 -0
- package/{index-B6dIMDux.cjs → index-BrGbuAtt.cjs} +76 -221
- package/index-BrGbuAtt.cjs.map +1 -0
- package/index-C9zyi90j.js.map +1 -1
- package/{index-CpyTnwZV.cjs → index-CQApAM0M.cjs} +298 -353
- package/index-CQApAM0M.cjs.map +1 -0
- package/index-CxRBayw6.cjs.map +1 -1
- package/{index-C8mGEf4P.js → index-DLVvkVxI.js} +295 -350
- package/index-DLVvkVxI.js.map +1 -0
- package/index-DsojAcQ4.js.map +1 -1
- package/index-DuzIXu31.cjs.map +1 -1
- package/index.cjs +1 -1
- package/index.d.ts +7 -7
- package/index.mjs +1 -1
- package/integration/middlewares/odata_error.cjs +1 -1
- package/integration/middlewares/odata_error.d.ts +1 -1
- package/integration/middlewares/odata_error.mjs +1 -1
- package/integration/middlewares/resourceful_encoded_request.cjs +100 -12
- package/integration/middlewares/resourceful_encoded_request.cjs.map +1 -1
- package/integration/middlewares/resourceful_encoded_request.d.ts +1 -1
- package/integration/middlewares/resourceful_encoded_request.mjs +98 -10
- package/integration/middlewares/resourceful_encoded_request.mjs.map +1 -1
- package/integration/middlewares/resourceful_error.cjs +1 -1
- package/integration/middlewares/resourceful_error.d.ts +1 -1
- package/integration/middlewares/resourceful_error.mjs +1 -1
- package/integration/provider.cjs +1 -1
- package/integration/provider.mjs +1 -1
- package/joi.d.ts +1 -1
- package/{manager-OLS5T3G7-CJHhMwR7.cjs → manager-OLS5T3G7-BPVI59Zw.cjs} +2 -2
- package/{manager-OLS5T3G7-CJHhMwR7.cjs.map → manager-OLS5T3G7-BPVI59Zw.cjs.map} +1 -1
- package/{manager-OLS5T3G7-C-NS6lhx.js → manager-OLS5T3G7-DzVckqOB.js} +2 -2
- package/{manager-OLS5T3G7-C-NS6lhx.js.map → manager-OLS5T3G7-DzVckqOB.js.map} +1 -1
- package/odata/context.d.ts +1 -1
- package/odata/macro.d.ts +1 -1
- package/{odata_error_middleware-BWfOpQZV.cjs → odata_error_middleware-DhLzccN7.cjs} +4 -4
- package/{odata_error_middleware-BWfOpQZV.cjs.map → odata_error_middleware-DhLzccN7.cjs.map} +1 -1
- package/{odata_error_middleware-CWYqZMez.js → odata_error_middleware-Dspi8bct.js} +4 -4
- package/{odata_error_middleware-CWYqZMez.js.map → odata_error_middleware-Dspi8bct.js.map} +1 -1
- package/package.json +1 -1
- package/private/data_type_schemas.d.ts +12 -12
- package/private/data_types.d.ts +1 -1
- package/private/decorator_schemas.d.ts +1 -1
- package/private/decorator_utils.d.ts +1 -1
- package/private/decorators.d.ts +14 -11
- package/private/encoding.d.ts +3 -3
- package/private/joi/index.d.ts +3 -3
- package/private/lucene_to_lucid_translator.d.ts +1 -1
- package/private/mixin.d.ts +25 -8
- package/private/odata_macro/controllers/resourceful_model_controller.d.ts +4 -4
- package/private/odata_macro/index.d.ts +1 -1
- package/private/odata_macro/middlewares/odata_error_middleware.d.ts +22 -10
- package/private/odata_macro/services/odata_context_service.d.ts +1 -1
- package/private/odata_macro/services/odata_metadata_service.d.ts +3 -3
- package/private/odata_macro/utils/odata.d.ts +2 -2
- package/private/odata_to_lucid_translator.d.ts +1 -1
- package/private/open_api_schema_service.d.ts +3 -3
- package/private/router_macro/controllers/resourceful_model_controller.d.ts +5 -5
- package/private/router_macro/index.d.ts +3 -3
- package/private/router_macro/middlewares/resourceful_error_middleware.d.ts +22 -10
- package/private/router_macro/services/resourceful_router_choices_service.d.ts +3 -3
- package/private/router_macro/services/resourceful_router_context_service.d.ts +1 -1
- package/private/router_macro/services/resourceful_router_model_options_service.d.ts +1 -1
- package/private/router_macro/services/resourceful_router_model_resolver_service.d.ts +3 -3
- package/private/router_macro/services/resourceful_router_openapi_document_service.d.ts +4 -4
- package/private/router_macro/services/resourceful_router_options_service.d.ts +3 -3
- package/private/router_macro/types.d.ts +15 -8
- package/private/router_macro/utils/errors.d.ts +1 -1
- package/private/router_macro/utils/http.d.ts +1 -1
- package/private/router_macro/utils/openapi_validation_schemas.d.ts +2 -2
- package/private/router_macro/utils/relationships.d.ts +1 -1
- package/private/router_macro/utils/type_guards.d.ts +1 -1
- package/private/schema_types.d.ts +1 -1
- package/private/type_guards.d.ts +5 -5
- package/private/types.d.ts +5 -5
- package/private/utils/casters.d.ts +1 -1
- package/private/utils/consumers.d.ts +1 -1
- package/private/utils/preparers.d.ts +1 -1
- package/private/utils.d.ts +1 -1
- package/{resourceful_error_middleware-CMSZGdoG.js → resourceful_error_middleware-Cb_eTzST.js} +4 -4
- package/{resourceful_error_middleware-CMSZGdoG.js.map → resourceful_error_middleware-Cb_eTzST.js.map} +1 -1
- package/{resourceful_error_middleware-lXgefPIC.cjs → resourceful_error_middleware-CnjbNoev.cjs} +4 -4
- package/{resourceful_error_middleware-lXgefPIC.cjs.map → resourceful_error_middleware-CnjbNoev.cjs.map} +1 -1
- package/router/context.d.ts +1 -1
- package/router/utils.cjs +1 -1
- package/router/utils.d.ts +1 -1
- package/router/utils.mjs +1 -1
- package/router.cjs +1 -1
- package/router.d.ts +2 -2
- package/router.mjs +1 -1
- package/types.d.ts +13 -13
- package/utils.d.ts +4 -4
- package/vite-env.d.ts +3 -0
- package/index-B6dIMDux.cjs.map +0 -1
- package/index-Bsyx9Sty.js.map +0 -1
- package/index-C8mGEf4P.js.map +0 -1
- package/index-CpIq4gOr.js +0 -93
- package/index-CpIq4gOr.js.map +0 -1
- package/index-CpyTnwZV.cjs.map +0 -1
- package/index-DqbJXpcT.cjs +0 -92
- package/index-DqbJXpcT.cjs.map +0 -1
- package/private/controller_factory.d.ts +0 -1
- package/private/utils/function_serializer.d.ts +0 -32
package/index-CpyTnwZV.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-CpyTnwZV.cjs","sources":["../node_modules/.pnpm/@lukeed+ms@2.0.2/node_modules/@lukeed/ms/dist/index.mjs","../node_modules/.pnpm/slugify@1.6.6/node_modules/slugify/slugify.js","../node_modules/.pnpm/truncatise@0.0.8/node_modules/truncatise/index.js","../node_modules/.pnpm/pluralize@8.0.0/node_modules/pluralize/pluralize.js","../node_modules/.pnpm/case-anything@3.1.2/node_modules/case-anything/dist/utils.js","../node_modules/.pnpm/case-anything@3.1.2/node_modules/case-anything/dist/core.js","../node_modules/.pnpm/@poppinss+string@1.7.0/node_modules/@poppinss/string/build/chunk-LJJE2S3U.js","../node_modules/.pnpm/@nhtio+tiny-typed-emitter@1.20250430.0/node_modules/@nhtio/tiny-typed-emitter/index.mjs"],"sourcesContent":["var RGX = /^(-?(?:\\d+)?\\.?\\d+) *(m(?:illiseconds?|s(?:ecs?)?))?(s(?:ec(?:onds?|s)?)?)?(m(?:in(?:utes?|s)?)?)?(h(?:ours?|rs?)?)?(d(?:ays?)?)?(w(?:eeks?|ks?)?)?(y(?:ears?|rs?)?)?$/,\n\tSEC = 1e3,\n\tMIN = SEC * 60,\n\tHOUR = MIN * 60,\n\tDAY = HOUR * 24,\n\tYEAR = DAY * 365.25;\n\nexport function parse(val) {\n\tvar num, arr = val.toLowerCase().match(RGX);\n\tif (arr != null && (num = parseFloat(arr[1]))) {\n\t\tif (arr[3] != null) return num * SEC;\n\t\tif (arr[4] != null) return num * MIN;\n\t\tif (arr[5] != null) return num * HOUR;\n\t\tif (arr[6] != null) return num * DAY;\n\t\tif (arr[7] != null) return num * DAY * 7;\n\t\tif (arr[8] != null) return num * YEAR;\n\t\treturn num;\n\t}\n}\n\nfunction fmt(val, pfx, str, long) {\n\tvar num = (val | 0) === val ? val : ~~(val + 0.5);\n\treturn pfx + num + (long ? (' ' + str + (num != 1 ? 's' : '')) : str[0]);\n}\n\nexport function format(num, long) {\n\tvar pfx = num < 0 ? '-' : '', abs = num < 0 ? -num : num;\n\tif (abs < SEC) return num + (long ? ' ms' : 'ms');\n\tif (abs < MIN) return fmt(abs / SEC, pfx, 'second', long);\n\tif (abs < HOUR) return fmt(abs / MIN, pfx, 'minute', long);\n\tif (abs < DAY) return fmt(abs / HOUR, pfx, 'hour', long);\n\tif (abs < YEAR) return fmt(abs / DAY, pfx, 'day', long);\n\treturn fmt(abs / YEAR, pfx, 'year', long);\n}\n","\n;(function (name, root, factory) {\n if (typeof exports === 'object') {\n module.exports = factory()\n module.exports['default'] = factory()\n }\n /* istanbul ignore next */\n else if (typeof define === 'function' && define.amd) {\n define(factory)\n }\n else {\n root[name] = factory()\n }\n}('slugify', this, function () {\n var charMap = JSON.parse('{\"$\":\"dollar\",\"%\":\"percent\",\"&\":\"and\",\"<\":\"less\",\">\":\"greater\",\"|\":\"or\",\"¢\":\"cent\",\"£\":\"pound\",\"¤\":\"currency\",\"¥\":\"yen\",\"©\":\"(c)\",\"ª\":\"a\",\"®\":\"(r)\",\"º\":\"o\",\"À\":\"A\",\"Á\":\"A\",\"Â\":\"A\",\"Ã\":\"A\",\"Ä\":\"A\",\"Å\":\"A\",\"Æ\":\"AE\",\"Ç\":\"C\",\"È\":\"E\",\"É\":\"E\",\"Ê\":\"E\",\"Ë\":\"E\",\"Ì\":\"I\",\"Í\":\"I\",\"Î\":\"I\",\"Ï\":\"I\",\"Ð\":\"D\",\"Ñ\":\"N\",\"Ò\":\"O\",\"Ó\":\"O\",\"Ô\":\"O\",\"Õ\":\"O\",\"Ö\":\"O\",\"Ø\":\"O\",\"Ù\":\"U\",\"Ú\":\"U\",\"Û\":\"U\",\"Ü\":\"U\",\"Ý\":\"Y\",\"Þ\":\"TH\",\"ß\":\"ss\",\"à\":\"a\",\"á\":\"a\",\"â\":\"a\",\"ã\":\"a\",\"ä\":\"a\",\"å\":\"a\",\"æ\":\"ae\",\"ç\":\"c\",\"è\":\"e\",\"é\":\"e\",\"ê\":\"e\",\"ë\":\"e\",\"ì\":\"i\",\"í\":\"i\",\"î\":\"i\",\"ï\":\"i\",\"ð\":\"d\",\"ñ\":\"n\",\"ò\":\"o\",\"ó\":\"o\",\"ô\":\"o\",\"õ\":\"o\",\"ö\":\"o\",\"ø\":\"o\",\"ù\":\"u\",\"ú\":\"u\",\"û\":\"u\",\"ü\":\"u\",\"ý\":\"y\",\"þ\":\"th\",\"ÿ\":\"y\",\"Ā\":\"A\",\"ā\":\"a\",\"Ă\":\"A\",\"ă\":\"a\",\"Ą\":\"A\",\"ą\":\"a\",\"Ć\":\"C\",\"ć\":\"c\",\"Č\":\"C\",\"č\":\"c\",\"Ď\":\"D\",\"ď\":\"d\",\"Đ\":\"DJ\",\"đ\":\"dj\",\"Ē\":\"E\",\"ē\":\"e\",\"Ė\":\"E\",\"ė\":\"e\",\"Ę\":\"e\",\"ę\":\"e\",\"Ě\":\"E\",\"ě\":\"e\",\"Ğ\":\"G\",\"ğ\":\"g\",\"Ģ\":\"G\",\"ģ\":\"g\",\"Ĩ\":\"I\",\"ĩ\":\"i\",\"Ī\":\"i\",\"ī\":\"i\",\"Į\":\"I\",\"į\":\"i\",\"İ\":\"I\",\"ı\":\"i\",\"Ķ\":\"k\",\"ķ\":\"k\",\"Ļ\":\"L\",\"ļ\":\"l\",\"Ľ\":\"L\",\"ľ\":\"l\",\"Ł\":\"L\",\"ł\":\"l\",\"Ń\":\"N\",\"ń\":\"n\",\"Ņ\":\"N\",\"ņ\":\"n\",\"Ň\":\"N\",\"ň\":\"n\",\"Ō\":\"O\",\"ō\":\"o\",\"Ő\":\"O\",\"ő\":\"o\",\"Œ\":\"OE\",\"œ\":\"oe\",\"Ŕ\":\"R\",\"ŕ\":\"r\",\"Ř\":\"R\",\"ř\":\"r\",\"Ś\":\"S\",\"ś\":\"s\",\"Ş\":\"S\",\"ş\":\"s\",\"Š\":\"S\",\"š\":\"s\",\"Ţ\":\"T\",\"ţ\":\"t\",\"Ť\":\"T\",\"ť\":\"t\",\"Ũ\":\"U\",\"ũ\":\"u\",\"Ū\":\"u\",\"ū\":\"u\",\"Ů\":\"U\",\"ů\":\"u\",\"Ű\":\"U\",\"ű\":\"u\",\"Ų\":\"U\",\"ų\":\"u\",\"Ŵ\":\"W\",\"ŵ\":\"w\",\"Ŷ\":\"Y\",\"ŷ\":\"y\",\"Ÿ\":\"Y\",\"Ź\":\"Z\",\"ź\":\"z\",\"Ż\":\"Z\",\"ż\":\"z\",\"Ž\":\"Z\",\"ž\":\"z\",\"Ə\":\"E\",\"ƒ\":\"f\",\"Ơ\":\"O\",\"ơ\":\"o\",\"Ư\":\"U\",\"ư\":\"u\",\"Lj\":\"LJ\",\"lj\":\"lj\",\"Nj\":\"NJ\",\"nj\":\"nj\",\"Ș\":\"S\",\"ș\":\"s\",\"Ț\":\"T\",\"ț\":\"t\",\"ə\":\"e\",\"˚\":\"o\",\"Ά\":\"A\",\"Έ\":\"E\",\"Ή\":\"H\",\"Ί\":\"I\",\"Ό\":\"O\",\"Ύ\":\"Y\",\"Ώ\":\"W\",\"ΐ\":\"i\",\"Α\":\"A\",\"Β\":\"B\",\"Γ\":\"G\",\"Δ\":\"D\",\"Ε\":\"E\",\"Ζ\":\"Z\",\"Η\":\"H\",\"Θ\":\"8\",\"Ι\":\"I\",\"Κ\":\"K\",\"Λ\":\"L\",\"Μ\":\"M\",\"Ν\":\"N\",\"Ξ\":\"3\",\"Ο\":\"O\",\"Π\":\"P\",\"Ρ\":\"R\",\"Σ\":\"S\",\"Τ\":\"T\",\"Υ\":\"Y\",\"Φ\":\"F\",\"Χ\":\"X\",\"Ψ\":\"PS\",\"Ω\":\"W\",\"Ϊ\":\"I\",\"Ϋ\":\"Y\",\"ά\":\"a\",\"έ\":\"e\",\"ή\":\"h\",\"ί\":\"i\",\"ΰ\":\"y\",\"α\":\"a\",\"β\":\"b\",\"γ\":\"g\",\"δ\":\"d\",\"ε\":\"e\",\"ζ\":\"z\",\"η\":\"h\",\"θ\":\"8\",\"ι\":\"i\",\"κ\":\"k\",\"λ\":\"l\",\"μ\":\"m\",\"ν\":\"n\",\"ξ\":\"3\",\"ο\":\"o\",\"π\":\"p\",\"ρ\":\"r\",\"ς\":\"s\",\"σ\":\"s\",\"τ\":\"t\",\"υ\":\"y\",\"φ\":\"f\",\"χ\":\"x\",\"ψ\":\"ps\",\"ω\":\"w\",\"ϊ\":\"i\",\"ϋ\":\"y\",\"ό\":\"o\",\"ύ\":\"y\",\"ώ\":\"w\",\"Ё\":\"Yo\",\"Ђ\":\"DJ\",\"Є\":\"Ye\",\"І\":\"I\",\"Ї\":\"Yi\",\"Ј\":\"J\",\"Љ\":\"LJ\",\"Њ\":\"NJ\",\"Ћ\":\"C\",\"Џ\":\"DZ\",\"А\":\"A\",\"Б\":\"B\",\"В\":\"V\",\"Г\":\"G\",\"Д\":\"D\",\"Е\":\"E\",\"Ж\":\"Zh\",\"З\":\"Z\",\"И\":\"I\",\"Й\":\"J\",\"К\":\"K\",\"Л\":\"L\",\"М\":\"M\",\"Н\":\"N\",\"О\":\"O\",\"П\":\"P\",\"Р\":\"R\",\"С\":\"S\",\"Т\":\"T\",\"У\":\"U\",\"Ф\":\"F\",\"Х\":\"H\",\"Ц\":\"C\",\"Ч\":\"Ch\",\"Ш\":\"Sh\",\"Щ\":\"Sh\",\"Ъ\":\"U\",\"Ы\":\"Y\",\"Ь\":\"\",\"Э\":\"E\",\"Ю\":\"Yu\",\"Я\":\"Ya\",\"а\":\"a\",\"б\":\"b\",\"в\":\"v\",\"г\":\"g\",\"д\":\"d\",\"е\":\"e\",\"ж\":\"zh\",\"з\":\"z\",\"и\":\"i\",\"й\":\"j\",\"к\":\"k\",\"л\":\"l\",\"м\":\"m\",\"н\":\"n\",\"о\":\"o\",\"п\":\"p\",\"р\":\"r\",\"с\":\"s\",\"т\":\"t\",\"у\":\"u\",\"ф\":\"f\",\"х\":\"h\",\"ц\":\"c\",\"ч\":\"ch\",\"ш\":\"sh\",\"щ\":\"sh\",\"ъ\":\"u\",\"ы\":\"y\",\"ь\":\"\",\"э\":\"e\",\"ю\":\"yu\",\"я\":\"ya\",\"ё\":\"yo\",\"ђ\":\"dj\",\"є\":\"ye\",\"і\":\"i\",\"ї\":\"yi\",\"ј\":\"j\",\"љ\":\"lj\",\"њ\":\"nj\",\"ћ\":\"c\",\"ѝ\":\"u\",\"џ\":\"dz\",\"Ґ\":\"G\",\"ґ\":\"g\",\"Ғ\":\"GH\",\"ғ\":\"gh\",\"Қ\":\"KH\",\"қ\":\"kh\",\"Ң\":\"NG\",\"ң\":\"ng\",\"Ү\":\"UE\",\"ү\":\"ue\",\"Ұ\":\"U\",\"ұ\":\"u\",\"Һ\":\"H\",\"һ\":\"h\",\"Ә\":\"AE\",\"ә\":\"ae\",\"Ө\":\"OE\",\"ө\":\"oe\",\"Ա\":\"A\",\"Բ\":\"B\",\"Գ\":\"G\",\"Դ\":\"D\",\"Ե\":\"E\",\"Զ\":\"Z\",\"Է\":\"E\\'\",\"Ը\":\"Y\\'\",\"Թ\":\"T\\'\",\"Ժ\":\"JH\",\"Ի\":\"I\",\"Լ\":\"L\",\"Խ\":\"X\",\"Ծ\":\"C\\'\",\"Կ\":\"K\",\"Հ\":\"H\",\"Ձ\":\"D\\'\",\"Ղ\":\"GH\",\"Ճ\":\"TW\",\"Մ\":\"M\",\"Յ\":\"Y\",\"Ն\":\"N\",\"Շ\":\"SH\",\"Չ\":\"CH\",\"Պ\":\"P\",\"Ջ\":\"J\",\"Ռ\":\"R\\'\",\"Ս\":\"S\",\"Վ\":\"V\",\"Տ\":\"T\",\"Ր\":\"R\",\"Ց\":\"C\",\"Փ\":\"P\\'\",\"Ք\":\"Q\\'\",\"Օ\":\"O\\'\\'\",\"Ֆ\":\"F\",\"և\":\"EV\",\"ء\":\"a\",\"آ\":\"aa\",\"أ\":\"a\",\"ؤ\":\"u\",\"إ\":\"i\",\"ئ\":\"e\",\"ا\":\"a\",\"ب\":\"b\",\"ة\":\"h\",\"ت\":\"t\",\"ث\":\"th\",\"ج\":\"j\",\"ح\":\"h\",\"خ\":\"kh\",\"د\":\"d\",\"ذ\":\"th\",\"ر\":\"r\",\"ز\":\"z\",\"س\":\"s\",\"ش\":\"sh\",\"ص\":\"s\",\"ض\":\"dh\",\"ط\":\"t\",\"ظ\":\"z\",\"ع\":\"a\",\"غ\":\"gh\",\"ف\":\"f\",\"ق\":\"q\",\"ك\":\"k\",\"ل\":\"l\",\"م\":\"m\",\"ن\":\"n\",\"ه\":\"h\",\"و\":\"w\",\"ى\":\"a\",\"ي\":\"y\",\"ً\":\"an\",\"ٌ\":\"on\",\"ٍ\":\"en\",\"َ\":\"a\",\"ُ\":\"u\",\"ِ\":\"e\",\"ْ\":\"\",\"٠\":\"0\",\"١\":\"1\",\"٢\":\"2\",\"٣\":\"3\",\"٤\":\"4\",\"٥\":\"5\",\"٦\":\"6\",\"٧\":\"7\",\"٨\":\"8\",\"٩\":\"9\",\"پ\":\"p\",\"چ\":\"ch\",\"ژ\":\"zh\",\"ک\":\"k\",\"گ\":\"g\",\"ی\":\"y\",\"۰\":\"0\",\"۱\":\"1\",\"۲\":\"2\",\"۳\":\"3\",\"۴\":\"4\",\"۵\":\"5\",\"۶\":\"6\",\"۷\":\"7\",\"۸\":\"8\",\"۹\":\"9\",\"฿\":\"baht\",\"ა\":\"a\",\"ბ\":\"b\",\"გ\":\"g\",\"დ\":\"d\",\"ე\":\"e\",\"ვ\":\"v\",\"ზ\":\"z\",\"თ\":\"t\",\"ი\":\"i\",\"კ\":\"k\",\"ლ\":\"l\",\"მ\":\"m\",\"ნ\":\"n\",\"ო\":\"o\",\"პ\":\"p\",\"ჟ\":\"zh\",\"რ\":\"r\",\"ს\":\"s\",\"ტ\":\"t\",\"უ\":\"u\",\"ფ\":\"f\",\"ქ\":\"k\",\"ღ\":\"gh\",\"ყ\":\"q\",\"შ\":\"sh\",\"ჩ\":\"ch\",\"ც\":\"ts\",\"ძ\":\"dz\",\"წ\":\"ts\",\"ჭ\":\"ch\",\"ხ\":\"kh\",\"ჯ\":\"j\",\"ჰ\":\"h\",\"Ṣ\":\"S\",\"ṣ\":\"s\",\"Ẁ\":\"W\",\"ẁ\":\"w\",\"Ẃ\":\"W\",\"ẃ\":\"w\",\"Ẅ\":\"W\",\"ẅ\":\"w\",\"ẞ\":\"SS\",\"Ạ\":\"A\",\"ạ\":\"a\",\"Ả\":\"A\",\"ả\":\"a\",\"Ấ\":\"A\",\"ấ\":\"a\",\"Ầ\":\"A\",\"ầ\":\"a\",\"Ẩ\":\"A\",\"ẩ\":\"a\",\"Ẫ\":\"A\",\"ẫ\":\"a\",\"Ậ\":\"A\",\"ậ\":\"a\",\"Ắ\":\"A\",\"ắ\":\"a\",\"Ằ\":\"A\",\"ằ\":\"a\",\"Ẳ\":\"A\",\"ẳ\":\"a\",\"Ẵ\":\"A\",\"ẵ\":\"a\",\"Ặ\":\"A\",\"ặ\":\"a\",\"Ẹ\":\"E\",\"ẹ\":\"e\",\"Ẻ\":\"E\",\"ẻ\":\"e\",\"Ẽ\":\"E\",\"ẽ\":\"e\",\"Ế\":\"E\",\"ế\":\"e\",\"Ề\":\"E\",\"ề\":\"e\",\"Ể\":\"E\",\"ể\":\"e\",\"Ễ\":\"E\",\"ễ\":\"e\",\"Ệ\":\"E\",\"ệ\":\"e\",\"Ỉ\":\"I\",\"ỉ\":\"i\",\"Ị\":\"I\",\"ị\":\"i\",\"Ọ\":\"O\",\"ọ\":\"o\",\"Ỏ\":\"O\",\"ỏ\":\"o\",\"Ố\":\"O\",\"ố\":\"o\",\"Ồ\":\"O\",\"ồ\":\"o\",\"Ổ\":\"O\",\"ổ\":\"o\",\"Ỗ\":\"O\",\"ỗ\":\"o\",\"Ộ\":\"O\",\"ộ\":\"o\",\"Ớ\":\"O\",\"ớ\":\"o\",\"Ờ\":\"O\",\"ờ\":\"o\",\"Ở\":\"O\",\"ở\":\"o\",\"Ỡ\":\"O\",\"ỡ\":\"o\",\"Ợ\":\"O\",\"ợ\":\"o\",\"Ụ\":\"U\",\"ụ\":\"u\",\"Ủ\":\"U\",\"ủ\":\"u\",\"Ứ\":\"U\",\"ứ\":\"u\",\"Ừ\":\"U\",\"ừ\":\"u\",\"Ử\":\"U\",\"ử\":\"u\",\"Ữ\":\"U\",\"ữ\":\"u\",\"Ự\":\"U\",\"ự\":\"u\",\"Ỳ\":\"Y\",\"ỳ\":\"y\",\"Ỵ\":\"Y\",\"ỵ\":\"y\",\"Ỷ\":\"Y\",\"ỷ\":\"y\",\"Ỹ\":\"Y\",\"ỹ\":\"y\",\"–\":\"-\",\"‘\":\"\\'\",\"’\":\"\\'\",\"“\":\"\\\\\\\"\",\"”\":\"\\\\\\\"\",\"„\":\"\\\\\\\"\",\"†\":\"+\",\"•\":\"*\",\"…\":\"...\",\"₠\":\"ecu\",\"₢\":\"cruzeiro\",\"₣\":\"french franc\",\"₤\":\"lira\",\"₥\":\"mill\",\"₦\":\"naira\",\"₧\":\"peseta\",\"₨\":\"rupee\",\"₩\":\"won\",\"₪\":\"new shequel\",\"₫\":\"dong\",\"€\":\"euro\",\"₭\":\"kip\",\"₮\":\"tugrik\",\"₯\":\"drachma\",\"₰\":\"penny\",\"₱\":\"peso\",\"₲\":\"guarani\",\"₳\":\"austral\",\"₴\":\"hryvnia\",\"₵\":\"cedi\",\"₸\":\"kazakhstani tenge\",\"₹\":\"indian rupee\",\"₺\":\"turkish lira\",\"₽\":\"russian ruble\",\"₿\":\"bitcoin\",\"℠\":\"sm\",\"™\":\"tm\",\"∂\":\"d\",\"∆\":\"delta\",\"∑\":\"sum\",\"∞\":\"infinity\",\"♥\":\"love\",\"元\":\"yuan\",\"円\":\"yen\",\"﷼\":\"rial\",\"ﻵ\":\"laa\",\"ﻷ\":\"laa\",\"ﻹ\":\"lai\",\"ﻻ\":\"la\"}')\n var locales = JSON.parse('{\"bg\":{\"Й\":\"Y\",\"Ц\":\"Ts\",\"Щ\":\"Sht\",\"Ъ\":\"A\",\"Ь\":\"Y\",\"й\":\"y\",\"ц\":\"ts\",\"щ\":\"sht\",\"ъ\":\"a\",\"ь\":\"y\"},\"de\":{\"Ä\":\"AE\",\"ä\":\"ae\",\"Ö\":\"OE\",\"ö\":\"oe\",\"Ü\":\"UE\",\"ü\":\"ue\",\"ß\":\"ss\",\"%\":\"prozent\",\"&\":\"und\",\"|\":\"oder\",\"∑\":\"summe\",\"∞\":\"unendlich\",\"♥\":\"liebe\"},\"es\":{\"%\":\"por ciento\",\"&\":\"y\",\"<\":\"menor que\",\">\":\"mayor que\",\"|\":\"o\",\"¢\":\"centavos\",\"£\":\"libras\",\"¤\":\"moneda\",\"₣\":\"francos\",\"∑\":\"suma\",\"∞\":\"infinito\",\"♥\":\"amor\"},\"fr\":{\"%\":\"pourcent\",\"&\":\"et\",\"<\":\"plus petit\",\">\":\"plus grand\",\"|\":\"ou\",\"¢\":\"centime\",\"£\":\"livre\",\"¤\":\"devise\",\"₣\":\"franc\",\"∑\":\"somme\",\"∞\":\"infini\",\"♥\":\"amour\"},\"pt\":{\"%\":\"porcento\",\"&\":\"e\",\"<\":\"menor\",\">\":\"maior\",\"|\":\"ou\",\"¢\":\"centavo\",\"∑\":\"soma\",\"£\":\"libra\",\"∞\":\"infinito\",\"♥\":\"amor\"},\"uk\":{\"И\":\"Y\",\"и\":\"y\",\"Й\":\"Y\",\"й\":\"y\",\"Ц\":\"Ts\",\"ц\":\"ts\",\"Х\":\"Kh\",\"х\":\"kh\",\"Щ\":\"Shch\",\"щ\":\"shch\",\"Г\":\"H\",\"г\":\"h\"},\"vi\":{\"Đ\":\"D\",\"đ\":\"d\"},\"da\":{\"Ø\":\"OE\",\"ø\":\"oe\",\"Å\":\"AA\",\"å\":\"aa\",\"%\":\"procent\",\"&\":\"og\",\"|\":\"eller\",\"$\":\"dollar\",\"<\":\"mindre end\",\">\":\"større end\"},\"nb\":{\"&\":\"og\",\"Å\":\"AA\",\"Æ\":\"AE\",\"Ø\":\"OE\",\"å\":\"aa\",\"æ\":\"ae\",\"ø\":\"oe\"},\"it\":{\"&\":\"e\"},\"nl\":{\"&\":\"en\"},\"sv\":{\"&\":\"och\",\"Å\":\"AA\",\"Ä\":\"AE\",\"Ö\":\"OE\",\"å\":\"aa\",\"ä\":\"ae\",\"ö\":\"oe\"}}')\n\n function replace (string, options) {\n if (typeof string !== 'string') {\n throw new Error('slugify: string argument expected')\n }\n\n options = (typeof options === 'string')\n ? {replacement: options}\n : options || {}\n\n var locale = locales[options.locale] || {}\n\n var replacement = options.replacement === undefined ? '-' : options.replacement\n\n var trim = options.trim === undefined ? true : options.trim\n\n var slug = string.normalize().split('')\n // replace characters based on charMap\n .reduce(function (result, ch) {\n var appendChar = locale[ch];\n if (appendChar === undefined) appendChar = charMap[ch];\n if (appendChar === undefined) appendChar = ch;\n if (appendChar === replacement) appendChar = ' ';\n return result + appendChar\n // remove not allowed characters\n .replace(options.remove || /[^\\w\\s$*_+~.()'\"!\\-:@]+/g, '')\n }, '');\n\n if (options.strict) {\n slug = slug.replace(/[^A-Za-z0-9\\s]/g, '');\n }\n\n if (trim) {\n slug = slug.trim()\n }\n\n // Replace spaces with replacement character, treating multiple consecutive\n // spaces as a single space.\n slug = slug.replace(/\\s+/g, replacement);\n\n if (options.lower) {\n slug = slug.toLowerCase()\n }\n\n return slug\n }\n\n replace.extend = function (customMap) {\n Object.assign(charMap, customMap)\n }\n\n return replace\n}))\n","(function(exportTo) {\n \"use strict\";\n\n var selfClosingTags = [\"area\", \"base\", \"br\", \"col\", \"embed\", \"hr\", \"img\", \"input\", \"keygen\", \"link\", \"menuitem\", \"meta\", \"param\", \"source\", \"track\", \"wbr\"];\n\n /**\n * Truncates a given HTML string to the specified length.\n * @param {string} text This is the HTMl string to be truncated\n * @param {object} options An options object defining how to truncate\n * Default values:\n * {\n * TruncateBy : 'words', // Options are 'words', 'characters' or 'paragraphs'\n * TruncateLength : 50, // The count to be used with TruncatedBy\n * StripHTML : false, // Whether or not the truncated text should contain HTML tags\n * Strict : true, // When set to false the truncated text finish at the end of the word\n * Suffix : '...' // Text to be appended to the end of the truncated text\n * }\n * @return {string} This returns the provided string truncated to the\n * length provided by the options. HTML tags may be stripped based\n * on the given options.\n */\n var truncatise = function(text,options) {\n var options = options || {},\n text = (text || \"\").trim(),\n truncatedText = \"\",\n currentState = 0,\n isEndOfWord = false,\n isTagOpen = false,\n currentTag = \"\",\n tagStack = [],\n nextChar = \"\";\n //Counters\n var charCounter = 0,\n wordCounter = 0,\n paragraphCounter = 0;\n //currentState values\n var NOT_TAG = 0,\n TAG_START = 1,\n TAG_ATTRIBUTES = 2;\n\n //Set default values\n options.TruncateBy = (options.TruncateBy === undefined\n || typeof options.TruncateBy !== \"string\"\n || !options.TruncateBy.match(/(word(s)?|character(s)?|paragraph(s)?)/))\n ? 'words'\n : options.TruncateBy.toLowerCase();\n options.TruncateLength = (options.TruncateLength === undefined\n || typeof options.TruncateLength !== \"number\")\n ? 50\n : options.TruncateLength;\n options.StripHTML = (options.StripHTML === undefined\n || typeof options.StripHTML !== \"boolean\")\n ? false\n : options.StripHTML;\n options.Strict = (options.Strict === undefined\n || typeof options.Strict !== \"boolean\")\n ? true\n : options.Strict;\n options.Suffix = (options.Suffix === undefined\n || typeof options.Suffix !== \"string\")\n ? '...'\n : options.Suffix;\n\n if(text === \"\" || (text.length <= options.TruncateLength && options.StripHTML === false)){\n return text;\n }\n\n if(options.StripHTML) {\n text = String(text).replace(/<br( \\/)?>/gi, ' ');\n }\n\n //If not splitting on paragraphs we can quickly remove tags using regex\n if(options.StripHTML && !options.TruncateBy.match(/(paragraph(s)?)/)){\n text = String(text).replace(/<!--(.*?)-->/gm, '').replace(/<\\/?[^>]+>/gi, '');\n }\n //Remove newline seperating paragraphs\n text = String(text).replace(/<\\/p>(\\r?\\n)+<p>/gm, '</p><p>');\n //Replace double newlines with paragraphs\n if(options.StripHTML && String(text).match(/\\r?\\n\\r?\\n/)){\n text = String(text).replace(/((.+)(\\r?\\n\\r?\\n|$))/gi, \"<p>$2</p>\");\n }\n\n for (var pointer = 0; pointer < text.length; pointer++ ) {\n\n var currentChar = text[pointer];\n\n switch(currentChar){\n case \"<\":\n if(currentState === NOT_TAG){\n currentState = TAG_START;\n currentTag = \"\";\n }\n if(!options.StripHTML){\n truncatedText += currentChar;\n }\n break;\n case \">\":\n if(currentState === TAG_START || currentState === TAG_ATTRIBUTES){\n currentState = NOT_TAG;\n currentTag = currentTag.toLowerCase();\n if(currentTag === \"/p\"){\n paragraphCounter++;\n if(options.StripHTML){\n truncatedText += \" \";\n }\n }\n\n // Ignore self-closing tags.\n if ((selfClosingTags.indexOf(currentTag) === -1) && (selfClosingTags.indexOf(currentTag + '/') === -1)) {\n if(currentTag.indexOf(\"/\") >= 0){\n tagStack.pop();\n } else {\n tagStack.push(currentTag);\n }\n }\n }\n if(!options.StripHTML){\n truncatedText += currentChar;\n }\n break;\n case \" \":\n if(currentState === TAG_START){\n currentState = TAG_ATTRIBUTES;\n }\n if(currentState === NOT_TAG){\n wordCounter++;\n charCounter++;\n }\n if(currentState === NOT_TAG || !options.StripHTML){\n truncatedText += currentChar;\n }\n break;\n default:\n if(currentState === NOT_TAG){\n charCounter++;\n }\n if(currentState === TAG_START){\n currentTag += currentChar;\n }\n if(currentState === NOT_TAG || !options.StripHTML){\n truncatedText += currentChar;\n }\n break;\n }\n\n nextChar = text[pointer + 1] || \"\";\n isEndOfWord = options.Strict ? true : (!currentChar.match(/[a-zA-ZÇ-Ü']/i) || !nextChar.match(/[a-zA-ZÇ-Ü']/i));\n\n if(options.TruncateBy.match(/word(s)?/i) && options.TruncateLength <= wordCounter){\n truncatedText = truncatedText.replace(/\\s+$/, '');\n break;\n }\n if(options.TruncateBy.match(/character(s)?/i) && options.TruncateLength <= charCounter && isEndOfWord){\n break;\n }\n if(options.TruncateBy.match(/paragraph(s)?/i) && options.TruncateLength === paragraphCounter){\n break;\n }\n }\n\n if(!options.StripHTML && tagStack.length > 0){\n while(tagStack.length > 0){\n var tag = tagStack.pop();\n if(tag!==\"!--\"){\n truncatedText += \"</\"+tag+\">\";\n }\n }\n }\n\n if(pointer < text.length - 1) {\n if(truncatedText.match(/<\\/p>$/gi)){\n truncatedText = truncatedText.replace(/(<\\/p>)$/gi, options.Suffix + \"$1\");\n }else{\n truncatedText = truncatedText + options.Suffix;\n }\n }\n\n return truncatedText.trim();\n };\n\n // Export to node\n if (typeof module !== 'undefined' && module.exports){\n return module.exports = truncatise;\n }\n\n // Nope, export to the browser instead.\n exportTo.truncatise = truncatise;\n}(this));\n","/* global define */\n\n(function (root, pluralize) {\n /* istanbul ignore else */\n if (typeof require === 'function' && typeof exports === 'object' && typeof module === 'object') {\n // Node.\n module.exports = pluralize();\n } else if (typeof define === 'function' && define.amd) {\n // AMD, registers as an anonymous module.\n define(function () {\n return pluralize();\n });\n } else {\n // Browser global.\n root.pluralize = pluralize();\n }\n})(this, function () {\n // Rule storage - pluralize and singularize need to be run sequentially,\n // while other rules can be optimized using an object for instant lookups.\n var pluralRules = [];\n var singularRules = [];\n var uncountables = {};\n var irregularPlurals = {};\n var irregularSingles = {};\n\n /**\n * Sanitize a pluralization rule to a usable regular expression.\n *\n * @param {(RegExp|string)} rule\n * @return {RegExp}\n */\n function sanitizeRule (rule) {\n if (typeof rule === 'string') {\n return new RegExp('^' + rule + '$', 'i');\n }\n\n return rule;\n }\n\n /**\n * Pass in a word token to produce a function that can replicate the case on\n * another word.\n *\n * @param {string} word\n * @param {string} token\n * @return {Function}\n */\n function restoreCase (word, token) {\n // Tokens are an exact match.\n if (word === token) return token;\n\n // Lower cased words. E.g. \"hello\".\n if (word === word.toLowerCase()) return token.toLowerCase();\n\n // Upper cased words. E.g. \"WHISKY\".\n if (word === word.toUpperCase()) return token.toUpperCase();\n\n // Title cased words. E.g. \"Title\".\n if (word[0] === word[0].toUpperCase()) {\n return token.charAt(0).toUpperCase() + token.substr(1).toLowerCase();\n }\n\n // Lower cased words. E.g. \"test\".\n return token.toLowerCase();\n }\n\n /**\n * Interpolate a regexp string.\n *\n * @param {string} str\n * @param {Array} args\n * @return {string}\n */\n function interpolate (str, args) {\n return str.replace(/\\$(\\d{1,2})/g, function (match, index) {\n return args[index] || '';\n });\n }\n\n /**\n * Replace a word using a rule.\n *\n * @param {string} word\n * @param {Array} rule\n * @return {string}\n */\n function replace (word, rule) {\n return word.replace(rule[0], function (match, index) {\n var result = interpolate(rule[1], arguments);\n\n if (match === '') {\n return restoreCase(word[index - 1], result);\n }\n\n return restoreCase(match, result);\n });\n }\n\n /**\n * Sanitize a word by passing in the word and sanitization rules.\n *\n * @param {string} token\n * @param {string} word\n * @param {Array} rules\n * @return {string}\n */\n function sanitizeWord (token, word, rules) {\n // Empty string or doesn't need fixing.\n if (!token.length || uncountables.hasOwnProperty(token)) {\n return word;\n }\n\n var len = rules.length;\n\n // Iterate over the sanitization rules and use the first one to match.\n while (len--) {\n var rule = rules[len];\n\n if (rule[0].test(word)) return replace(word, rule);\n }\n\n return word;\n }\n\n /**\n * Replace a word with the updated word.\n *\n * @param {Object} replaceMap\n * @param {Object} keepMap\n * @param {Array} rules\n * @return {Function}\n */\n function replaceWord (replaceMap, keepMap, rules) {\n return function (word) {\n // Get the correct token and case restoration functions.\n var token = word.toLowerCase();\n\n // Check against the keep object map.\n if (keepMap.hasOwnProperty(token)) {\n return restoreCase(word, token);\n }\n\n // Check against the replacement map for a direct word replacement.\n if (replaceMap.hasOwnProperty(token)) {\n return restoreCase(word, replaceMap[token]);\n }\n\n // Run all the rules against the word.\n return sanitizeWord(token, word, rules);\n };\n }\n\n /**\n * Check if a word is part of the map.\n */\n function checkWord (replaceMap, keepMap, rules, bool) {\n return function (word) {\n var token = word.toLowerCase();\n\n if (keepMap.hasOwnProperty(token)) return true;\n if (replaceMap.hasOwnProperty(token)) return false;\n\n return sanitizeWord(token, token, rules) === token;\n };\n }\n\n /**\n * Pluralize or singularize a word based on the passed in count.\n *\n * @param {string} word The word to pluralize\n * @param {number} count How many of the word exist\n * @param {boolean} inclusive Whether to prefix with the number (e.g. 3 ducks)\n * @return {string}\n */\n function pluralize (word, count, inclusive) {\n var pluralized = count === 1\n ? pluralize.singular(word) : pluralize.plural(word);\n\n return (inclusive ? count + ' ' : '') + pluralized;\n }\n\n /**\n * Pluralize a word.\n *\n * @type {Function}\n */\n pluralize.plural = replaceWord(\n irregularSingles, irregularPlurals, pluralRules\n );\n\n /**\n * Check if a word is plural.\n *\n * @type {Function}\n */\n pluralize.isPlural = checkWord(\n irregularSingles, irregularPlurals, pluralRules\n );\n\n /**\n * Singularize a word.\n *\n * @type {Function}\n */\n pluralize.singular = replaceWord(\n irregularPlurals, irregularSingles, singularRules\n );\n\n /**\n * Check if a word is singular.\n *\n * @type {Function}\n */\n pluralize.isSingular = checkWord(\n irregularPlurals, irregularSingles, singularRules\n );\n\n /**\n * Add a pluralization rule to the collection.\n *\n * @param {(string|RegExp)} rule\n * @param {string} replacement\n */\n pluralize.addPluralRule = function (rule, replacement) {\n pluralRules.push([sanitizeRule(rule), replacement]);\n };\n\n /**\n * Add a singularization rule to the collection.\n *\n * @param {(string|RegExp)} rule\n * @param {string} replacement\n */\n pluralize.addSingularRule = function (rule, replacement) {\n singularRules.push([sanitizeRule(rule), replacement]);\n };\n\n /**\n * Add an uncountable word rule.\n *\n * @param {(string|RegExp)} word\n */\n pluralize.addUncountableRule = function (word) {\n if (typeof word === 'string') {\n uncountables[word.toLowerCase()] = true;\n return;\n }\n\n // Set singular and plural references for the word.\n pluralize.addPluralRule(word, '$0');\n pluralize.addSingularRule(word, '$0');\n };\n\n /**\n * Add an irregular word definition.\n *\n * @param {string} single\n * @param {string} plural\n */\n pluralize.addIrregularRule = function (single, plural) {\n plural = plural.toLowerCase();\n single = single.toLowerCase();\n\n irregularSingles[single] = plural;\n irregularPlurals[plural] = single;\n };\n\n /**\n * Irregular rules.\n */\n [\n // Pronouns.\n ['I', 'we'],\n ['me', 'us'],\n ['he', 'they'],\n ['she', 'they'],\n ['them', 'them'],\n ['myself', 'ourselves'],\n ['yourself', 'yourselves'],\n ['itself', 'themselves'],\n ['herself', 'themselves'],\n ['himself', 'themselves'],\n ['themself', 'themselves'],\n ['is', 'are'],\n ['was', 'were'],\n ['has', 'have'],\n ['this', 'these'],\n ['that', 'those'],\n // Words ending in with a consonant and `o`.\n ['echo', 'echoes'],\n ['dingo', 'dingoes'],\n ['volcano', 'volcanoes'],\n ['tornado', 'tornadoes'],\n ['torpedo', 'torpedoes'],\n // Ends with `us`.\n ['genus', 'genera'],\n ['viscus', 'viscera'],\n // Ends with `ma`.\n ['stigma', 'stigmata'],\n ['stoma', 'stomata'],\n ['dogma', 'dogmata'],\n ['lemma', 'lemmata'],\n ['schema', 'schemata'],\n ['anathema', 'anathemata'],\n // Other irregular rules.\n ['ox', 'oxen'],\n ['axe', 'axes'],\n ['die', 'dice'],\n ['yes', 'yeses'],\n ['foot', 'feet'],\n ['eave', 'eaves'],\n ['goose', 'geese'],\n ['tooth', 'teeth'],\n ['quiz', 'quizzes'],\n ['human', 'humans'],\n ['proof', 'proofs'],\n ['carve', 'carves'],\n ['valve', 'valves'],\n ['looey', 'looies'],\n ['thief', 'thieves'],\n ['groove', 'grooves'],\n ['pickaxe', 'pickaxes'],\n ['passerby', 'passersby']\n ].forEach(function (rule) {\n return pluralize.addIrregularRule(rule[0], rule[1]);\n });\n\n /**\n * Pluralization rules.\n */\n [\n [/s?$/i, 's'],\n [/[^\\u0000-\\u007F]$/i, '$0'],\n [/([^aeiou]ese)$/i, '$1'],\n [/(ax|test)is$/i, '$1es'],\n [/(alias|[^aou]us|t[lm]as|gas|ris)$/i, '$1es'],\n [/(e[mn]u)s?$/i, '$1s'],\n [/([^l]ias|[aeiou]las|[ejzr]as|[iu]am)$/i, '$1'],\n [/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i, '$1i'],\n [/(alumn|alg|vertebr)(?:a|ae)$/i, '$1ae'],\n [/(seraph|cherub)(?:im)?$/i, '$1im'],\n [/(her|at|gr)o$/i, '$1oes'],\n [/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|automat|quor)(?:a|um)$/i, '$1a'],\n [/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)(?:a|on)$/i, '$1a'],\n [/sis$/i, 'ses'],\n [/(?:(kni|wi|li)fe|(ar|l|ea|eo|oa|hoo)f)$/i, '$1$2ves'],\n [/([^aeiouy]|qu)y$/i, '$1ies'],\n [/([^ch][ieo][ln])ey$/i, '$1ies'],\n [/(x|ch|ss|sh|zz)$/i, '$1es'],\n [/(matr|cod|mur|sil|vert|ind|append)(?:ix|ex)$/i, '$1ices'],\n [/\\b((?:tit)?m|l)(?:ice|ouse)$/i, '$1ice'],\n [/(pe)(?:rson|ople)$/i, '$1ople'],\n [/(child)(?:ren)?$/i, '$1ren'],\n [/eaux$/i, '$0'],\n [/m[ae]n$/i, 'men'],\n ['thou', 'you']\n ].forEach(function (rule) {\n return pluralize.addPluralRule(rule[0], rule[1]);\n });\n\n /**\n * Singularization rules.\n */\n [\n [/s$/i, ''],\n [/(ss)$/i, '$1'],\n [/(wi|kni|(?:after|half|high|low|mid|non|night|[^\\w]|^)li)ves$/i, '$1fe'],\n [/(ar|(?:wo|[ae])l|[eo][ao])ves$/i, '$1f'],\n [/ies$/i, 'y'],\n [/\\b([pl]|zomb|(?:neck|cross)?t|coll|faer|food|gen|goon|group|lass|talk|goal|cut)ies$/i, '$1ie'],\n [/\\b(mon|smil)ies$/i, '$1ey'],\n [/\\b((?:tit)?m|l)ice$/i, '$1ouse'],\n [/(seraph|cherub)im$/i, '$1'],\n [/(x|ch|ss|sh|zz|tto|go|cho|alias|[^aou]us|t[lm]as|gas|(?:her|at|gr)o|[aeiou]ris)(?:es)?$/i, '$1'],\n [/(analy|diagno|parenthe|progno|synop|the|empha|cri|ne)(?:sis|ses)$/i, '$1sis'],\n [/(movie|twelve|abuse|e[mn]u)s$/i, '$1'],\n [/(test)(?:is|es)$/i, '$1is'],\n [/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i, '$1us'],\n [/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|quor)a$/i, '$1um'],\n [/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)a$/i, '$1on'],\n [/(alumn|alg|vertebr)ae$/i, '$1a'],\n [/(cod|mur|sil|vert|ind)ices$/i, '$1ex'],\n [/(matr|append)ices$/i, '$1ix'],\n [/(pe)(rson|ople)$/i, '$1rson'],\n [/(child)ren$/i, '$1'],\n [/(eau)x?$/i, '$1'],\n [/men$/i, 'man']\n ].forEach(function (rule) {\n return pluralize.addSingularRule(rule[0], rule[1]);\n });\n\n /**\n * Uncountable rules.\n */\n [\n // Singular words with no plurals.\n 'adulthood',\n 'advice',\n 'agenda',\n 'aid',\n 'aircraft',\n 'alcohol',\n 'ammo',\n 'analytics',\n 'anime',\n 'athletics',\n 'audio',\n 'bison',\n 'blood',\n 'bream',\n 'buffalo',\n 'butter',\n 'carp',\n 'cash',\n 'chassis',\n 'chess',\n 'clothing',\n 'cod',\n 'commerce',\n 'cooperation',\n 'corps',\n 'debris',\n 'diabetes',\n 'digestion',\n 'elk',\n 'energy',\n 'equipment',\n 'excretion',\n 'expertise',\n 'firmware',\n 'flounder',\n 'fun',\n 'gallows',\n 'garbage',\n 'graffiti',\n 'hardware',\n 'headquarters',\n 'health',\n 'herpes',\n 'highjinks',\n 'homework',\n 'housework',\n 'information',\n 'jeans',\n 'justice',\n 'kudos',\n 'labour',\n 'literature',\n 'machinery',\n 'mackerel',\n 'mail',\n 'media',\n 'mews',\n 'moose',\n 'music',\n 'mud',\n 'manga',\n 'news',\n 'only',\n 'personnel',\n 'pike',\n 'plankton',\n 'pliers',\n 'police',\n 'pollution',\n 'premises',\n 'rain',\n 'research',\n 'rice',\n 'salmon',\n 'scissors',\n 'series',\n 'sewage',\n 'shambles',\n 'shrimp',\n 'software',\n 'species',\n 'staff',\n 'swine',\n 'tennis',\n 'traffic',\n 'transportation',\n 'trout',\n 'tuna',\n 'wealth',\n 'welfare',\n 'whiting',\n 'wildebeest',\n 'wildlife',\n 'you',\n /pok[eé]mon$/i,\n // Regexes.\n /[^aeiou]ese$/i, // \"chinese\", \"japanese\"\n /deer$/i, // \"deer\", \"reindeer\"\n /fish$/i, // \"fish\", \"blowfish\", \"angelfish\"\n /measles$/i,\n /o[iu]s$/i, // \"carnivorous\"\n /pox$/i, // \"chickpox\", \"smallpox\"\n /sheep$/i\n ].forEach(pluralize.addUncountableRule);\n\n return pluralize;\n});\n","// Latin-1 Supplement\n// upper case ranges\n// [À-ÖØ-ß]\n// lower case ranges\n// [à-öø-ÿ]\nexport const magicSplit = /^[a-zà-öø-ÿа-я]+|[A-ZÀ-ÖØ-ßА-Я][a-zà-öø-ÿа-я]+|[a-zà-öø-ÿа-я]+|[0-9]+|[A-ZÀ-ÖØ-ßА-Я]+(?![a-zà-öø-ÿа-я])/g;\nexport const spaceSplit = /\\S+/g;\n/**\n * A string.matchAll function that will return an array of \"string parts\" and the indexes at which it split each part\n */\nexport function getPartsAndIndexes(string, splitRegex) {\n const result = { parts: [], prefixes: [] };\n const matches = string.matchAll(splitRegex);\n let lastWordEndIndex = 0;\n for (const match of matches) {\n if (typeof match.index !== 'number')\n continue;\n const word = match[0];\n result.parts.push(word);\n const prefix = string.slice(lastWordEndIndex, match.index).trim();\n result.prefixes.push(prefix);\n lastWordEndIndex = match.index + word.length;\n }\n const tail = string.slice(lastWordEndIndex).trim();\n if (tail) {\n result.parts.push('');\n result.prefixes.push(tail);\n }\n return result;\n}\n/**\n * A function that splits a string on words and returns an array of words.\n * - It can prefix each word with a given character\n * - It can strip or keep special characters, this affects the logic for adding a prefix as well\n */\nexport function splitAndPrefix(string, options) {\n const { keepSpecialCharacters = false, keep, prefix = '' } = options || {};\n const normalString = string.trim().normalize('NFC');\n const hasSpaces = normalString.includes(' ');\n const split = hasSpaces ? spaceSplit : magicSplit;\n const partsAndIndexes = getPartsAndIndexes(normalString, split);\n return partsAndIndexes.parts\n .map((_part, i) => {\n let foundPrefix = partsAndIndexes.prefixes[i] || '';\n let part = _part;\n if (keepSpecialCharacters === false) {\n if (keep) {\n part = part\n .normalize('NFD')\n .replace(new RegExp(`[^a-zA-ZØßø0-9${keep.join('')}]`, 'g'), '');\n }\n if (!keep) {\n part = part.normalize('NFD').replace(/[^a-zA-ZØßø0-9]/g, '');\n foundPrefix = '';\n }\n }\n if (keep && foundPrefix) {\n foundPrefix = foundPrefix.replace(new RegExp(`[^${keep.join('')}]`, 'g'), '');\n }\n // the first word doesn't need a prefix, so only return the found prefix\n if (i === 0) {\n // console.log(`foundPrefix → `, foundPrefix)\n return foundPrefix + part;\n }\n if (!foundPrefix && !part)\n return '';\n if (!hasSpaces) {\n // return the found prefix OR fall back to a given prefix\n return (foundPrefix || prefix) + part;\n }\n // space based sentence was split on spaces, so only return found prefixes\n if (!foundPrefix && prefix.match(/\\s/)) {\n // in this case we have no more found prefix, it was trimmed, but we're looking to add a space\n // so let's return that space\n return ' ' + part;\n }\n return (foundPrefix || prefix) + part;\n })\n .filter(Boolean);\n}\n/**\n * Capitalises a single word\n * @returns the word with the first character in uppercase and the rest in lowercase\n */\nexport function capitaliseWord(string) {\n const match = string.matchAll(magicSplit).next().value;\n const firstLetterIndex = match ? match.index : 0;\n return (string.slice(0, firstLetterIndex + 1).toUpperCase() +\n string.slice(firstLetterIndex + 1).toLowerCase());\n}\n","import { capitaliseWord, magicSplit, splitAndPrefix } from './utils.js';\n/**\n * # 🐪 camelCase\n * converts a string to camelCase\n * - first lowercase then all capitalised\n * - *strips away* special characters by default\n *\n * @example\n * camelCase('$catDog') === 'catDog'\n * @example\n * camelCase('$catDog', { keepSpecialCharacters: true }) === '$catDog'\n */\nexport function camelCase(string, options) {\n return splitAndPrefix(string, options).reduce((result, word, index) => {\n return index === 0 || !(word[0] || '').match(magicSplit)\n ? result + word.toLowerCase()\n : result + capitaliseWord(word);\n }, '');\n}\n/**\n * # 🐫 PascalCase\n * converts a string to PascalCase (also called UpperCamelCase)\n * - all capitalised\n * - *strips away* special characters by default\n *\n * @example\n * pascalCase('$catDog') === 'CatDog'\n * @example\n * pascalCase('$catDog', { keepSpecialCharacters: true }) === '$CatDog'\n */\nexport function pascalCase(string, options) {\n return splitAndPrefix(string, options).reduce((result, word) => {\n return result + capitaliseWord(word);\n }, '');\n}\n/**\n * # 🐫 UpperCamelCase\n * converts a string to UpperCamelCase (also called PascalCase)\n * - all capitalised\n * - *strips away* special characters by default\n *\n * @example\n * upperCamelCase('$catDog') === 'CatDog'\n * @example\n * upperCamelCase('$catDog', { keepSpecialCharacters: true }) === '$CatDog'\n */\nexport const upperCamelCase = pascalCase;\n/**\n * # 🥙 kebab-case\n * converts a string to kebab-case\n * - hyphenated lowercase\n * - *strips away* special characters by default\n *\n * @example\n * kebabCase('$catDog') === 'cat-dog'\n * @example\n * kebabCase('$catDog', { keepSpecialCharacters: true }) === '$cat-dog'\n */\nexport function kebabCase(string, options) {\n return splitAndPrefix(string, { ...options, prefix: '-' })\n .join('')\n .toLowerCase();\n}\n/**\n * # 🐍 snake_case\n * converts a string to snake_case\n * - underscored lowercase\n * - *strips away* special characters by default\n *\n * @example\n * snakeCase('$catDog') === 'cat_dog'\n * @example\n * snakeCase('$catDog', { keepSpecialCharacters: true }) === '$cat_dog'\n */\nexport function snakeCase(string, options) {\n return splitAndPrefix(string, { ...options, prefix: '_' })\n .join('')\n .toLowerCase();\n}\n/**\n * # 📣 CONSTANT_CASE\n * converts a string to CONSTANT_CASE\n * - underscored uppercase\n * - *strips away* special characters by default\n *\n * @example\n * constantCase('$catDog') === 'CAT_DOG'\n * @example\n * constantCase('$catDog', { keepSpecialCharacters: true }) === '$CAT_DOG'\n */\nexport function constantCase(string, options) {\n return splitAndPrefix(string, { ...options, prefix: '_' })\n .join('')\n .toUpperCase();\n}\n/**\n * # 🚂 Train-Case\n * converts strings to Train-Case\n * - hyphenated & capitalised\n * - *strips away* special characters by default\n *\n * @example\n * trainCase('$catDog') === 'Cat-Dog'\n * @example\n * trainCase('$catDog', { keepSpecialCharacters: true }) === '$Cat-Dog'\n */\nexport function trainCase(string, options) {\n return splitAndPrefix(string, { ...options, prefix: '-' })\n .map((word) => capitaliseWord(word))\n .join('');\n}\n/**\n * # 🕊 Ada_Case\n * converts a string to Ada_Case\n * - underscored & capitalised\n * - *strips away* special characters by default\n *\n * @example\n * adaCase('$catDog') === 'Cat_Dog'\n * @example\n * adaCase('$catDog', { keepSpecialCharacters: true }) === '$Cat_Dog'\n */\nexport function adaCase(string, options) {\n return splitAndPrefix(string, { ...options, prefix: '_' })\n .map((part) => capitaliseWord(part))\n .join('');\n}\n/**\n * # 👔 COBOL-CASE\n * converts a string to COBOL-CASE\n * - hyphenated uppercase\n * - *strips away* special characters by default\n *\n * @example\n * cobolCase('$catDog') === 'CAT-DOG'\n * @example\n * cobolCase('$catDog', { keepSpecialCharacters: true }) === '$CAT-DOG'\n */\nexport function cobolCase(string, options) {\n return splitAndPrefix(string, { ...options, prefix: '-' })\n .join('')\n .toUpperCase();\n}\n/**\n * # 📍 Dot.notation\n * converts a string to dot.notation\n * - adds dots, does not change casing\n * - *strips away* special characters by default\n *\n * @example\n * dotNotation('$catDog') === 'cat.Dog'\n * @example\n * dotNotation('$catDog', { keepSpecialCharacters: true }) === '$cat.Dog'\n */\nexport function dotNotation(string, options) {\n return splitAndPrefix(string, { ...options, prefix: '.' }).join('');\n}\n/**\n * # 📂 Path/case\n * converts a string to path/case\n * - adds slashes, does not change casing\n * - *keeps* special characters by default\n *\n * @example\n * pathCase('$catDog') === '$cat/Dog'\n * @example\n * pathCase('$catDog', { keepSpecialCharacters: false }) === 'cat/Dog'\n */\nexport function pathCase(string, options = { keepSpecialCharacters: true }) {\n return splitAndPrefix(string, options).reduce((result, word, i) => {\n const prefix = i === 0 || word[0] === '/' ? '' : '/';\n return result + prefix + word;\n }, '');\n}\n/**\n * # 🛰 Space case\n * converts a string to space case\n * - adds spaces, does not change casing\n * - *keeps* special characters by default\n *\n * @example\n * spaceCase('$catDog') === '$cat Dog'\n * @example\n * spaceCase('$catDog', { keepSpecialCharacters: false }) === 'cat Dog'\n */\nexport function spaceCase(string, options = { keepSpecialCharacters: true }) {\n return splitAndPrefix(string, { ...options, prefix: ' ' }).join('');\n}\n/**\n * # 🏛 Capital Case\n * converts a string to Capital Case\n * - capitalizes words and adds spaces\n * - *keeps* special characters by default\n *\n * @example\n * capitalCase('$catDog') === '$Cat Dog'\n * @example\n * capitalCase('$catDog', { keepSpecialCharacters: false }) === 'Cat Dog'\n *\n * ⟪ if you do not want to add spaces, use `pascalCase()` ⟫\n */\nexport function capitalCase(string, options = { keepSpecialCharacters: true }) {\n return splitAndPrefix(string, { ...options, prefix: ' ' }).reduce((result, word) => {\n return result + capitaliseWord(word);\n }, '');\n}\n/**\n * # 🔡 lower case\n * converts a string to lower case\n * - makes words lowercase and adds spaces\n * - *keeps* special characters by default\n *\n * @example\n * lowerCase('$catDog') === '$cat dog'\n * @example\n * lowerCase('$catDog', { keepSpecialCharacters: false }) === 'cat dog'\n *\n * ⟪ if you do not want to add spaces, use the native JS `toLowerCase()` ⟫\n */\nexport function lowerCase(string, options = { keepSpecialCharacters: true }) {\n return splitAndPrefix(string, { ...options, prefix: ' ' })\n .join('')\n .toLowerCase();\n}\n/**\n * # 🔠 UPPER CASE\n * converts a string to UPPER CASE\n * - makes words upper case and adds spaces\n * - *keeps* special characters by default\n *\n * @example\n * upperCase('$catDog') === '$CAT DOG'\n * @example\n * upperCase('$catDog', { keepSpecialCharacters: false }) === 'CAT DOG'\n *\n * ⟪ if you do not want to add spaces, use the native JS `toUpperCase()` ⟫\n */\nexport function upperCase(string, options = { keepSpecialCharacters: true }) {\n return splitAndPrefix(string, { ...options, prefix: ' ' })\n .join('')\n .toUpperCase();\n}\n","// src/bytes.ts\nimport bytes from \"bytes\";\nvar bytes_default = {\n /**\n * Formats bytes to a human-readable string value. When input cannot be formatted, the `null` value is returned. The accepted options are as follows.\n *\n - `decimalPlaces`: Maximum number of decimal places to include in output. `default=2`.\n - `fixedDecimals`: Whether to always display the maximum number of decimal places. `default=false`.\n - `thousandsSeparator`: Specify the separator for thousands. `default=''`.\n - `unit`: The unit in which the result will be returned. It could be `B/KB/MB/GB/TB`. The default behavior is to auto-detect based on the input.\n - `unitSeparator`: The separator between the value and the `unit`. `default=''`.\n */\n format(valueInBytes, options) {\n return bytes.format(valueInBytes, options);\n },\n /**\n * Parse a human-readable string expression to bytes. If the unit value is a number, it will be\n * returned as it is. Otherwise, the string expression will be converted to a number representing\n * bytes.\n *\n * The `null` value is returned when the input cannot be parsed.\n *\n * Supported units and abbreviations are as follows and are case-insensitive:\n - `b` for bytes\n - `kb` for kilobytes\n - `mb` for megabytes\n - `gb` for gigabytes\n - `tb` for terabytes\n - `pb` for petabytes\n */\n parse(unit) {\n if (typeof unit === \"number\") {\n return unit;\n }\n return bytes.parse(unit);\n }\n};\n\n// src/uuid.ts\nimport { randomUUID } from \"crypto\";\nvar uuidGenerator = randomUUID;\nfunction uuid(options) {\n return uuidGenerator(options);\n}\nuuid.use = function uuidUse(generator) {\n uuidGenerator = generator;\n};\nuuid.restore = function uuidRestore() {\n uuidGenerator = randomUUID;\n};\n\n// src/seconds.ts\nimport { parse, format } from \"@lukeed/ms\";\nvar seconds_default = {\n /**\n * Formats seconds to pretty string output\n */\n format(seconds, long) {\n return format(seconds * 1e3, long);\n },\n /**\n * Parse the time expression to seconds. If the unit value is a number, then\n * it will be returned as it is. Otherwise the string expression will be\n * converted to a number representing seconds.\n */\n parse(duration) {\n if (typeof duration === \"number\") {\n return duration;\n }\n const milliseconds = parse(duration);\n if (milliseconds === void 0) {\n throw new Error(`Invalid duration expression \"${duration}\"`);\n }\n return Math.floor(milliseconds / 1e3);\n }\n};\n\n// src/slugify.ts\nimport { default as slugifyPkg } from \"slugify\";\nvar slug = slugifyPkg;\n\n// src/random.ts\nimport { randomBytes } from \"crypto\";\nvar defaultGenerator = (size) => {\n const bits = (size + 1) * 6;\n const buffer = randomBytes(Math.ceil(bits / 8));\n return Buffer.from(buffer).toString(\"base64\").replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/\\=/g, \"\").slice(0, size);\n};\nvar randomGenerator = defaultGenerator;\nfunction random(size) {\n return randomGenerator(size);\n}\nrandom.use = function randomUse(generator) {\n randomGenerator = generator;\n};\nrandom.restore = function randomRestore() {\n randomGenerator = defaultGenerator;\n};\n\n// src/excerpt.ts\nimport truncatise from \"truncatise\";\nfunction excerpt(sentence2, charactersLimit, options) {\n return truncatise(sentence2, {\n TruncateLength: charactersLimit,\n /**\n * Do not complete words when \"completeWords\" is not explicitly set\n * to true\n */\n Strict: options && options.completeWords === true ? false : true,\n StripHTML: true,\n TruncateBy: \"characters\",\n Suffix: options && options.suffix\n });\n}\n\n// src/justify.ts\nfunction applyPadding(value, options) {\n if (options.paddingLeft) {\n value = `${options.paddingChar.repeat(options.paddingLeft)}${value}`;\n }\n if (options.paddingRight) {\n value = `${value}${options.paddingChar.repeat(options.paddingRight)}`;\n }\n return value;\n}\nfunction justify(columns, options) {\n const normalizedOptions = {\n align: \"left\",\n indent: \" \",\n ...options\n };\n return columns.map((column) => {\n const columnWidth = options.getLength?.(column) ?? column.length;\n if (columnWidth >= normalizedOptions.width) {\n return column;\n }\n if (normalizedOptions.align === \"left\") {\n return applyPadding(column, {\n paddingChar: normalizedOptions.indent,\n paddingRight: normalizedOptions.width - columnWidth\n });\n }\n return applyPadding(column, {\n paddingChar: normalizedOptions.indent,\n paddingLeft: normalizedOptions.width - columnWidth\n });\n });\n}\n\n// src/ordinal.ts\nfunction ordinal(value) {\n const transformedValue = Math.abs(typeof value === \"string\" ? Number.parseInt(value) : value);\n if (!Number.isFinite(transformedValue) || Number.isNaN(transformedValue)) {\n throw new Error(\"Cannot ordinalize invalid or infinite numbers\");\n }\n const percent = transformedValue % 100;\n if (percent >= 10 && percent <= 20) {\n return `${value}th`;\n }\n const decimal = transformedValue % 10;\n switch (decimal) {\n case 1:\n return `${value}st`;\n case 2:\n return `${value}nd`;\n case 3:\n return `${value}rd`;\n default:\n return `${value}th`;\n }\n}\n\n// src/truncate.ts\nimport truncatise2 from \"truncatise\";\nfunction truncate(sentence2, charactersLimit, options) {\n return truncatise2(sentence2, {\n TruncateLength: charactersLimit,\n /**\n * Do not complete words when \"completeWords\" is not explicitly set\n * to true\n */\n Strict: options && options.completeWords === true ? false : true,\n StripHTML: false,\n TruncateBy: \"characters\",\n Suffix: options && options.suffix\n });\n}\n\n// src/sentence.ts\nfunction sentence(values, options) {\n if (values.length === 0) {\n return \"\";\n }\n if (values.length === 1) {\n return values[0];\n }\n if (values.length === 2) {\n return `${values[0]}${options?.pairSeparator || \" and \"}${values[1]}`;\n }\n const normalized = Object.assign({ separator: \", \", lastSeparator: \", and \" }, options);\n return `${values.slice(0, -1).join(normalized.separator)}${normalized.lastSeparator}${values[values.length - 1]}`;\n}\n\n// src/word_wrap.ts\nfunction wordWrap(value, options) {\n const width = options.width;\n const indent = options.indent ?? \"\";\n const newLine = `${options.newLine ?? \"\\n\"}${indent}`;\n let regexString = \".{1,\" + width + \"}\";\n regexString += \"([\\\\s\\u200B]+|$)|[^\\\\s\\u200B]+?([\\\\s\\u200B]+|$)\";\n const re = new RegExp(regexString, \"g\");\n const lines = value.match(re) || [];\n const result = lines.map(function(line) {\n if (line.slice(-1) === \"\\n\") {\n line = line.slice(0, line.length - 1);\n }\n return options.escape ? options.escape(line) : line;\n }).join(newLine);\n return result;\n}\n\n// src/milliseconds.ts\nimport { parse as parse2, format as format2 } from \"@lukeed/ms\";\nvar milliseconds_default = {\n /**\n * Formats milliseconds to pretty string output\n */\n format(milliseconds, long) {\n return format2(milliseconds, long);\n },\n /**\n * Parse the time expression to milliseconds. If the unit value is a number,\n * then it will be returned as it is. Otherwise the string expression will\n * be converted to a number representing seconds.\n */\n parse(duration) {\n if (typeof duration === \"number\") {\n return duration;\n }\n const milliseconds = parse2(duration);\n if (milliseconds === void 0) {\n throw new Error(`Invalid duration expression \"${duration}\"`);\n }\n return milliseconds;\n }\n};\n\n// src/html_escape.ts\nfunction htmlEscape(value) {\n return value.replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(/</g, \"<\").replace(/>/g, \">\");\n}\n\n// src/interpolate.ts\nfunction parseProp(data, key) {\n const tokens = key.split(\".\");\n while (tokens.length) {\n if (data === null || typeof data !== \"object\") {\n return;\n }\n const token = tokens.shift();\n data = Object.hasOwn(data, token) ? data[token] : void 0;\n }\n return data;\n}\nfunction interpolate(input, data) {\n return input.replace(/(\\\\)?{{(.*?)}}/g, (_, escapeChar, key) => {\n if (escapeChar) {\n return `{{${key}}}`;\n }\n return parseProp(data, key.trim());\n });\n}\n\n// src/to_unix_slash.ts\nfunction toUnixSlash(path) {\n const isExtendedLengthPath = path.startsWith(\"\\\\\\\\?\\\\\");\n if (isExtendedLengthPath) {\n return path;\n }\n return path.replace(/\\\\/g, \"/\");\n}\n\n// src/pluralize.ts\nimport { default as pluralizePkg } from \"pluralize\";\nfunction pluralize(word, count, inclusive) {\n return pluralizePkg(word, count, inclusive);\n}\npluralize.addPluralRule = pluralizePkg.addPluralRule;\npluralize.addSingularRule = pluralizePkg.addSingularRule;\npluralize.addIrregularRule = pluralizePkg.addIrregularRule;\npluralize.addUncountableRule = pluralizePkg.addUncountableRule;\nvar plural = pluralizePkg.plural;\nvar singular = pluralizePkg.singular;\nvar isPlural = pluralizePkg.isPlural;\nvar isSingular = pluralizePkg.isSingular;\n\n// src/change_case.ts\nimport * as changeCase from \"case-anything\";\nvar NO_CASE_SPLIT_REGEXP = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g];\nvar NO_CASE_STRIP_REGEXP = /[^A-Z0-9]+/gi;\nvar SMALL_WORDS = /\\b(?:an?d?|a[st]|because|but|by|en|for|i[fn]|neither|nor|o[fnr]|only|over|per|so|some|tha[tn]|the|to|up|upon|vs?\\.?|versus|via|when|with|without|yet)\\b/i;\nvar TOKENS = /[^\\s:–—-]+|./g;\nvar WHITESPACE = /\\s/;\nvar IS_MANUAL_CASE = /.(?=[A-Z]|\\..)/;\nvar ALPHANUMERIC_PATTERN = /[A-Za-z0-9\\u00C0-\\u00FF]/;\nfunction titleCase(input) {\n let output = \"\";\n let result;\n while ((result = TOKENS.exec(input)) !== null) {\n const { 0: token, index } = result;\n if (!IS_MANUAL_CASE.test(token) && (!SMALL_WORDS.test(token) || index === 0 || index + token.length === input.length) && (input.charAt(index + token.length) !== \":\" || WHITESPACE.test(input.charAt(index + token.length + 1)))) {\n output += token.replace(ALPHANUMERIC_PATTERN, (char) => char.toUpperCase());\n continue;\n }\n output += token;\n }\n return output;\n}\nfunction camelCase2(value) {\n return changeCase.camelCase(value);\n}\nfunction snakeCase2(value) {\n return changeCase.snakeCase(value);\n}\nfunction dashCase(value, options) {\n if (options && options.capitalize) {\n return changeCase.trainCase(value);\n }\n return changeCase.kebabCase(value);\n}\nfunction pascalCase2(value) {\n return changeCase.pascalCase(value);\n}\nfunction capitalCase2(value) {\n return changeCase.capitalCase(value);\n}\nfunction sentenceCase(value) {\n return noCase(value, (input, index) => {\n const result = input.toLowerCase();\n if (index === 0) {\n return input.charAt(0).toUpperCase() + input.substring(1);\n }\n return result;\n });\n}\nfunction dotCase(value, options) {\n const transformedValue = changeCase.dotNotation(value);\n if (options && options.lowerCase) {\n return transformedValue.toLowerCase();\n }\n return transformedValue;\n}\nfunction noCase(value, transform) {\n let result = NO_CASE_SPLIT_REGEXP.reduce((input, regex) => input.replace(regex, \"$1\\0$2\"), value);\n result = result.replace(NO_CASE_STRIP_REGEXP, \"\\0\");\n let start = 0;\n let end = result.length;\n while (result.charAt(start) === \"\\0\") {\n start++;\n }\n while (result.charAt(end - 1) === \"\\0\") {\n end--;\n }\n return result.slice(start, end).split(\"\\0\").map(transform || ((input) => input.toLowerCase())).join(\" \");\n}\n\n// index.ts\nfunction condenseWhitespace(value) {\n return value.trim().replace(/\\s{2,}/g, \" \");\n}\nvar string = {\n excerpt,\n truncate,\n slug,\n interpolate,\n plural,\n pluralize,\n singular,\n isPlural,\n isSingular,\n camelCase: camelCase2,\n capitalCase: capitalCase2,\n dashCase,\n dotCase,\n noCase,\n pascalCase: pascalCase2,\n sentenceCase,\n snakeCase: snakeCase2,\n titleCase,\n random,\n sentence,\n condenseWhitespace,\n wordWrap,\n seconds: seconds_default,\n milliseconds: milliseconds_default,\n bytes: bytes_default,\n ordinal,\n htmlEscape,\n justify,\n uuid,\n toUnixSlash\n};\nvar index_default = string;\n\nexport {\n index_default\n};\n","var o = Object.defineProperty;\nvar a = (t, s, r) => s in t ? o(t, s, { enumerable: !0, configurable: !0, writable: !0, value: r }) : t[s] = r;\nvar n = (t, s, r) => a(t, typeof s != \"symbol\" ? s + \"\" : s, r);\nconst u = \"1.20250430.0\";\nclass l {\n /**\n * Creates a new TypedEventEmitter instance.\n */\n constructor() {\n /**\n * The internal event listener map for the emitter.\n */\n n(this, \"e\");\n this.e = {};\n }\n /**\n * Subscribe to an event with a typed listener.\n * @param event - The event name.\n * @param listener - The listener function.\n * @param ctx - The `this` context to apply to the listener when it is called\n * @returns the current instance for chaining\n */\n on(s, r, i) {\n return Array.isArray(this.e[s]) || (this.e[s] = []), this.e[s].push({\n fn: r,\n ctx: i || null\n }), this;\n }\n /**\n * Subscribe to an event once with a typed listener.\n * @param event - The event name.\n * @param listener - The listener function.\n * @param ctx - The `this` context to apply to the listener when it is called\n * @returns the current instance for chaining\n */\n once(s, r, i) {\n const f = this;\n function h() {\n r.apply(i || null, arguments), f.off(s, h);\n }\n return h._ = r, this.on(s, h, i);\n }\n /**\n * Emit an event.\n * @param event - The event name.\n * @param args - The arguments to pass to the listeners.\n * @returns the current instance for chaining\n */\n emit(s, ...r) {\n const i = this.e[s];\n return Array.isArray(i) && i.forEach((f) => {\n f.fn.apply(f.ctx || null, r);\n }), this;\n }\n /**\n * Unsubscribe from an event.\n * @param event - The event name.\n * @param listener - Optional. The listener function to remove.\n * @returns the current instance for chaining\n *\n * @remarks When no listener is provided, all listeners for the event will be removed, otherwise\n * only the specified listener will be removed.\n */\n off(s, r) {\n return Array.isArray(this.e[s]) && (r ? this.e[s] = this.e[s].filter(\n // @ts-ignore\n (i) => i.fn !== r && i.fn._ !== r\n ) : this.e[s] = []), this;\n }\n}\nexport {\n l as TypedEventEmitter,\n u as version\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["module","this","string","slug","truncatise","pluralize","require","interpolate","index","plural","randomUUID","randomBytes","Buffer","format2","parse2","changeCase.camelCase","changeCase.snakeCase","changeCase.trainCase","changeCase.kebabCase","changeCase.pascalCase","changeCase.capitalCase","changeCase.dotNotation"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7]}
|
package/index-DqbJXpcT.cjs
DELETED
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var bytes = { exports: {} };
|
|
3
|
-
var hasRequiredBytes;
|
|
4
|
-
function requireBytes() {
|
|
5
|
-
if (hasRequiredBytes) return bytes.exports;
|
|
6
|
-
hasRequiredBytes = 1;
|
|
7
|
-
bytes.exports = bytes$1;
|
|
8
|
-
bytes.exports.format = format;
|
|
9
|
-
bytes.exports.parse = parse;
|
|
10
|
-
var formatThousandsRegExp = /\B(?=(\d{3})+(?!\d))/g;
|
|
11
|
-
var formatDecimalsRegExp = /(?:\.0*|(\.[^0]+)0+)$/;
|
|
12
|
-
var map = {
|
|
13
|
-
b: 1,
|
|
14
|
-
kb: 1 << 10,
|
|
15
|
-
mb: 1 << 20,
|
|
16
|
-
gb: 1 << 30,
|
|
17
|
-
tb: Math.pow(1024, 4),
|
|
18
|
-
pb: Math.pow(1024, 5)
|
|
19
|
-
};
|
|
20
|
-
var parseRegExp = /^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i;
|
|
21
|
-
function bytes$1(value, options) {
|
|
22
|
-
if (typeof value === "string") {
|
|
23
|
-
return parse(value);
|
|
24
|
-
}
|
|
25
|
-
if (typeof value === "number") {
|
|
26
|
-
return format(value, options);
|
|
27
|
-
}
|
|
28
|
-
return null;
|
|
29
|
-
}
|
|
30
|
-
function format(value, options) {
|
|
31
|
-
if (!Number.isFinite(value)) {
|
|
32
|
-
return null;
|
|
33
|
-
}
|
|
34
|
-
var mag = Math.abs(value);
|
|
35
|
-
var thousandsSeparator = options && options.thousandsSeparator || "";
|
|
36
|
-
var unitSeparator = options && options.unitSeparator || "";
|
|
37
|
-
var decimalPlaces = options && options.decimalPlaces !== void 0 ? options.decimalPlaces : 2;
|
|
38
|
-
var fixedDecimals = Boolean(options && options.fixedDecimals);
|
|
39
|
-
var unit = options && options.unit || "";
|
|
40
|
-
if (!unit || !map[unit.toLowerCase()]) {
|
|
41
|
-
if (mag >= map.pb) {
|
|
42
|
-
unit = "PB";
|
|
43
|
-
} else if (mag >= map.tb) {
|
|
44
|
-
unit = "TB";
|
|
45
|
-
} else if (mag >= map.gb) {
|
|
46
|
-
unit = "GB";
|
|
47
|
-
} else if (mag >= map.mb) {
|
|
48
|
-
unit = "MB";
|
|
49
|
-
} else if (mag >= map.kb) {
|
|
50
|
-
unit = "KB";
|
|
51
|
-
} else {
|
|
52
|
-
unit = "B";
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
var val = value / map[unit.toLowerCase()];
|
|
56
|
-
var str = val.toFixed(decimalPlaces);
|
|
57
|
-
if (!fixedDecimals) {
|
|
58
|
-
str = str.replace(formatDecimalsRegExp, "$1");
|
|
59
|
-
}
|
|
60
|
-
if (thousandsSeparator) {
|
|
61
|
-
str = str.split(".").map(function(s, i) {
|
|
62
|
-
return i === 0 ? s.replace(formatThousandsRegExp, thousandsSeparator) : s;
|
|
63
|
-
}).join(".");
|
|
64
|
-
}
|
|
65
|
-
return str + unitSeparator + unit;
|
|
66
|
-
}
|
|
67
|
-
function parse(val) {
|
|
68
|
-
if (typeof val === "number" && !isNaN(val)) {
|
|
69
|
-
return val;
|
|
70
|
-
}
|
|
71
|
-
if (typeof val !== "string") {
|
|
72
|
-
return null;
|
|
73
|
-
}
|
|
74
|
-
var results = parseRegExp.exec(val);
|
|
75
|
-
var floatValue;
|
|
76
|
-
var unit = "b";
|
|
77
|
-
if (!results) {
|
|
78
|
-
floatValue = parseInt(val, 10);
|
|
79
|
-
unit = "b";
|
|
80
|
-
} else {
|
|
81
|
-
floatValue = parseFloat(results[1]);
|
|
82
|
-
unit = results[4].toLowerCase();
|
|
83
|
-
}
|
|
84
|
-
if (isNaN(floatValue)) {
|
|
85
|
-
return null;
|
|
86
|
-
}
|
|
87
|
-
return Math.floor(map[unit] * floatValue);
|
|
88
|
-
}
|
|
89
|
-
return bytes.exports;
|
|
90
|
-
}
|
|
91
|
-
exports.requireBytes = requireBytes;
|
|
92
|
-
//# sourceMappingURL=index-DqbJXpcT.cjs.map
|
package/index-DqbJXpcT.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-DqbJXpcT.cjs","sources":["../node_modules/.pnpm/bytes@3.1.2/node_modules/bytes/index.js"],"sourcesContent":["/*!\n * bytes\n * Copyright(c) 2012-2014 TJ Holowaychuk\n * Copyright(c) 2015 Jed Watson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = bytes;\nmodule.exports.format = format;\nmodule.exports.parse = parse;\n\n/**\n * Module variables.\n * @private\n */\n\nvar formatThousandsRegExp = /\\B(?=(\\d{3})+(?!\\d))/g;\n\nvar formatDecimalsRegExp = /(?:\\.0*|(\\.[^0]+)0+)$/;\n\nvar map = {\n b: 1,\n kb: 1 << 10,\n mb: 1 << 20,\n gb: 1 << 30,\n tb: Math.pow(1024, 4),\n pb: Math.pow(1024, 5),\n};\n\nvar parseRegExp = /^((-|\\+)?(\\d+(?:\\.\\d+)?)) *(kb|mb|gb|tb|pb)$/i;\n\n/**\n * Convert the given value in bytes into a string or parse to string to an integer in bytes.\n *\n * @param {string|number} value\n * @param {{\n * case: [string],\n * decimalPlaces: [number]\n * fixedDecimals: [boolean]\n * thousandsSeparator: [string]\n * unitSeparator: [string]\n * }} [options] bytes options.\n *\n * @returns {string|number|null}\n */\n\nfunction bytes(value, options) {\n if (typeof value === 'string') {\n return parse(value);\n }\n\n if (typeof value === 'number') {\n return format(value, options);\n }\n\n return null;\n}\n\n/**\n * Format the given value in bytes into a string.\n *\n * If the value is negative, it is kept as such. If it is a float,\n * it is rounded.\n *\n * @param {number} value\n * @param {object} [options]\n * @param {number} [options.decimalPlaces=2]\n * @param {number} [options.fixedDecimals=false]\n * @param {string} [options.thousandsSeparator=]\n * @param {string} [options.unit=]\n * @param {string} [options.unitSeparator=]\n *\n * @returns {string|null}\n * @public\n */\n\nfunction format(value, options) {\n if (!Number.isFinite(value)) {\n return null;\n }\n\n var mag = Math.abs(value);\n var thousandsSeparator = (options && options.thousandsSeparator) || '';\n var unitSeparator = (options && options.unitSeparator) || '';\n var decimalPlaces = (options && options.decimalPlaces !== undefined) ? options.decimalPlaces : 2;\n var fixedDecimals = Boolean(options && options.fixedDecimals);\n var unit = (options && options.unit) || '';\n\n if (!unit || !map[unit.toLowerCase()]) {\n if (mag >= map.pb) {\n unit = 'PB';\n } else if (mag >= map.tb) {\n unit = 'TB';\n } else if (mag >= map.gb) {\n unit = 'GB';\n } else if (mag >= map.mb) {\n unit = 'MB';\n } else if (mag >= map.kb) {\n unit = 'KB';\n } else {\n unit = 'B';\n }\n }\n\n var val = value / map[unit.toLowerCase()];\n var str = val.toFixed(decimalPlaces);\n\n if (!fixedDecimals) {\n str = str.replace(formatDecimalsRegExp, '$1');\n }\n\n if (thousandsSeparator) {\n str = str.split('.').map(function (s, i) {\n return i === 0\n ? s.replace(formatThousandsRegExp, thousandsSeparator)\n : s\n }).join('.');\n }\n\n return str + unitSeparator + unit;\n}\n\n/**\n * Parse the string value into an integer in bytes.\n *\n * If no unit is given, it is assumed the value is in bytes.\n *\n * @param {number|string} val\n *\n * @returns {number|null}\n * @public\n */\n\nfunction parse(val) {\n if (typeof val === 'number' && !isNaN(val)) {\n return val;\n }\n\n if (typeof val !== 'string') {\n return null;\n }\n\n // Test if the string passed is valid\n var results = parseRegExp.exec(val);\n var floatValue;\n var unit = 'b';\n\n if (!results) {\n // Nothing could be extracted from the given string\n floatValue = parseInt(val, 10);\n unit = 'b'\n } else {\n // Retrieve the value and the unit\n floatValue = parseFloat(results[1]);\n unit = results[4].toLowerCase();\n }\n\n if (isNaN(floatValue)) {\n return null;\n }\n\n return Math.floor(map[unit] * floatValue);\n}\n"],"names":["bytesModule","bytes"],"mappings":";;;;;;AAcAA,QAAA,UAAiBC;AACjBD,QAAA,QAAA,SAAwB;AACxBA,QAAA,QAAA,QAAuB;AAOvB,MAAI,wBAAwB;AAE5B,MAAI,uBAAuB;AAE3B,MAAI,MAAM;AAAA,IACR,GAAI;AAAA,IACJ,IAAI,KAAK;AAAA,IACT,IAAI,KAAK;AAAA,IACT,IAAI,KAAK;AAAA,IACT,IAAI,KAAK,IAAI,MAAM,CAAC;AAAA,IACpB,IAAI,KAAK,IAAI,MAAM,CAAC;AAAA;AAGtB,MAAI,cAAc;AAiBlB,WAASC,QAAM,OAAO,SAAS;AAC7B,QAAI,OAAO,UAAU,UAAU;AAC7B,aAAO,MAAM,KAAK;AAAA,IACtB;AAEE,QAAI,OAAO,UAAU,UAAU;AAC7B,aAAO,OAAO,OAAO,OAAO;AAAA,IAChC;AAEE,WAAO;AAAA,EACT;AAoBA,WAAS,OAAO,OAAO,SAAS;AAC9B,QAAI,CAAC,OAAO,SAAS,KAAK,GAAG;AAC3B,aAAO;AAAA,IACX;AAEE,QAAI,MAAM,KAAK,IAAI,KAAK;AACxB,QAAI,qBAAsB,WAAW,QAAQ,sBAAuB;AACpE,QAAI,gBAAiB,WAAW,QAAQ,iBAAkB;AAC1D,QAAI,gBAAiB,WAAW,QAAQ,kBAAkB,SAAa,QAAQ,gBAAgB;AAC/F,QAAI,gBAAgB,QAAQ,WAAW,QAAQ,aAAa;AAC5D,QAAI,OAAQ,WAAW,QAAQ,QAAS;AAExC,QAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAW,CAAE,GAAG;AACrC,UAAI,OAAO,IAAI,IAAI;AACjB,eAAO;AAAA,MACb,WAAe,OAAO,IAAI,IAAI;AACxB,eAAO;AAAA,MACb,WAAe,OAAO,IAAI,IAAI;AACxB,eAAO;AAAA,MACb,WAAe,OAAO,IAAI,IAAI;AACxB,eAAO;AAAA,MACb,WAAe,OAAO,IAAI,IAAI;AACxB,eAAO;AAAA,MACb,OAAW;AACL,eAAO;AAAA,MACb;AAAA,IACA;AAEE,QAAI,MAAM,QAAQ,IAAI,KAAK,YAAW,CAAE;AACxC,QAAI,MAAM,IAAI,QAAQ,aAAa;AAEnC,QAAI,CAAC,eAAe;AAClB,YAAM,IAAI,QAAQ,sBAAsB,IAAI;AAAA,IAChD;AAEE,QAAI,oBAAoB;AACtB,YAAM,IAAI,MAAM,GAAG,EAAE,IAAI,SAAU,GAAG,GAAG;AACvC,eAAO,MAAM,IACT,EAAE,QAAQ,uBAAuB,kBAAkB,IACnD;AAAA,MACV,CAAK,EAAE,KAAK,GAAG;AAAA,IACf;AAEE,WAAO,MAAM,gBAAgB;AAAA,EAC/B;AAaA,WAAS,MAAM,KAAK;AAClB,QAAI,OAAO,QAAQ,YAAY,CAAC,MAAM,GAAG,GAAG;AAC1C,aAAO;AAAA,IACX;AAEE,QAAI,OAAO,QAAQ,UAAU;AAC3B,aAAO;AAAA,IACX;AAGE,QAAI,UAAU,YAAY,KAAK,GAAG;AAClC,QAAI;AACJ,QAAI,OAAO;AAEX,QAAI,CAAC,SAAS;AAEZ,mBAAa,SAAS,KAAK,EAAE;AAC7B,aAAO;AAAA,IACX,OAAS;AAEL,mBAAa,WAAW,QAAQ,CAAC,CAAC;AAClC,aAAO,QAAQ,CAAC,EAAE,YAAW;AAAA,IACjC;AAEE,QAAI,MAAM,UAAU,GAAG;AACrB,aAAO;AAAA,IACX;AAEE,WAAO,KAAK,MAAM,IAAI,IAAI,IAAI,UAAU;AAAA,EAC1C;;;;","x_google_ignoreList":[0]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Type definition for a dehydrated function value
|
|
3
|
-
*/
|
|
4
|
-
export type DehydratedFunctionValue = {
|
|
5
|
-
_encodedType: 'function';
|
|
6
|
-
_encodedValueType: 'string';
|
|
7
|
-
_encodedValue: string;
|
|
8
|
-
_namedBindings?: Record<string, any>;
|
|
9
|
-
};
|
|
10
|
-
/**
|
|
11
|
-
* A portable function serializer that can dehydrate and rehydrate functions
|
|
12
|
-
* from strings, with support for named bindings and various function types.
|
|
13
|
-
*/
|
|
14
|
-
export declare class FunctionSerializer {
|
|
15
|
-
#private;
|
|
16
|
-
/**
|
|
17
|
-
* Private constructor - use static methods instead
|
|
18
|
-
*/
|
|
19
|
-
private constructor();
|
|
20
|
-
/**
|
|
21
|
-
* Check if a value can be serialized as a function
|
|
22
|
-
*/
|
|
23
|
-
static canSerialize(value: any): boolean;
|
|
24
|
-
/**
|
|
25
|
-
* Dehydrate a function into a serializable format
|
|
26
|
-
*/
|
|
27
|
-
static dehydrate(fn: Function, namedBindings?: Record<string, any>): DehydratedFunctionValue;
|
|
28
|
-
/**
|
|
29
|
-
* Rehydrate a function from its dehydrated format or raw function string
|
|
30
|
-
*/
|
|
31
|
-
static rehydrate<T extends (...args: any[]) => any>(input: DehydratedFunctionValue | string, namedBindings?: Record<string, any>): T;
|
|
32
|
-
}
|