@rzl-zone/utils-js 3.4.0 → 3.5.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.
Files changed (118) hide show
  1. package/LICENSE.md +1 -1
  2. package/README.md +94 -45
  3. package/dist/assertions/index.cjs +41 -1
  4. package/dist/assertions/index.d.ts +11 -2
  5. package/dist/assertions/index.js +14 -1
  6. package/dist/chunk-2CQX5CBG.js +262 -1
  7. package/dist/chunk-2IOOEY45.cjs +30 -1
  8. package/dist/chunk-2WA36TC5.cjs +189 -0
  9. package/dist/chunk-3IBQ5MOM.js +16 -1
  10. package/dist/chunk-3VA554KW.js +34 -1
  11. package/dist/chunk-5757UBXJ.cjs +157 -1
  12. package/dist/chunk-5IGC6PBH.js +33 -1
  13. package/dist/chunk-5KJFVIQT.cjs +65 -1
  14. package/dist/chunk-6JFCSH7J.js +35 -1
  15. package/dist/chunk-6JFZL7YE.cjs +24 -1
  16. package/dist/chunk-7ODAAXX5.cjs +397 -1
  17. package/dist/chunk-BAV5T2E3.cjs +15 -1
  18. package/dist/chunk-CAH33WOQ.cjs +36 -1
  19. package/dist/chunk-CDCERIZ2.js +177 -0
  20. package/dist/chunk-CKTLUNWX.js +22 -1
  21. package/dist/chunk-CMW2TBOQ.js +567 -1
  22. package/dist/chunk-D3ENH7H6.cjs +101 -1
  23. package/dist/chunk-DEZZUYE2.js +152 -1
  24. package/dist/chunk-DVMHRLKP.cjs +16 -1
  25. package/dist/chunk-DWF2R5GD.cjs +225 -1
  26. package/dist/chunk-E55EQK2U.cjs +18 -1
  27. package/dist/chunk-E74U6CYP.cjs +18 -1
  28. package/dist/chunk-EL6A35UR.cjs +64 -1
  29. package/dist/chunk-F6IPNNSJ.cjs +554 -1
  30. package/dist/chunk-FJZGG54N.cjs +267 -1
  31. package/dist/chunk-FWCKOJZM.js +542 -1
  32. package/dist/chunk-FWHNWL2P.cjs +419 -1
  33. package/dist/chunk-GGEADHZO.js +90 -1
  34. package/dist/chunk-GQR4R5WY.js +31 -1
  35. package/dist/chunk-H66AC7GK.cjs +93 -1
  36. package/dist/chunk-HQWOFR56.cjs +33 -1
  37. package/dist/chunk-HYRQMTRH.cjs +24 -1
  38. package/dist/chunk-IRFL4MAX.js +63 -1
  39. package/dist/chunk-IVL7CKVH.cjs +37 -1
  40. package/dist/chunk-IZPBKKPO.js +16 -1
  41. package/dist/chunk-JBQMXC5I.cjs +106 -1
  42. package/dist/chunk-JEQEF5WD.js +95 -1
  43. package/dist/chunk-JMJQCN74.js +370 -1
  44. package/dist/chunk-KHO2SBNA.cjs +16 -1
  45. package/dist/chunk-KVAL5PAG.cjs +26 -1
  46. package/dist/chunk-L5RDAVVH.js +14 -1
  47. package/dist/chunk-LS6U7FAY.cjs +110 -1
  48. package/dist/chunk-NBZWMBO6.js +101 -1
  49. package/dist/chunk-NRF6LWBC.cjs +56 -1
  50. package/dist/chunk-OI5XKNZO.js +53 -1
  51. package/dist/chunk-ONZFBJVW.js +14 -1
  52. package/dist/chunk-OYTYSY7G.js +106 -1
  53. package/dist/chunk-PET42Z7W.js +119 -1
  54. package/dist/chunk-PZQ6I4JJ.cjs +605 -1
  55. package/dist/chunk-QBKAEVYG.js +113 -1
  56. package/dist/chunk-QNKGP5DY.js +14 -1
  57. package/dist/chunk-RIPKY4RU.js +417 -1
  58. package/dist/chunk-RZW35UN5.cjs +116 -1
  59. package/dist/chunk-SBFNXGTJ.js +220 -1
  60. package/dist/chunk-SBKGWRS5.js +22 -1
  61. package/dist/chunk-SIM77PU4.js +59 -1
  62. package/dist/chunk-T2T7K3KR.js +28 -1
  63. package/dist/chunk-T7PU2V7X.cjs +123 -1
  64. package/dist/chunk-UDA26MCU.cjs +16 -1
  65. package/dist/chunk-V45XJKHW.cjs +18 -1
  66. package/dist/chunk-VJDDGRIK.cjs +16 -1
  67. package/dist/chunk-W2WNBUDE.js +16 -1
  68. package/dist/chunk-WVSPXFTY.js +14 -1
  69. package/dist/chunk-XABCB3Y7.cjs +582 -1
  70. package/dist/chunk-XEDXFSGI.js +24 -1
  71. package/dist/chunk-YKPSRP5G.js +571 -1
  72. package/dist/chunk-YWHHVDT4.js +13 -1
  73. package/dist/chunk-ZETAZZLD.cjs +38 -1
  74. package/dist/conversions/index.cjs +104 -1
  75. package/dist/conversions/index.d.ts +10 -1
  76. package/dist/conversions/index.js +25 -1
  77. package/dist/events/index.cjs +32 -1
  78. package/dist/events/index.d.ts +10 -1
  79. package/dist/events/index.js +13 -1
  80. package/dist/formatters/index.cjs +62 -1
  81. package/dist/formatters/index.d.ts +10 -1
  82. package/dist/formatters/index.js +19 -1
  83. package/dist/generators/index.cjs +38 -1
  84. package/dist/generators/index.d.ts +10 -1
  85. package/dist/generators/index.js +15 -1
  86. package/dist/index.d.ts +39 -12
  87. package/dist/{isPlainObject-CEPWPiXh.d.ts → isPlainObject-FWmcJF6k.d.ts} +13 -4
  88. package/dist/next/index.cjs +218 -1
  89. package/dist/next/index.d.ts +10 -1
  90. package/dist/next/index.js +213 -1
  91. package/dist/next/server/index.cjs +43 -1
  92. package/dist/next/server/index.d.ts +10 -1
  93. package/dist/next/server/index.js +41 -1
  94. package/dist/operations/index.cjs +33 -1
  95. package/dist/operations/index.d.ts +10 -1
  96. package/dist/operations/index.js +18 -1
  97. package/dist/parsers/index.cjs +18 -1
  98. package/dist/parsers/index.d.ts +10 -1
  99. package/dist/parsers/index.js +11 -1
  100. package/dist/predicates/index.cjs +299 -1
  101. package/dist/predicates/index.d.ts +13 -4
  102. package/dist/predicates/index.js +24 -1
  103. package/dist/promises/index.cjs +25 -1
  104. package/dist/promises/index.d.ts +10 -1
  105. package/dist/promises/index.js +14 -1
  106. package/dist/rzl-utils.global.js +25 -1
  107. package/dist/strings/index.cjs +82 -1
  108. package/dist/strings/index.d.ts +10 -1
  109. package/dist/strings/index.js +15 -1
  110. package/dist/tailwind/index.cjs +43 -1
  111. package/dist/tailwind/index.d.ts +10 -1
  112. package/dist/tailwind/index.js +12 -1
  113. package/dist/urls/index.cjs +51 -1
  114. package/dist/urls/index.d.ts +10 -1
  115. package/dist/urls/index.js +24 -1
  116. package/package.json +60 -179
  117. package/dist/chunk-JYQTCICM.js +0 -1
  118. package/dist/chunk-YLA3DURS.cjs +0 -1
@@ -1 +1,605 @@
1
- "use strict";var e=e=>"boolean"==typeof e,r=e=>"function"==typeof e;function t(e){return null==e}function o(e){return Array.isArray(e)}function a(e){return"object"==typeof e&&!t(e)&&!o(e)}function n(e){if(!a(e))return!1;const r=Object.getPrototypeOf(e);return r===Object.prototype||null===r}var s=e=>"string"==typeof e;function i(e){return a(e)&&"[object Number]"===Object.prototype.toString.call(e)}function c(e){return"number"==typeof e?Number.isNaN(e):i(e)&&Number.isNaN(e.valueOf())}var u=e=>null===e,l=(r,t={})=>{if(e(r))return;const o=M({value:r,options:t,requiredValidType:"boolean"});throw new TypeError(o)},p=(r,t={})=>{W(t,{message:({currentType:e,validType:r})=>`Second parameter (\`options\`) must be of type \`${r}\`, but received: \`${e}\`.`});const o=!(!n(t)||!e(t.includeNaN))&&t.includeNaN;l(o,{message:({currentType:e,validType:r})=>`Parameter \`includeNaN\` property of the \`options\` (second parameter) must be of type \`${r}\`, but received: \`${e}\`.`});const a="number"==typeof r;return o?a:a&&!Number.isNaN(r)},f=e=>"symbol"==typeof e,m=e=>void 0===e;function b(e){return o(e)||a(e)}function y(e,t,o={}){if(!s(e)&&!b(e)&&!r(e))return!1;W(o,{message:({currentType:e,validType:r})=>`Third parameter (\`options\`) must be of type \`${r}\`, but received: \`${e}\`.`});const a=void 0===o.discardUndefined||o.discardUndefined,n=void 0!==o.discardNull&&o.discardNull;l(a,{message:({currentType:e,validType:r})=>`Parameter \`discardUndefined\` property of the \`options\` (third parameter) must be of type \`${r}\`, but received: \`${e}\`.`}),l(n,{message:({currentType:e,validType:r})=>`Parameter \`discardNull\` property of the \`options\` (third parameter) must be of type \`${r}\`, but received: \`${e}\`.`});const i=[];if(s(t)&&t.trim().length>0||p(t,{includeNaN:!0})){(p(t,{includeNaN:!0})?String(t):t).split(".").forEach(e=>{const r=e.match(/^\[(\d+)\]$/),t=e.match(/^Symbol\((.+)\)$/);r?i.push(Number(r[1])):t?i.push(Symbol.for(t[1])):c(Number(e))?i.push(e):i.push(Number(e))})}else{if(!f(t))return!1;i.push(t)}let y=s(e)&&e.trim().length>0?Object(e):e;for(const e of i)if(s(e)&&e.trim().length>0||p(e,{includeNaN:!0})){if(u(y)||!Object.prototype.hasOwnProperty.call(y,e))return!1;y=y[e]}else{if(!f(e))return!1;{if(u(y)||"object"!=typeof y&&!r(y))return!1;const t=Object.getOwnPropertySymbols(y).find(r=>r===e||r.description===e.description);if(!t)return!1;y=y[t]}}return(!a||!m(y))&&(!n||!u(y))}var d=(e,r={})=>{if(!s(e))return!1;W(r,{message:({currentType:e,validType:r})=>`Second parameter (\`options\`) must be of type \`${r}\`, but received: \`${e}\`.`});const t=!y(r,"trim")||r.trim;l(t,{message:({currentType:e,validType:r})=>`Parameter \`trim\` property of the \`options\` (second parameter) must be of type \`${r}\`, but received: \`${e}\`.`});return(t?e.trim():e).length>0},g=e=>"[object Error]"===Object.prototype.toString.call(e)||e instanceof Error,j=e=>"undefined"!=typeof Buffer&&"function"==typeof Buffer.isBuffer&&Buffer.isBuffer(e);function S(e){return a(e)&&"[object String]"===Object.prototype.toString.call(e)}function h(e){return a(e)&&"[object Boolean]"===Object.prototype.toString.call(e)}function v(e){if("number"==typeof e||i(e)){const r=Number(e);return r===1/0||r===-1/0}return!1}var N=Object.freeze(["URI","URL","HTTP","HTTPS","HTML","XML","CSS","JS","JSON","SVG","DOM","UTC","XHR","RTC","ICE","TLS","TCP","UDP","IDB","ID"]),x={string:"String",number:"Number",boolean:"Boolean",bigint:"Big Int",symbol:"Symbol",undefined:"Undefined",null:"Null",regexp:"Reg Exp",reflect:"Reflect",proxy:"Proxy",atomics:"Atomics",object:"Object",array:"Array",arguments:"Arguments",function:"Function",asyncfunction:"Async Function",generatorfunction:"Generator Function",asyncgeneratorfunction:"Async Generator Function",generator:"Generator",promise:"Promise",evalerror:"Eval Error",rangeerror:"Range Error",referenceerror:"Reference Error",syntaxerror:"Syntax Error",typeerror:"Type Error",urierror:"URI Error",aggregateerror:"Aggregate Error",error:"Error",int8array:"Int 8 Array",uint8array:"Uint 8 Array",uint8clampedarray:"Uint 8 Clamped Array",int16array:"Int 16 Array",uint16array:"Uint 16 Array",int32array:"Int 32 Array",uint32array:"Uint 32 Array",float32array:"Float 32 Array",float64array:"Float 64 Array",bigint64array:"Big Int 64 Array",biguint64array:"Big Uint 64 Array",arraybuffer:"Array Buffer",sharedarraybuffer:"Shared Array Buffer",dataview:"Data View",arraybufferview:"Array Buffer View",map:"Map",set:"Set",weakmap:"Weak Map",weakset:"Weak Set",mapiterator:"Map Iterator",setiterator:"Set Iterator",arrayiterator:"Array Iterator",stringiterator:"String Iterator",readablestream:"Readable Stream",writablestream:"Writable Stream",transformstream:"Transform Stream",readablestreamdefaultreader:"Readable Stream Default Reader",writablestreamdefaultwriter:"Writable Stream Default Writer",readablestreamdefaultcontroller:"Readable Stream Default Controller",transformstreamdefaultcontroller:"Transform Stream Default Controller",abortcontroller:"Abort Controller",abortsignal:"Abort Signal",fetch:"fetch",request:"Request",response:"Response",headers:"Headers",formdata:"FormData",blob:"Blob",file:"File",filelist:"FileList",filereader:"FileReader",intl:"Intl",collator:"Intl. Collator",datetimeformat:"Intl. Date Time Format",listformat:"Intl. List Format",numberformat:"Intl. Number Format",pluralrules:"Intl. Plural Rules",relativetimeformat:"Intl. Relative Time Format",segmenter:"Intl. Segmenter",locale:"Intl. Locale",displaynames:"Intl. Display Names",finalizationregistry:"Finalization Registry",weakref:"Weak Ref",structuredclone:"structured Clone",urlpattern:"URL Pattern",performance:"Performance",performanceobserver:"Performance Observer",performanceentry:"Performance Entry",performancemark:"Performance Mark",performancemeasure:"Performance Measure",webassembly:"Web Assembly",wasmmodule:"WebAssembly .Module",wasminstance:"WebAssembly. Instance",wasmmemory:"WebAssembly. Memory",wasmtable:"WebAssembly. Table",buffer:"Buffer",process:"Process",eventemitter:"Event Emitter",stream:"Stream",fs:"fs",path:"path",url:"URL",urlsearchparams:"URL Search Params",node:"Node",element:"Element",htmlelement:"HTML Element",svgelement:"SVG Element",document:"Document",documentfragment:"Document Fragment",shadowroot:"Shadow Root",nodelist:"Node List",htmlcollection:"HTML Collection",mutationobserver:"Mutation Observer",intersectionobserver:"Intersection Observer",resizeobserver:"Resize Observer"};function C(e){return Array.isArray(e)&&e.length>0}function A(e){return"[object Set]"===Object.prototype.toString.call(e)||e instanceof Set}var O=e=>{let r="";return o(e)?r=e.map(e=>d(e)?e.trim():"").filter(e=>e.length).join("-"):d(e)&&(r=e.trim()),r.split(/[^\p{L}\p{N}]+/u).filter(Boolean)},T=e=>{const r=new Set([]),t=e=>e.trim().split(/[^\p{L}\p{N}]+/u).filter(Boolean).join("");if(d(e)){const o=t(e);o&&r.add(o)}return C(e)&&e.forEach(e=>{if(d(e)){const o=t(e);o&&r.add(o)}}),A(e)&&e.forEach(e=>{if(d(e)){const o=t(e);o&&r.add(o)}}),r},w=(e,r)=>{if(!C(e)&&!d(e))return"";const t=O(e),o=T(r);return t.map(e=>o.has(e)?e:e.toLowerCase()).join("-").replace(/^-+|-+$/g,"")},P=(e,r)=>{if(!C(e)&&!d(e))return"";const t=O(e),o=T(r);return t.map(e=>o.has(e)?e:e.toLowerCase()).join(".")},E=(e,r)=>{if(!C(e)&&!d(e))return"";const t=O(e),o=T(r);return t.map((e,r)=>o.has(e)?e:0===r?e.toLowerCase():e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join("")},I=(e,r)=>{if(!C(e)&&!d(e))return"";const t=O(e),o=T(r);return t.map(e=>o.has(e)?e:e.toLowerCase()).join("-")},R=(e,r)=>{if(!C(e)&&!d(e))return"";const t=O(e),o=T(r);return t.map(e=>o.has(e)?e:e.toLowerCase()).join("_")},L=(e,r)=>{if(!C(e)&&!d(e))return"";const t=O(e),o=T(r);return t.map(e=>o.has(e)?e:e.toLowerCase()).join(" ")},B=(e,r)=>{if(!C(e)&&!d(e))return"";const t=O(e),o=T(r);return t.map(e=>o.has(e)?e:e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join("")},F=(e,r)=>{if(!C(e)&&!d(e))return"";const t=O(e),o=T(r);return t.map(e=>o.has(e)?e:e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" ")},U=e=>e.replace(/[\s_\-]+/g,"").toLowerCase(),$=Object.entries(x).reduce((e,[r,t])=>(e[U(r)]=t,e),{});var D=(e,r)=>"toPascalCaseSpace"===r?F(e,N):"slugify"===r?w(e,N):"toCamelCase"===r?E(e,N):"toDotCase"===r?P(e,N):"toKebabCase"===r?I(e,N):"toPascalCase"===r?B(e,N):"toSnakeCase"===r?R(e,N):L(e,N),_=(e,t={formatCase:"toLowerCase"})=>{n(t)||(t={});const o=t.formatCase;if(u(e))return D($[U("null")]??"Null",o);if(c(e))return"NaN";if(v(e))return String(e);if(i(e))return D("Number Constructor",o);if(S(e))return D("String Constructor",o);if(h(e))return D("Boolean Constructor",o);const s=typeof e;if(!b(e)&&!r(e))return D($[U(s)]??s,o);if(j(e))return D($[U("buffer")]??"Buffer",o);if(function(e){if("object"!=typeof e||null===e)return!1;const r=Object.prototype.toString.call(e);if(["[object Array]","[object Date]","[object RegExp]","[object Map]","[object Set]","[object WeakMap]","[object WeakSet]","[object Function]","[object Error]","[object Promise]","[object Generator]","[object GeneratorFunction]","[object AsyncFunction]"].includes(r))return!1;try{return Reflect.defineProperty(e,"__proxy_detect__",{configurable:!0,value:1}),Reflect.deleteProperty(e,"__proxy_detect__"),!1}catch{return!0}}(e))return D($[U("proxy")]??"Proxy",o);if(a(e)&&r(e?.next)&&r(e?.throw))return D($[U("generator")]??"Generator",o);if(g(e)){const r=e.constructor?.name??"Error";return D($[U(r)]??$[U(r.replace(/\s+/g,""))]??r,o)}if(u(Object.getPrototypeOf(e)))return D($[U("object")]??"Object",o);const l=Object.prototype.toString.call(e).slice(8,-1)||"Object",p=$[U(l)];if(p)return D(p,o);const f=e?.constructor?.name;return D(f&&"Object"!==f?$[U(f)]??f:l,o)};function M(e){const{requiredValidType:t,value:o,options:a}=e||{},{message:s,formatCase:i}=n(a)?a:{},c=I(t),u=_(o,{formatCase:i}),l={currentType:u,validType:c},p=`Parameter input (\`value\`) must be of type \`${c}\`, but received: \`${u}\`.`;return r(s)?d(s(l))?s(l).trim():p:d(s)?s.trim():p}function W(e,r={}){if(n(e))return;const t=M({value:e,options:r,requiredValidType:"plain object"});throw new TypeError(t)}Object.values({...x,plainobject:"Plain Object"}),exports.FIXES_RAW=x,exports.__internalAcronyms__=N,exports.assertIsBoolean=l,exports.assertIsPlainObject=W,exports.getPreciseType=_,exports.hasOwnProp=y,exports.isArray=o,exports.isBoolean=e,exports.isBooleanObject=h,exports.isBuffer=j,exports.isError=g,exports.isFunction=r,exports.isInfinityNumber=v,exports.isNaN=c,exports.isNil=t,exports.isNonEmptyArray=C,exports.isNonEmptyString=d,exports.isNull=u,exports.isNumber=p,exports.isNumberObject=i,exports.isObject=a,exports.isObjectOrArray=b,exports.isPlainObject=n,exports.isSet=A,exports.isString=s,exports.isStringObject=S,exports.isSymbol=f,exports.isUndefined=m,exports.resolveErrorMessageAssertions=M,exports.slugify=w,exports.toCamelCase=E,exports.toDotCase=P,exports.toKebabCase=I,exports.toLowerCase=L,exports.toPascalCase=B,exports.toPascalCaseSpace=F,exports.toSnakeCase=R;
1
+ /*!
2
+ * ====================================================
3
+ * Rzl Utils-JS.
4
+ * ----------------------------------------------------
5
+ * Version: 3.5.1.
6
+ * Author: Rizalvin Dwiky.
7
+ * Repository: https://github.com/rzl-zone/utils-js.
8
+ * ====================================================
9
+ */
10
+ 'use strict';
11
+
12
+ var isBoolean = (value) => {
13
+ return typeof value === "boolean";
14
+ };
15
+
16
+ var isFunction = (value) => {
17
+ return typeof value === "function";
18
+ };
19
+
20
+ function isNil(value) {
21
+ return value == null;
22
+ }
23
+
24
+ function isArray(value) {
25
+ return Array.isArray(value);
26
+ }
27
+
28
+ function isObject(value) {
29
+ return typeof value === "object" && !isNil(value) && !isArray(value);
30
+ }
31
+
32
+ function isPlainObject(value) {
33
+ if (!isObject(value)) return false;
34
+ const proto = Object.getPrototypeOf(value);
35
+ return proto === Object.prototype || proto === null;
36
+ }
37
+
38
+ var isString = (value) => {
39
+ return typeof value === "string";
40
+ };
41
+
42
+ function isNumberObject(value) {
43
+ return isObject(value) && Object.prototype.toString.call(value) === "[object Number]";
44
+ }
45
+
46
+ function isNaN(value) {
47
+ return typeof value === "number" ? Number.isNaN(value) : isNumberObject(value) && Number.isNaN(value.valueOf());
48
+ }
49
+
50
+ var isNull = (val) => val === null;
51
+
52
+ var assertIsBoolean = (value, options = {}) => {
53
+ if (isBoolean(value)) return;
54
+ const errorMessage = resolveErrorMessageAssertions({
55
+ value,
56
+ options,
57
+ requiredValidType: "boolean"
58
+ });
59
+ throw new TypeError(errorMessage);
60
+ };
61
+
62
+ var isNumber = (value, options = {}) => {
63
+ assertIsPlainObject(options, {
64
+ message: ({ currentType, validType: validType2 }) => `Second parameter (\`options\`) must be of type \`${validType2}\`, but received: \`${currentType}\`.`
65
+ });
66
+ const includeNaN = isPlainObject(options) && isBoolean(options.includeNaN) ? options.includeNaN : false;
67
+ assertIsBoolean(includeNaN, {
68
+ message: ({ currentType, validType: validType2 }) => `Parameter \`includeNaN\` property of the \`options\` (second parameter) must be of type \`${validType2}\`, but received: \`${currentType}\`.`
69
+ });
70
+ const aNumber = typeof value === "number";
71
+ return includeNaN ? aNumber : aNumber && !Number.isNaN(value);
72
+ };
73
+
74
+ var isSymbol = (value) => {
75
+ return typeof value === "symbol";
76
+ };
77
+
78
+ var isUndefined = (value) => {
79
+ return typeof value === "undefined";
80
+ };
81
+
82
+ function isObjectOrArray(value) {
83
+ return isArray(value) || isObject(value);
84
+ }
85
+
86
+ function hasOwnProp(obj, key, options = {}) {
87
+ if (!isString(obj) && !isObjectOrArray(obj) && !isFunction(obj)) return false;
88
+ assertIsPlainObject(options, {
89
+ message: ({ currentType, validType: validType2 }) => `Third parameter (\`options\`) must be of type \`${validType2}\`, but received: \`${currentType}\`.`
90
+ });
91
+ const discardUndefined = options.discardUndefined === void 0 ? true : options.discardUndefined;
92
+ const discardNull = options.discardNull === void 0 ? false : options.discardNull;
93
+ assertIsBoolean(discardUndefined, {
94
+ message: ({ currentType, validType: validType2 }) => `Parameter \`discardUndefined\` property of the \`options\` (third parameter) must be of type \`${validType2}\`, but received: \`${currentType}\`.`
95
+ });
96
+ assertIsBoolean(discardNull, {
97
+ message: ({ currentType, validType: validType2 }) => `Parameter \`discardNull\` property of the \`options\` (third parameter) must be of type \`${validType2}\`, but received: \`${currentType}\`.`
98
+ });
99
+ const path = [];
100
+ if (isString(key) && key.trim().length > 0 || isNumber(key, { includeNaN: true })) {
101
+ const strKey = isNumber(key, { includeNaN: true }) ? String(key) : key;
102
+ strKey.split(".").forEach((k) => {
103
+ const bracketMatch = k.match(/^\[(\d+)\]$/);
104
+ const symbolMatch = k.match(/^Symbol\((.+)\)$/);
105
+ if (bracketMatch) path.push(Number(bracketMatch[1]));
106
+ else if (symbolMatch) path.push(Symbol.for(symbolMatch[1]));
107
+ else if (!isNaN(Number(k))) path.push(Number(k));
108
+ else path.push(k);
109
+ });
110
+ } else if (isSymbol(key)) {
111
+ path.push(key);
112
+ } else {
113
+ return false;
114
+ }
115
+ let current = isString(obj) && obj.trim().length > 0 ? Object(obj) : obj;
116
+ for (const k of path) {
117
+ if (isString(k) && k.trim().length > 0 || isNumber(k, { includeNaN: true })) {
118
+ if (isNull(current) || !Object.prototype.hasOwnProperty.call(current, k)) {
119
+ return false;
120
+ }
121
+ current = current[k];
122
+ } else if (isSymbol(k)) {
123
+ if (isNull(current) || typeof current !== "object" && !isFunction(current)) {
124
+ return false;
125
+ }
126
+ const symbols = Object.getOwnPropertySymbols(current);
127
+ const matched = symbols.find((s) => s === k || s.description === k.description);
128
+ if (!matched) return false;
129
+ current = current[matched];
130
+ } else {
131
+ return false;
132
+ }
133
+ }
134
+ if (discardUndefined && isUndefined(current)) return false;
135
+ if (discardNull && isNull(current)) return false;
136
+ return true;
137
+ }
138
+
139
+ var isNonEmptyString = (value, options = {}) => {
140
+ if (!isString(value)) return false;
141
+ assertIsPlainObject(options, {
142
+ message: ({ currentType, validType: validType2 }) => `Second parameter (\`options\`) must be of type \`${validType2}\`, but received: \`${currentType}\`.`
143
+ });
144
+ const trim = hasOwnProp(options, "trim") ? options.trim : true;
145
+ assertIsBoolean(trim, {
146
+ message: ({ currentType, validType: validType2 }) => `Parameter \`trim\` property of the \`options\` (second parameter) must be of type \`${validType2}\`, but received: \`${currentType}\`.`
147
+ });
148
+ const str = trim ? value.trim() : value;
149
+ return str.length > 0;
150
+ };
151
+
152
+ var isError = (error) => {
153
+ return Object.prototype.toString.call(error) === "[object Error]" || error instanceof Error;
154
+ };
155
+
156
+ var isBuffer = (value) => {
157
+ return typeof Buffer !== "undefined" && typeof Buffer.isBuffer === "function" && Buffer.isBuffer(value);
158
+ };
159
+
160
+ function isStringObject(value) {
161
+ return isObject(value) && Object.prototype.toString.call(value) === "[object String]";
162
+ }
163
+
164
+ function isBooleanObject(value) {
165
+ return isObject(value) && Object.prototype.toString.call(value) === "[object Boolean]";
166
+ }
167
+
168
+ function isInfinityNumber(value) {
169
+ if (typeof value === "number" || isNumberObject(value)) {
170
+ const num = Number(value);
171
+ return num === Infinity || num === -Infinity;
172
+ }
173
+ return false;
174
+ }
175
+
176
+ var __internalAcronyms__ = Object.freeze([
177
+ "URI",
178
+ "URL",
179
+ "HTTP",
180
+ "HTTPS",
181
+ "HTML",
182
+ "XML",
183
+ "CSS",
184
+ "JS",
185
+ "JSON",
186
+ "SVG",
187
+ "DOM",
188
+ "UTC",
189
+ "XHR",
190
+ "RTC",
191
+ "ICE",
192
+ "TLS",
193
+ "TCP",
194
+ "UDP",
195
+ "IDB",
196
+ "ID"
197
+ ]);
198
+ var FIXES_RAW = {
199
+ // primitives
200
+ string: "String",
201
+ number: "Number",
202
+ boolean: "Boolean",
203
+ bigint: "Big Int",
204
+ symbol: "Symbol",
205
+ undefined: "Undefined",
206
+ null: "Null",
207
+ regexp: "Reg Exp",
208
+ // reflect / proxy / atomics
209
+ reflect: "Reflect",
210
+ proxy: "Proxy",
211
+ atomics: "Atomics",
212
+ // core / objects
213
+ object: "Object",
214
+ array: "Array",
215
+ arguments: "Arguments",
216
+ function: "Function",
217
+ // functions
218
+ asyncfunction: "Async Function",
219
+ generatorfunction: "Generator Function",
220
+ asyncgeneratorfunction: "Async Generator Function",
221
+ generator: "Generator",
222
+ promise: "Promise",
223
+ // errors
224
+ evalerror: "Eval Error",
225
+ rangeerror: "Range Error",
226
+ referenceerror: "Reference Error",
227
+ syntaxerror: "Syntax Error",
228
+ typeerror: "Type Error",
229
+ urierror: "URI Error",
230
+ aggregateerror: "Aggregate Error",
231
+ error: "Error",
232
+ // typed arrays & binary
233
+ int8array: "Int 8 Array",
234
+ uint8array: "Uint 8 Array",
235
+ uint8clampedarray: "Uint 8 Clamped Array",
236
+ int16array: "Int 16 Array",
237
+ uint16array: "Uint 16 Array",
238
+ int32array: "Int 32 Array",
239
+ uint32array: "Uint 32 Array",
240
+ float32array: "Float 32 Array",
241
+ float64array: "Float 64 Array",
242
+ bigint64array: "Big Int 64 Array",
243
+ biguint64array: "Big Uint 64 Array",
244
+ arraybuffer: "Array Buffer",
245
+ sharedarraybuffer: "Shared Array Buffer",
246
+ dataview: "Data View",
247
+ arraybufferview: "Array Buffer View",
248
+ // collections
249
+ map: "Map",
250
+ set: "Set",
251
+ weakmap: "Weak Map",
252
+ weakset: "Weak Set",
253
+ // iterators (note: toString tag can be "Map Iterator" etc.)
254
+ mapiterator: "Map Iterator",
255
+ setiterator: "Set Iterator",
256
+ arrayiterator: "Array Iterator",
257
+ stringiterator: "String Iterator",
258
+ // streams / fetch / web
259
+ readablestream: "Readable Stream",
260
+ writablestream: "Writable Stream",
261
+ transformstream: "Transform Stream",
262
+ readablestreamdefaultreader: "Readable Stream Default Reader",
263
+ writablestreamdefaultwriter: "Writable Stream Default Writer",
264
+ readablestreamdefaultcontroller: "Readable Stream Default Controller",
265
+ transformstreamdefaultcontroller: "Transform Stream Default Controller",
266
+ abortcontroller: "Abort Controller",
267
+ abortsignal: "Abort Signal",
268
+ fetch: "fetch",
269
+ request: "Request",
270
+ response: "Response",
271
+ headers: "Headers",
272
+ formdata: "FormData",
273
+ blob: "Blob",
274
+ file: "File",
275
+ filelist: "FileList",
276
+ filereader: "FileReader",
277
+ // intl
278
+ intl: "Intl",
279
+ collator: "Intl. Collator",
280
+ datetimeformat: "Intl. Date Time Format",
281
+ listformat: "Intl. List Format",
282
+ numberformat: "Intl. Number Format",
283
+ pluralrules: "Intl. Plural Rules",
284
+ relativetimeformat: "Intl. Relative Time Format",
285
+ segmenter: "Intl. Segmenter",
286
+ locale: "Intl. Locale",
287
+ displaynames: "Intl. Display Names",
288
+ // es2021+
289
+ finalizationregistry: "Finalization Registry",
290
+ weakref: "Weak Ref",
291
+ structuredclone: "structured Clone",
292
+ urlpattern: "URL Pattern",
293
+ // performance / observers
294
+ performance: "Performance",
295
+ performanceobserver: "Performance Observer",
296
+ performanceentry: "Performance Entry",
297
+ performancemark: "Performance Mark",
298
+ performancemeasure: "Performance Measure",
299
+ // webassembly
300
+ webassembly: "Web Assembly",
301
+ wasmmodule: "WebAssembly .Module",
302
+ wasminstance: "WebAssembly. Instance",
303
+ wasmmemory: "WebAssembly. Memory",
304
+ wasmtable: "WebAssembly. Table",
305
+ // node-ish / common hosts
306
+ buffer: "Buffer",
307
+ process: "Process",
308
+ eventemitter: "Event Emitter",
309
+ stream: "Stream",
310
+ fs: "fs",
311
+ path: "path",
312
+ url: "URL",
313
+ urlsearchparams: "URL Search Params",
314
+ // DOM basics
315
+ node: "Node",
316
+ element: "Element",
317
+ htmlelement: "HTML Element",
318
+ svgelement: "SVG Element",
319
+ document: "Document",
320
+ documentfragment: "Document Fragment",
321
+ shadowroot: "Shadow Root",
322
+ nodelist: "Node List",
323
+ htmlcollection: "HTML Collection",
324
+ // observers / misc DOM
325
+ mutationobserver: "Mutation Observer",
326
+ intersectionobserver: "Intersection Observer",
327
+ resizeobserver: "Resize Observer"
328
+ };
329
+
330
+ function isNonEmptyArray(value) {
331
+ return Array.isArray(value) && value.length > 0;
332
+ }
333
+
334
+ function isSet(value) {
335
+ return Object.prototype.toString.call(value) === "[object Set]" || value instanceof Set;
336
+ }
337
+
338
+ var validateCaseInputWordsCase = (input) => {
339
+ let result = "";
340
+ if (isArray(input)) {
341
+ result = input.map((x) => isNonEmptyString(x) ? x.trim() : "").filter((x) => x.length).join("-");
342
+ } else if (isNonEmptyString(input)) {
343
+ result = input.trim();
344
+ }
345
+ return result.split(/[^\p{L}\p{N}]+/u).filter(Boolean);
346
+ };
347
+ var validateCaseIgnoreWordsCase = (ignoreWord) => {
348
+ const result = /* @__PURE__ */ new Set([]);
349
+ const normalizeWord = (word) => word.trim().split(/[^\p{L}\p{N}]+/u).filter(Boolean).join("");
350
+ if (isNonEmptyString(ignoreWord)) {
351
+ const clean = normalizeWord(ignoreWord);
352
+ if (clean) result.add(clean);
353
+ }
354
+ if (isNonEmptyArray(ignoreWord)) {
355
+ ignoreWord.forEach((w) => {
356
+ if (isNonEmptyString(w)) {
357
+ const clean = normalizeWord(w);
358
+ if (clean) result.add(clean);
359
+ }
360
+ });
361
+ }
362
+ if (isSet(ignoreWord)) {
363
+ ignoreWord.forEach((w) => {
364
+ if (isNonEmptyString(w)) {
365
+ const clean = normalizeWord(w);
366
+ if (clean) result.add(clean);
367
+ }
368
+ });
369
+ }
370
+ return result;
371
+ };
372
+
373
+ var slugify = (input, ignoreWord) => {
374
+ if (!isNonEmptyArray(input) && !isNonEmptyString(input)) return "";
375
+ const wordsValidated = validateCaseInputWordsCase(input);
376
+ const ignoreWordsValidated = validateCaseIgnoreWordsCase(ignoreWord);
377
+ const slug = wordsValidated.map((word) => {
378
+ if (ignoreWordsValidated.has(word)) return word;
379
+ return word.toLowerCase();
380
+ }).join("-");
381
+ return slug.replace(/^-+|-+$/g, "");
382
+ };
383
+
384
+ var toDotCase = (input, ignoreWord) => {
385
+ if (!isNonEmptyArray(input) && !isNonEmptyString(input)) return "";
386
+ const wordsValidated = validateCaseInputWordsCase(input);
387
+ const ignoreWordsValidated = validateCaseIgnoreWordsCase(ignoreWord);
388
+ return wordsValidated.map((word) => {
389
+ if (ignoreWordsValidated.has(word)) return word;
390
+ return word.toLowerCase();
391
+ }).join(".");
392
+ };
393
+
394
+ var toCamelCase = (input, ignoreWord) => {
395
+ if (!isNonEmptyArray(input) && !isNonEmptyString(input)) return "";
396
+ const wordsValidated = validateCaseInputWordsCase(input);
397
+ const ignoreWordsValidated = validateCaseIgnoreWordsCase(ignoreWord);
398
+ return wordsValidated.map((word, index) => {
399
+ if (ignoreWordsValidated.has(word)) return word;
400
+ return index === 0 ? word.toLowerCase() : word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
401
+ }).join("");
402
+ };
403
+
404
+ var toKebabCase = (input, ignoreWord) => {
405
+ if (!isNonEmptyArray(input) && !isNonEmptyString(input)) return "";
406
+ const wordsValidated = validateCaseInputWordsCase(input);
407
+ const ignoreWordsValidated = validateCaseIgnoreWordsCase(ignoreWord);
408
+ return wordsValidated.map((word) => {
409
+ if (ignoreWordsValidated.has(word)) return word;
410
+ return word.toLowerCase();
411
+ }).join("-");
412
+ };
413
+
414
+ var toSnakeCase = (input, ignoreWord) => {
415
+ if (!isNonEmptyArray(input) && !isNonEmptyString(input)) return "";
416
+ const wordsValidated = validateCaseInputWordsCase(input);
417
+ const ignoreWordsValidated = validateCaseIgnoreWordsCase(ignoreWord);
418
+ return wordsValidated.map((word) => {
419
+ if (ignoreWordsValidated.has(word)) return word;
420
+ return word.toLowerCase();
421
+ }).join("_");
422
+ };
423
+
424
+ var toLowerCase = (input, ignoreWord) => {
425
+ if (!isNonEmptyArray(input) && !isNonEmptyString(input)) return "";
426
+ const wordsValidated = validateCaseInputWordsCase(input);
427
+ const ignoreWordsValidated = validateCaseIgnoreWordsCase(ignoreWord);
428
+ return wordsValidated.map((word) => {
429
+ if (ignoreWordsValidated.has(word)) return word;
430
+ return word.toLowerCase();
431
+ }).join(" ");
432
+ };
433
+
434
+ var toPascalCase = (input, ignoreWord) => {
435
+ if (!isNonEmptyArray(input) && !isNonEmptyString(input)) return "";
436
+ const wordsValidated = validateCaseInputWordsCase(input);
437
+ const ignoreWordsValidated = validateCaseIgnoreWordsCase(ignoreWord);
438
+ return wordsValidated.map((word) => {
439
+ if (ignoreWordsValidated.has(word)) return word;
440
+ return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
441
+ }).join("");
442
+ };
443
+
444
+ var toPascalCaseSpace = (input, ignoreWord) => {
445
+ if (!isNonEmptyArray(input) && !isNonEmptyString(input)) return "";
446
+ const wordsValidated = validateCaseInputWordsCase(input);
447
+ const ignoreWordsValidated = validateCaseIgnoreWordsCase(ignoreWord);
448
+ return wordsValidated.map((word) => {
449
+ if (ignoreWordsValidated.has(word)) return word;
450
+ return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
451
+ }).join(" ");
452
+ };
453
+
454
+ var normalizeKey = (k) => k.replace(/[\s_\-]+/g, "").toLowerCase();
455
+ var FIXES = Object.entries(FIXES_RAW).reduce((acc, [k, v]) => {
456
+ acc[normalizeKey(k)] = v;
457
+ return acc;
458
+ }, {});
459
+ function isProxy(value) {
460
+ if (typeof value !== "object" || value === null) return false;
461
+ const tag = Object.prototype.toString.call(value);
462
+ const skipTags = [
463
+ "[object Array]",
464
+ "[object Date]",
465
+ "[object RegExp]",
466
+ "[object Map]",
467
+ "[object Set]",
468
+ "[object WeakMap]",
469
+ "[object WeakSet]",
470
+ "[object Function]",
471
+ "[object Error]",
472
+ "[object Promise]",
473
+ "[object Generator]",
474
+ "[object GeneratorFunction]",
475
+ "[object AsyncFunction]"
476
+ ];
477
+ if (skipTags.includes(tag)) return false;
478
+ try {
479
+ Reflect.defineProperty(value, "__proxy_detect__", {
480
+ configurable: true,
481
+ value: 1
482
+ });
483
+ Reflect.deleteProperty(value, "__proxy_detect__");
484
+ return false;
485
+ } catch {
486
+ return true;
487
+ }
488
+ }
489
+ var converterHelper = (input, formatCase) => {
490
+ if (formatCase === "toPascalCaseSpace")
491
+ return toPascalCaseSpace(input, __internalAcronyms__);
492
+ if (formatCase === "slugify") return slugify(input, __internalAcronyms__);
493
+ if (formatCase === "toCamelCase") return toCamelCase(input, __internalAcronyms__);
494
+ if (formatCase === "toDotCase") return toDotCase(input, __internalAcronyms__);
495
+ if (formatCase === "toKebabCase") return toKebabCase(input, __internalAcronyms__);
496
+ if (formatCase === "toPascalCase") return toPascalCase(input, __internalAcronyms__);
497
+ if (formatCase === "toSnakeCase") return toSnakeCase(input, __internalAcronyms__);
498
+ return toLowerCase(input, __internalAcronyms__);
499
+ };
500
+ var getPreciseType = (value, options = { formatCase: "toLowerCase" }) => {
501
+ if (!isPlainObject(options)) options = {};
502
+ const formatCase = options.formatCase;
503
+ if (isNull(value)) {
504
+ return converterHelper(FIXES[normalizeKey("null")] ?? "Null", formatCase);
505
+ }
506
+ if (isNaN(value)) return "NaN";
507
+ if (isInfinityNumber(value)) return String(value);
508
+ if (isNumberObject(value)) return converterHelper("Number Constructor", formatCase);
509
+ if (isStringObject(value)) return converterHelper("String Constructor", formatCase);
510
+ if (isBooleanObject(value)) return converterHelper("Boolean Constructor", formatCase);
511
+ const prim = typeof value;
512
+ if (!isObjectOrArray(value) && !isFunction(value)) {
513
+ return converterHelper(FIXES[normalizeKey(prim)] ?? prim, formatCase);
514
+ }
515
+ if (isBuffer(value)) {
516
+ return converterHelper(FIXES[normalizeKey("buffer")] ?? "Buffer", formatCase);
517
+ }
518
+ if (isProxy(value)) {
519
+ return converterHelper(FIXES[normalizeKey("proxy")] ?? "Proxy", formatCase);
520
+ }
521
+ if (isObject(value) && isFunction(value?.next) && isFunction(value?.throw)) {
522
+ return converterHelper(FIXES[normalizeKey("generator")] ?? "Generator", formatCase);
523
+ }
524
+ if (isError(value)) {
525
+ const ctorName2 = value.constructor?.name ?? "Error";
526
+ return converterHelper(
527
+ FIXES[normalizeKey(ctorName2)] ?? FIXES[normalizeKey(ctorName2.replace(/\s+/g, ""))] ?? ctorName2,
528
+ formatCase
529
+ );
530
+ }
531
+ if (isNull(Object.getPrototypeOf(value))) {
532
+ return converterHelper(FIXES[normalizeKey("object")] ?? "Object", formatCase);
533
+ }
534
+ const tag = Object.prototype.toString.call(value).slice(8, -1) || "Object";
535
+ const mapped = FIXES[normalizeKey(tag)];
536
+ if (mapped) return converterHelper(mapped, formatCase);
537
+ const ctorName = value?.constructor?.name;
538
+ if (ctorName && ctorName !== "Object") {
539
+ return converterHelper(FIXES[normalizeKey(ctorName)] ?? ctorName, formatCase);
540
+ }
541
+ return converterHelper(tag, formatCase);
542
+ };
543
+
544
+ Object.values({
545
+ ...FIXES_RAW,
546
+ plainobject: "Plain Object"
547
+ });
548
+ function resolveErrorMessageAssertions(params) {
549
+ const { requiredValidType, value, options } = params || {};
550
+ const { message, formatCase } = isPlainObject(options) ? options : {};
551
+ const validType2 = toKebabCase(requiredValidType);
552
+ const currentType = getPreciseType(value, { formatCase });
553
+ const messageFnOptions = { currentType, validType: validType2 };
554
+ const defaultMessage = `Parameter input (\`value\`) must be of type \`${validType2}\`, but received: \`${currentType}\`.`;
555
+ const errorMessage = isFunction(message) ? isNonEmptyString(message(messageFnOptions)) ? message(messageFnOptions).trim() : defaultMessage : isNonEmptyString(message) ? message.trim() : defaultMessage;
556
+ return errorMessage;
557
+ }
558
+
559
+ function assertIsPlainObject(value, options = {}) {
560
+ if (isPlainObject(value)) return;
561
+ const errorMessage = resolveErrorMessageAssertions({
562
+ value,
563
+ options,
564
+ requiredValidType: "plain object"
565
+ });
566
+ throw new TypeError(errorMessage);
567
+ }
568
+
569
+ exports.FIXES_RAW = FIXES_RAW;
570
+ exports.__internalAcronyms__ = __internalAcronyms__;
571
+ exports.assertIsBoolean = assertIsBoolean;
572
+ exports.assertIsPlainObject = assertIsPlainObject;
573
+ exports.getPreciseType = getPreciseType;
574
+ exports.hasOwnProp = hasOwnProp;
575
+ exports.isArray = isArray;
576
+ exports.isBoolean = isBoolean;
577
+ exports.isBooleanObject = isBooleanObject;
578
+ exports.isBuffer = isBuffer;
579
+ exports.isError = isError;
580
+ exports.isFunction = isFunction;
581
+ exports.isInfinityNumber = isInfinityNumber;
582
+ exports.isNaN = isNaN;
583
+ exports.isNil = isNil;
584
+ exports.isNonEmptyArray = isNonEmptyArray;
585
+ exports.isNonEmptyString = isNonEmptyString;
586
+ exports.isNull = isNull;
587
+ exports.isNumber = isNumber;
588
+ exports.isNumberObject = isNumberObject;
589
+ exports.isObject = isObject;
590
+ exports.isObjectOrArray = isObjectOrArray;
591
+ exports.isPlainObject = isPlainObject;
592
+ exports.isSet = isSet;
593
+ exports.isString = isString;
594
+ exports.isStringObject = isStringObject;
595
+ exports.isSymbol = isSymbol;
596
+ exports.isUndefined = isUndefined;
597
+ exports.resolveErrorMessageAssertions = resolveErrorMessageAssertions;
598
+ exports.slugify = slugify;
599
+ exports.toCamelCase = toCamelCase;
600
+ exports.toDotCase = toDotCase;
601
+ exports.toKebabCase = toKebabCase;
602
+ exports.toLowerCase = toLowerCase;
603
+ exports.toPascalCase = toPascalCase;
604
+ exports.toPascalCaseSpace = toPascalCaseSpace;
605
+ exports.toSnakeCase = toSnakeCase;