deep-case-crafter 0.0.2 → 0.0.4

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 (132) hide show
  1. package/dist/constants/formatterMap.d.ts +0 -1
  2. package/dist/constants/regex.d.ts +0 -1
  3. package/dist/dataTransformers/primitiveTransformer.d.ts +0 -1
  4. package/dist/dataTransformers/transformArray.d.ts +0 -1
  5. package/dist/dataTransformers/transformMap.d.ts +0 -1
  6. package/dist/dataTransformers/transformObject.d.ts +0 -1
  7. package/dist/dataTransformers/transformSingleWord.d.ts +0 -1
  8. package/dist/index.d.ts +0 -1
  9. package/dist/index.esm.js +0 -1
  10. package/dist/index.js +0 -1
  11. package/dist/transform/internalTransform.d.ts +0 -1
  12. package/dist/transform/transform.d.ts +0 -1
  13. package/dist/transform/transformCase.d.ts +0 -1
  14. package/dist/types/helperTypes.d.ts +0 -1
  15. package/dist/types/stringCaseTypes.d.ts +0 -1
  16. package/dist/types/transformOptionTypes.d.ts +0 -1
  17. package/dist/types/transformTypes.d.ts +0 -1
  18. package/dist/utils/caseDetectors/isCamelCase.d.ts +0 -1
  19. package/dist/utils/caseDetectors/isKebabCase.d.ts +0 -1
  20. package/dist/utils/caseDetectors/isPascalCase.d.ts +0 -1
  21. package/dist/utils/caseDetectors/isSnakeCase.d.ts +0 -1
  22. package/dist/utils/detectSingleWord.d.ts +0 -1
  23. package/dist/utils/detectStringCase.d.ts +0 -1
  24. package/dist/utils/prepareStringTransformation.d.ts +0 -1
  25. package/dist/utils/stringFormatters/camelToKebabCase.d.ts +0 -1
  26. package/dist/utils/stringFormatters/camelToPascalCase.d.ts +0 -1
  27. package/dist/utils/stringFormatters/camelToSnakeCase.d.ts +0 -1
  28. package/dist/utils/stringFormatters/kebabToCamelCase.d.ts +0 -1
  29. package/dist/utils/stringFormatters/kebabToPascalCase.d.ts +0 -1
  30. package/dist/utils/stringFormatters/kebabToSnakeCase.d.ts +0 -1
  31. package/dist/utils/stringFormatters/pascalToCamelCase.d.ts +0 -1
  32. package/dist/utils/stringFormatters/pascalToKebabCase.d.ts +0 -1
  33. package/dist/utils/stringFormatters/pascalToSnakeCase.d.ts +0 -1
  34. package/dist/utils/stringFormatters/snakeToCamelCase.d.ts +0 -1
  35. package/dist/utils/stringFormatters/snakeToKebabCase.d.ts +0 -1
  36. package/dist/utils/stringFormatters/snakeToPascalCase.d.ts +0 -1
  37. package/package.json +2 -2
  38. package/readme.md +2 -2
  39. package/dist/benchmark/transform.benchmark.d.ts +0 -2
  40. package/dist/benchmark/transform.benchmark.d.ts.map +0 -1
  41. package/dist/constants/formatterMap.d.ts.map +0 -1
  42. package/dist/constants/regex.d.ts.map +0 -1
  43. package/dist/dataTransformers/primitiveTransformer.d.ts.map +0 -1
  44. package/dist/dataTransformers/primitiveTransformer.test.d.ts +0 -2
  45. package/dist/dataTransformers/primitiveTransformer.test.d.ts.map +0 -1
  46. package/dist/dataTransformers/transformArray.d.ts.map +0 -1
  47. package/dist/dataTransformers/transformArray.test.d.ts +0 -2
  48. package/dist/dataTransformers/transformArray.test.d.ts.map +0 -1
  49. package/dist/dataTransformers/transformMap.d.ts.map +0 -1
  50. package/dist/dataTransformers/transformMap.test.d.ts +0 -2
  51. package/dist/dataTransformers/transformMap.test.d.ts.map +0 -1
  52. package/dist/dataTransformers/transformObject.d.ts.map +0 -1
  53. package/dist/dataTransformers/transformObject.test.d.ts +0 -2
  54. package/dist/dataTransformers/transformObject.test.d.ts.map +0 -1
  55. package/dist/dataTransformers/transformSingleWord.d.ts.map +0 -1
  56. package/dist/dataTransformers/transformSingleWord.test.d.ts +0 -2
  57. package/dist/dataTransformers/transformSingleWord.test.d.ts.map +0 -1
  58. package/dist/index.d.ts.map +0 -1
  59. package/dist/index.esm.js.map +0 -1
  60. package/dist/index.js.map +0 -1
  61. package/dist/index.test.d.ts +0 -2
  62. package/dist/index.test.d.ts.map +0 -1
  63. package/dist/transform/internalTransform.d.ts.map +0 -1
  64. package/dist/transform/internalTransform.test.d.ts +0 -2
  65. package/dist/transform/internalTransform.test.d.ts.map +0 -1
  66. package/dist/transform/transform.d.ts.map +0 -1
  67. package/dist/transform/transform.test.d.ts +0 -2
  68. package/dist/transform/transform.test.d.ts.map +0 -1
  69. package/dist/transform/transformCase.d.ts.map +0 -1
  70. package/dist/transform/transformCase.test.d.ts +0 -2
  71. package/dist/transform/transformCase.test.d.ts.map +0 -1
  72. package/dist/types/helperTypes.d.ts.map +0 -1
  73. package/dist/types/stringCaseTypes.d.ts.map +0 -1
  74. package/dist/types/transformOptionTypes.d.ts.map +0 -1
  75. package/dist/types/transformTypes.d.ts.map +0 -1
  76. package/dist/utils/caseDetectors/isCamelCase.d.ts.map +0 -1
  77. package/dist/utils/caseDetectors/isCamelCase.test.d.ts +0 -2
  78. package/dist/utils/caseDetectors/isCamelCase.test.d.ts.map +0 -1
  79. package/dist/utils/caseDetectors/isKebabCase.d.ts.map +0 -1
  80. package/dist/utils/caseDetectors/isKebabCase.test.d.ts +0 -2
  81. package/dist/utils/caseDetectors/isKebabCase.test.d.ts.map +0 -1
  82. package/dist/utils/caseDetectors/isPascalCase.d.ts.map +0 -1
  83. package/dist/utils/caseDetectors/isPascalCase.test.d.ts +0 -2
  84. package/dist/utils/caseDetectors/isPascalCase.test.d.ts.map +0 -1
  85. package/dist/utils/caseDetectors/isSnakeCase.d.ts.map +0 -1
  86. package/dist/utils/caseDetectors/isSnakeCase.test.d.ts +0 -2
  87. package/dist/utils/caseDetectors/isSnakeCase.test.d.ts.map +0 -1
  88. package/dist/utils/detectSingleWord.d.ts.map +0 -1
  89. package/dist/utils/detectSingleWord.test.d.ts +0 -2
  90. package/dist/utils/detectSingleWord.test.d.ts.map +0 -1
  91. package/dist/utils/detectStringCase.d.ts.map +0 -1
  92. package/dist/utils/detectStringCase.test.d.ts +0 -2
  93. package/dist/utils/detectStringCase.test.d.ts.map +0 -1
  94. package/dist/utils/prepareStringTransformation.d.ts.map +0 -1
  95. package/dist/utils/prepareStringTransformation.test.d.ts +0 -2
  96. package/dist/utils/prepareStringTransformation.test.d.ts.map +0 -1
  97. package/dist/utils/stringFormatters/camelToKebabCase.d.ts.map +0 -1
  98. package/dist/utils/stringFormatters/camelToKebabCase.test.d.ts +0 -2
  99. package/dist/utils/stringFormatters/camelToKebabCase.test.d.ts.map +0 -1
  100. package/dist/utils/stringFormatters/camelToPascalCase.d.ts.map +0 -1
  101. package/dist/utils/stringFormatters/camelToPascalCase.test.d.ts +0 -2
  102. package/dist/utils/stringFormatters/camelToPascalCase.test.d.ts.map +0 -1
  103. package/dist/utils/stringFormatters/camelToSnakeCase.d.ts.map +0 -1
  104. package/dist/utils/stringFormatters/camelToSnakeCase.test.d.ts +0 -2
  105. package/dist/utils/stringFormatters/camelToSnakeCase.test.d.ts.map +0 -1
  106. package/dist/utils/stringFormatters/kebabToCamelCase.d.ts.map +0 -1
  107. package/dist/utils/stringFormatters/kebabToCamelCase.test.d.ts +0 -2
  108. package/dist/utils/stringFormatters/kebabToCamelCase.test.d.ts.map +0 -1
  109. package/dist/utils/stringFormatters/kebabToPascalCase.d.ts.map +0 -1
  110. package/dist/utils/stringFormatters/kebabToPascalCase.test.d.ts +0 -2
  111. package/dist/utils/stringFormatters/kebabToPascalCase.test.d.ts.map +0 -1
  112. package/dist/utils/stringFormatters/kebabToSnakeCase.d.ts.map +0 -1
  113. package/dist/utils/stringFormatters/kebabToSnakeCase.test.d.ts +0 -2
  114. package/dist/utils/stringFormatters/kebabToSnakeCase.test.d.ts.map +0 -1
  115. package/dist/utils/stringFormatters/pascalToCamelCase.d.ts.map +0 -1
  116. package/dist/utils/stringFormatters/pascalToCamelCase.test.d.ts +0 -2
  117. package/dist/utils/stringFormatters/pascalToCamelCase.test.d.ts.map +0 -1
  118. package/dist/utils/stringFormatters/pascalToKebabCase.d.ts.map +0 -1
  119. package/dist/utils/stringFormatters/pascalToKebabCase.test.d.ts +0 -2
  120. package/dist/utils/stringFormatters/pascalToKebabCase.test.d.ts.map +0 -1
  121. package/dist/utils/stringFormatters/pascalToSnakeCase.d.ts.map +0 -1
  122. package/dist/utils/stringFormatters/pascalToSnakeCase.test.d.ts +0 -2
  123. package/dist/utils/stringFormatters/pascalToSnakeCase.test.d.ts.map +0 -1
  124. package/dist/utils/stringFormatters/snakeToCamelCase.d.ts.map +0 -1
  125. package/dist/utils/stringFormatters/snakeToCamelCase.test.d.ts +0 -2
  126. package/dist/utils/stringFormatters/snakeToCamelCase.test.d.ts.map +0 -1
  127. package/dist/utils/stringFormatters/snakeToKebabCase.d.ts.map +0 -1
  128. package/dist/utils/stringFormatters/snakeToKebabCase.test.d.ts +0 -2
  129. package/dist/utils/stringFormatters/snakeToKebabCase.test.d.ts.map +0 -1
  130. package/dist/utils/stringFormatters/snakeToPascalCase.d.ts.map +0 -1
  131. package/dist/utils/stringFormatters/snakeToPascalCase.test.d.ts +0 -2
  132. package/dist/utils/stringFormatters/snakeToPascalCase.test.d.ts.map +0 -1
@@ -19,4 +19,3 @@ declare const formatterMap: {
19
19
  };
20
20
  };
21
21
  export default formatterMap;
22
- //# sourceMappingURL=formatterMap.d.ts.map
@@ -7,4 +7,3 @@ export declare const KEBAB_CONSECUTIVE_HYPHENS_REGEX: RegExp;
7
7
  export declare const HAS_UPPER_CASE_REGEX: RegExp;
8
8
  export declare const HAS_LOWER_CASE_REGEX: RegExp;
9
9
  export declare const SINGLE_WORD_REGEX: RegExp;
10
- //# sourceMappingURL=regex.d.ts.map
@@ -5,4 +5,3 @@
5
5
  * @internal This function is for internal use by the library
6
6
  */
7
7
  export default function transformPrimitive<T>(value: T): T;
8
- //# sourceMappingURL=primitiveTransformer.d.ts.map
@@ -17,4 +17,3 @@ import { TransformArrayReturn } from '../types/transformTypes';
17
17
  * @internal This function is for internal use by the library
18
18
  */
19
19
  export default function transformArray<T extends unknown[], O extends TransformOptionsInternal>(arr: T, options: O): Expand<TransformArrayReturn<T, O>>;
20
- //# sourceMappingURL=transformArray.d.ts.map
@@ -16,4 +16,3 @@ import { TransformMapReturn } from '../types/transformTypes';
16
16
  * @internal This function is for internal use by the library
17
17
  */
18
18
  export default function transformMap<K, V, O extends TransformOptionsInternal>(map: Map<K, V>, options: O): TransformMapReturn<K, V, O>;
19
- //# sourceMappingURL=transformMap.d.ts.map
@@ -19,4 +19,3 @@ import { TransformObjectReturn } from '../types/transformTypes';
19
19
  * @internal This function is for internal use by the library
20
20
  */
21
21
  export default function transformObject<T extends object, O extends TransformOptionsInternal>(obj: T, options: O): TransformObjectReturn<T, O>;
22
- //# sourceMappingURL=transformObject.d.ts.map
@@ -6,4 +6,3 @@ import { StringCase } from '../types/stringCaseTypes';
6
6
  * @returns The transformed string
7
7
  */
8
8
  export default function transformSingleWord(str: string, targetCase: StringCase): string;
9
- //# sourceMappingURL=transformSingleWord.d.ts.map
package/dist/index.d.ts CHANGED
@@ -3,4 +3,3 @@ import { StringCase } from './types/stringCaseTypes';
3
3
  import { TransformOptions } from './types/transformOptionTypes';
4
4
  export default transform;
5
5
  export type { StringCase, TransformOptions };
6
- //# sourceMappingURL=index.d.ts.map
package/dist/index.esm.js CHANGED
@@ -1,2 +1 @@
1
1
  const e={snake:{camel:function(e){return e.toLowerCase().replace(/_([a-z0-9])/g,((e,t)=>t.toUpperCase()))},pascal:function(e){return e.toLowerCase().replace(/_+([a-z0-9])/g,((e,t)=>t.toUpperCase())).replace(/^[a-z]/,(e=>e.toUpperCase()))},kebab:function(e){return e.replace(/_/g,"-")},snake:e=>e},camel:{snake:function(e){if(!e)return e;let t=e.replace(/([a-z0-9])([A-Z])/g,"$1_$2");return t=t.replace(/([A-Z])(?=[A-Z])/g,"$1_"),t.toLowerCase()},pascal:function(e){return e?e.charAt(0).toUpperCase()+e.slice(1):e},kebab:function(e){if(!e)return e;let t=e.replace(/([a-z0-9])([A-Z])/g,"$1-$2");return t=t.replace(/([A-Z])(?=[A-Z])/g,"$1-"),t.toLowerCase()},camel:e=>e},pascal:{snake:function(e){if(!e)return e;let t=e.replace(/([A-Z]{2,})([A-Z][a-z])/g,"$1_$2");return t=t.replace(/([a-z0-9])([A-Z])/g,"$1_$2"),t.toLowerCase()},camel:function(e){return e?e.charAt(0).toLowerCase()+e.slice(1):e},kebab:function(e){if(!e)return e;let t=e.replace(/([A-Z]{2,})([A-Z][a-z])/g,"$1-$2");return t=t.replace(/([a-z0-9])([A-Z])/g,"$1-$2"),t.toLowerCase()},pascal:e=>e},kebab:{snake:function(e){return e.replace(/-/g,"_")},camel:function(e){return e.toLowerCase().replace(/-+([a-z0-9])/g,((e,t)=>t.toUpperCase()))},pascal:function(e){return e.toLowerCase().replace(/-+([a-z0-9])/g,((e,t)=>t.toUpperCase())).replace(/^[a-z]/,(e=>e.toUpperCase()))},kebab:e=>e}};const t=/^[a-z0-9_]+$/,r=/__+/,n=/^[a-z][a-zA-Z0-9]*$/,s=/^[A-Z][a-zA-Z0-9]*$/,a=/^[a-z0-9-]+$/,o=/-{2,}/,c=/[A-Z]/,u=/[a-z]/,i=/^[a-z0-9]+$/;function l(e){return"string"!=typeof e?null:function(e){if(e.includes("_")||e.includes("-")||e.includes(" "))return!1;if(e.length>0&&!/^[A-Za-z0-9]+$/.test(e))return!1;if(e.length<=1)return!0;const t=e[0],r=e.slice(1);return e===e.toLowerCase()||t===t.toUpperCase()&&r===r.toLowerCase()}(e)?"single":function(e){return"string"==typeof e&&t.test(e)&&!r.test(e)&&(e.includes("_")||i.test(e))}(e)?"snake":function(e){return"string"==typeof e&&n.test(e)&&c.test(e)}(e)?"camel":function(e){return"string"==typeof e&&s.test(e)&&u.test(e)}(e)?"pascal":function(e){return"string"==typeof e&&a.test(e)&&!o.test(e)&&(e.includes("-")||i.test(e))}(e)?"kebab":null}function f(t,r){if(!t)return t;const{targetCase:n}=r,{string:s,shouldTransform:a,sourceCase:o,singleWord:c}=function(e){if("string"!=typeof e)throw new Error("Input must be a string");if(0===e.length)return{string:e,shouldTransform:!1,sourceCase:null,singleWord:!1};if(/[^A-Za-z0-9_-]/.test(e)||/^[^A-Za-z]/.test(e)||/[^A-Za-z0-9]$/.test(e))return{string:e,shouldTransform:!1,sourceCase:null,singleWord:!1};const t=l(e);return t?"single"===t?{string:e,shouldTransform:!0,sourceCase:null,singleWord:!0}:{string:e,shouldTransform:!0,sourceCase:t,singleWord:!1}:{string:e,shouldTransform:!1,sourceCase:null,singleWord:!1}}(t);if(!a)return s;if(c)return function(e,t){switch(t){case"pascal":return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase();case"camel":return e.charAt(0).toLowerCase()+e.slice(1);case"snake":case"kebab":return e.toLowerCase();default:return e}}(s,n);if(!o||o===n)return s;const u=e[o];if(!u)return s;const i=u[n];return i?i(s):s}function p(e,t){if(!(e instanceof Map))return e;const r=[];for(const[n,s]of e.entries())if("string"==typeof n){const e=f(n,t);r.push([e,s])}else r.push([n,s]);return new Map(r)}function g(e,t){if(null===e||"object"!=typeof e||Array.isArray(e))return e;const{targetCase:r,sourceCase:n}=t,s={};for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t)){s[!isNaN(Number(t))&&String(Number(t))===t?Number(t):f(t,{targetCase:r,sourceCase:n})]=e[t]}if(Object.getOwnPropertySymbols){const t=Object.getOwnPropertySymbols(e);for(const r of t)s[r]=e[r]}return s}function C(e,t,r=new WeakMap,n=0){var s;if(null==e||"object"!=typeof e)return e;if(r.has(e))return r.get(e);const a=null!==(s=t.depth)&&void 0!==s?s:3;if(n>=a)return e;const o=Object.assign(Object.assign({},t),{depth:a});let c;if(Array.isArray(e))c=function(e,t){return Array.isArray(e)?e.map((e=>null==e?e:e instanceof Map?p(e,t):"object"!=typeof e||Array.isArray(e)||e instanceof Set?e:g(e,t))):e}(e,t),r.set(e,c),n<a&&(c=c.map((e=>C(e,o,r,n+1))));else if(e instanceof Map){if(c=p(e,t),r.set(e,c),n<a){const e=c;for(const[t,s]of e.entries())null!==s&&"object"==typeof s&&e.set(t,C(s,o,r,n+1))}}else if(e instanceof Set){if(c=new Set(e),r.set(e,c),n<a){const e=c,t=Array.from(e);e.clear();for(const s of t)null!==s&&"object"==typeof s?e.add(C(s,o,r,n+1)):e.add(s)}}else if(c=g(e,t),r.set(e,c),n<a){const e=c;for(const t in e){const s=e[t];null!==s&&"object"==typeof s&&(e[t]=C(s,o,r,n+1))}}return c}function b(e,t){var r;return C(e,Object.assign(Object.assign({},t),{targetCase:(null==t?void 0:t.targetCase)||"camel",depth:null!==(r=null==t?void 0:t.depth)&&void 0!==r?r:3}))}export{b as default};
2
- //# sourceMappingURL=index.esm.js.map
package/dist/index.js CHANGED
@@ -1,2 +1 @@
1
1
  "use strict";const e={snake:{camel:function(e){return e.toLowerCase().replace(/_([a-z0-9])/g,((e,t)=>t.toUpperCase()))},pascal:function(e){return e.toLowerCase().replace(/_+([a-z0-9])/g,((e,t)=>t.toUpperCase())).replace(/^[a-z]/,(e=>e.toUpperCase()))},kebab:function(e){return e.replace(/_/g,"-")},snake:e=>e},camel:{snake:function(e){if(!e)return e;let t=e.replace(/([a-z0-9])([A-Z])/g,"$1_$2");return t=t.replace(/([A-Z])(?=[A-Z])/g,"$1_"),t.toLowerCase()},pascal:function(e){return e?e.charAt(0).toUpperCase()+e.slice(1):e},kebab:function(e){if(!e)return e;let t=e.replace(/([a-z0-9])([A-Z])/g,"$1-$2");return t=t.replace(/([A-Z])(?=[A-Z])/g,"$1-"),t.toLowerCase()},camel:e=>e},pascal:{snake:function(e){if(!e)return e;let t=e.replace(/([A-Z]{2,})([A-Z][a-z])/g,"$1_$2");return t=t.replace(/([a-z0-9])([A-Z])/g,"$1_$2"),t.toLowerCase()},camel:function(e){return e?e.charAt(0).toLowerCase()+e.slice(1):e},kebab:function(e){if(!e)return e;let t=e.replace(/([A-Z]{2,})([A-Z][a-z])/g,"$1-$2");return t=t.replace(/([a-z0-9])([A-Z])/g,"$1-$2"),t.toLowerCase()},pascal:e=>e},kebab:{snake:function(e){return e.replace(/-/g,"_")},camel:function(e){return e.toLowerCase().replace(/-+([a-z0-9])/g,((e,t)=>t.toUpperCase()))},pascal:function(e){return e.toLowerCase().replace(/-+([a-z0-9])/g,((e,t)=>t.toUpperCase())).replace(/^[a-z]/,(e=>e.toUpperCase()))},kebab:e=>e}};const t=/^[a-z0-9_]+$/,r=/__+/,n=/^[a-z][a-zA-Z0-9]*$/,s=/^[A-Z][a-zA-Z0-9]*$/,a=/^[a-z0-9-]+$/,o=/-{2,}/,c=/[A-Z]/,u=/[a-z]/,i=/^[a-z0-9]+$/;function l(e){return"string"!=typeof e?null:function(e){if(e.includes("_")||e.includes("-")||e.includes(" "))return!1;if(e.length>0&&!/^[A-Za-z0-9]+$/.test(e))return!1;if(e.length<=1)return!0;const t=e[0],r=e.slice(1);return e===e.toLowerCase()||t===t.toUpperCase()&&r===r.toLowerCase()}(e)?"single":function(e){return"string"==typeof e&&t.test(e)&&!r.test(e)&&(e.includes("_")||i.test(e))}(e)?"snake":function(e){return"string"==typeof e&&n.test(e)&&c.test(e)}(e)?"camel":function(e){return"string"==typeof e&&s.test(e)&&u.test(e)}(e)?"pascal":function(e){return"string"==typeof e&&a.test(e)&&!o.test(e)&&(e.includes("-")||i.test(e))}(e)?"kebab":null}function f(t,r){if(!t)return t;const{targetCase:n}=r,{string:s,shouldTransform:a,sourceCase:o,singleWord:c}=function(e){if("string"!=typeof e)throw new Error("Input must be a string");if(0===e.length)return{string:e,shouldTransform:!1,sourceCase:null,singleWord:!1};if(/[^A-Za-z0-9_-]/.test(e)||/^[^A-Za-z]/.test(e)||/[^A-Za-z0-9]$/.test(e))return{string:e,shouldTransform:!1,sourceCase:null,singleWord:!1};const t=l(e);return t?"single"===t?{string:e,shouldTransform:!0,sourceCase:null,singleWord:!0}:{string:e,shouldTransform:!0,sourceCase:t,singleWord:!1}:{string:e,shouldTransform:!1,sourceCase:null,singleWord:!1}}(t);if(!a)return s;if(c)return function(e,t){switch(t){case"pascal":return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase();case"camel":return e.charAt(0).toLowerCase()+e.slice(1);case"snake":case"kebab":return e.toLowerCase();default:return e}}(s,n);if(!o||o===n)return s;const u=e[o];if(!u)return s;const i=u[n];return i?i(s):s}function p(e,t){if(!(e instanceof Map))return e;const r=[];for(const[n,s]of e.entries())if("string"==typeof n){const e=f(n,t);r.push([e,s])}else r.push([n,s]);return new Map(r)}function g(e,t){if(null===e||"object"!=typeof e||Array.isArray(e))return e;const{targetCase:r,sourceCase:n}=t,s={};for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t)){s[!isNaN(Number(t))&&String(Number(t))===t?Number(t):f(t,{targetCase:r,sourceCase:n})]=e[t]}if(Object.getOwnPropertySymbols){const t=Object.getOwnPropertySymbols(e);for(const r of t)s[r]=e[r]}return s}function C(e,t,r=new WeakMap,n=0){var s;if(null==e||"object"!=typeof e)return e;if(r.has(e))return r.get(e);const a=null!==(s=t.depth)&&void 0!==s?s:3;if(n>=a)return e;const o=Object.assign(Object.assign({},t),{depth:a});let c;if(Array.isArray(e))c=function(e,t){return Array.isArray(e)?e.map((e=>null==e?e:e instanceof Map?p(e,t):"object"!=typeof e||Array.isArray(e)||e instanceof Set?e:g(e,t))):e}(e,t),r.set(e,c),n<a&&(c=c.map((e=>C(e,o,r,n+1))));else if(e instanceof Map){if(c=p(e,t),r.set(e,c),n<a){const e=c;for(const[t,s]of e.entries())null!==s&&"object"==typeof s&&e.set(t,C(s,o,r,n+1))}}else if(e instanceof Set){if(c=new Set(e),r.set(e,c),n<a){const e=c,t=Array.from(e);e.clear();for(const s of t)null!==s&&"object"==typeof s?e.add(C(s,o,r,n+1)):e.add(s)}}else if(c=g(e,t),r.set(e,c),n<a){const e=c;for(const t in e){const s=e[t];null!==s&&"object"==typeof s&&(e[t]=C(s,o,r,n+1))}}return c}module.exports=function(e,t){var r;return C(e,Object.assign(Object.assign({},t),{targetCase:(null==t?void 0:t.targetCase)||"camel",depth:null!==(r=null==t?void 0:t.depth)&&void 0!==r?r:3}))};
2
- //# sourceMappingURL=index.js.map
@@ -13,4 +13,3 @@ import { TransformOptionsInternal } from '../types/transformOptionTypes';
13
13
  export default function internalTransform(data: unknown, options: TransformOptionsInternal & {
14
14
  depth?: number;
15
15
  }, visitedRefs?: WeakMap<object, unknown>, currentDepth?: number): unknown;
16
- //# sourceMappingURL=internalTransform.d.ts.map
@@ -10,4 +10,3 @@ declare function transform<T>(data: T, options?: TransformOptions & {
10
10
  depth?: number;
11
11
  }): unknown;
12
12
  export default transform;
13
- //# sourceMappingURL=transform.d.ts.map
@@ -21,4 +21,3 @@ import { TransformOptionsInternal } from '../types/transformOptionTypes';
21
21
  * @internal This function is for internal use by the library
22
22
  */
23
23
  export default function transformCase(str: string, options: TransformOptionsInternal): string;
24
- //# sourceMappingURL=transformCase.d.ts.map
@@ -1,4 +1,3 @@
1
1
  export type Expand<T> = T extends unknown ? {
2
2
  [K in keyof T]: T[K];
3
3
  } : never;
4
- //# sourceMappingURL=helperTypes.d.ts.map
@@ -2,4 +2,3 @@
2
2
  * Represents the supported string case formats for transformation
3
3
  */
4
4
  export type StringCase = 'camel' | 'pascal' | 'snake' | 'kebab';
5
- //# sourceMappingURL=stringCaseTypes.d.ts.map
@@ -39,4 +39,3 @@ export interface TransformOptions {
39
39
  * Ensures required fields are set after defaults are applied.
40
40
  */
41
41
  export type TransformOptionsInternal = Required<Pick<TransformOptions, 'targetCase'>> & Omit<TransformOptions, 'targetCase'>;
42
- //# sourceMappingURL=transformOptionTypes.d.ts.map
@@ -277,4 +277,3 @@ export type KebabToSnakeRecursive<T> = T extends Array<infer U> ? Array<KebabToS
277
277
  */
278
278
  export type TransformRecursive<T, FromCase extends StringCase, ToCase extends StringCase> = FromCase extends 'snake' ? ToCase extends 'camel' ? SnakeToCamelRecursive<T> : ToCase extends 'pascal' ? SnakeToPascalRecursive<T> : ToCase extends 'kebab' ? SnakeToKebabRecursive<T> : T : FromCase extends 'camel' ? ToCase extends 'snake' ? CamelToSnakeRecursive<T> : ToCase extends 'pascal' ? CamelToPascalRecursive<T> : ToCase extends 'kebab' ? CamelToKebabRecursive<T> : T : FromCase extends 'pascal' ? ToCase extends 'snake' ? PascalToSnakeRecursive<T> : ToCase extends 'camel' ? PascalToCamelRecursive<T> : ToCase extends 'kebab' ? PascalToKebabRecursive<T> : T : FromCase extends 'kebab' ? ToCase extends 'snake' ? KebabToSnakeRecursive<T> : ToCase extends 'camel' ? KebabToCamelRecursive<T> : ToCase extends 'pascal' ? KebabToPascalRecursive<T> : T : T;
279
279
  export {};
280
- //# sourceMappingURL=transformTypes.d.ts.map
@@ -11,4 +11,3 @@
11
11
  * @internal This function is for internal use by the library
12
12
  */
13
13
  export default function isCamelCase(str: string): boolean;
14
- //# sourceMappingURL=isCamelCase.d.ts.map
@@ -11,4 +11,3 @@
11
11
  * @internal This function is for internal use by the library
12
12
  */
13
13
  export declare function isKebabCase(str: string): boolean;
14
- //# sourceMappingURL=isKebabCase.d.ts.map
@@ -12,4 +12,3 @@
12
12
  * @internal This function is for internal use by the library
13
13
  */
14
14
  export default function isPascalCase(str: string): boolean;
15
- //# sourceMappingURL=isPascalCase.d.ts.map
@@ -12,4 +12,3 @@
12
12
  * @internal This function is for internal use by the library
13
13
  */
14
14
  export default function isSnakeCase(str: string): boolean;
15
- //# sourceMappingURL=isSnakeCase.d.ts.map
@@ -35,4 +35,3 @@
35
35
  * @internal This function is for internal use by the library
36
36
  */
37
37
  export default function detectSingleWord(str: string): boolean;
38
- //# sourceMappingURL=detectSingleWord.d.ts.map
@@ -15,4 +15,3 @@ import { StringCase } from '../types/stringCaseTypes';
15
15
  * @internal This function is for internal use by the library
16
16
  */
17
17
  export default function detectStringCase(str: string): StringCase | 'single' | null;
18
- //# sourceMappingURL=detectStringCase.d.ts.map
@@ -18,4 +18,3 @@ interface StringPreparationResult {
18
18
  */
19
19
  export declare function prepareStringTransformation(str: string): StringPreparationResult;
20
20
  export {};
21
- //# sourceMappingURL=prepareStringTransformation.d.ts.map
@@ -12,4 +12,3 @@
12
12
  * @internal This function is for internal use by the library
13
13
  */
14
14
  export default function camelToKebabCase(str: string): string;
15
- //# sourceMappingURL=camelToKebabCase.d.ts.map
@@ -12,4 +12,3 @@
12
12
  * @internal This function is for internal use by the library
13
13
  */
14
14
  export default function camelToPascalCase(str: string): string;
15
- //# sourceMappingURL=camelToPascalCase.d.ts.map
@@ -12,4 +12,3 @@
12
12
  * @internal This function is for internal use by the library
13
13
  */
14
14
  export default function camelToSnakeCase(str: string): string;
15
- //# sourceMappingURL=camelToSnakeCase.d.ts.map
@@ -12,4 +12,3 @@
12
12
  * @internal This function is for internal use by the library
13
13
  */
14
14
  export default function kebabToCamelCase(str: string): string;
15
- //# sourceMappingURL=kebabToCamelCase.d.ts.map
@@ -12,4 +12,3 @@
12
12
  * @internal This function is for internal use by the library
13
13
  */
14
14
  export default function kebabToPascalCase(str: string): string;
15
- //# sourceMappingURL=kebabToPascalCase.d.ts.map
@@ -12,4 +12,3 @@
12
12
  * @internal This function is for internal use by the library
13
13
  */
14
14
  export default function kebabToSnakeCase(str: string): string;
15
- //# sourceMappingURL=kebabToSnakeCase.d.ts.map
@@ -12,4 +12,3 @@
12
12
  * @internal This function is for internal use by the library
13
13
  */
14
14
  export default function pascalToCamelCase(str: string): string;
15
- //# sourceMappingURL=pascalToCamelCase.d.ts.map
@@ -13,4 +13,3 @@
13
13
  * @internal This function is for internal use by the library
14
14
  */
15
15
  export default function pascalToKebabCase(str: string): string;
16
- //# sourceMappingURL=pascalToKebabCase.d.ts.map
@@ -13,4 +13,3 @@
13
13
  * @internal This function is for internal use by the library
14
14
  */
15
15
  export default function pascalToSnakeCase(str: string): string;
16
- //# sourceMappingURL=pascalToSnakeCase.d.ts.map
@@ -12,4 +12,3 @@
12
12
  * @internal This function is for internal use by the library
13
13
  */
14
14
  export default function snakeToCamelCase(str: string): string;
15
- //# sourceMappingURL=snakeToCamelCase.d.ts.map
@@ -12,4 +12,3 @@
12
12
  * @internal This function is for internal use by the library
13
13
  */
14
14
  export default function snakeToKebabCase(str: string): string;
15
- //# sourceMappingURL=snakeToKebabCase.d.ts.map
@@ -12,4 +12,3 @@
12
12
  * @internal This function is for internal use by the library
13
13
  */
14
14
  export default function snakeToPascalCase(str: string): string;
15
- //# sourceMappingURL=snakeToPascalCase.d.ts.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "deep-case-crafter",
3
- "version": "0.0.2",
4
- "description": "Transform deeply nested object, array, Map, and Set keys between common case formats while preserving TypeScript type safety",
3
+ "version": "0.0.4",
4
+ "description": "Transforms deeply nested object, array, Map, and Set keys between common case formats while preserving TypeScript type safety",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.esm.js",
7
7
  "types": "dist/index.d.ts",
package/readme.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # DeepCaseCrafter
2
2
 
3
- Transform deeply nested object, array, Map, and Set keys between common case formats while preserving TypeScript type safety.
3
+ Transforms deeply nested object, array, Map, and Set keys between common case formats while preserving TypeScript type safety.
4
4
 
5
5
  ## Features
6
6
 
@@ -105,7 +105,7 @@ Keys are automatically preserved (not transformed) if:
105
105
 
106
106
  - **Default Depth**: 3 levels deep to avoid unnecessary processing.
107
107
  - **Custom Depth**: Set `depth` to control recursion. Use `Infinity` for full recursion.
108
- - **Lightweight**: The bundle size is approximately **27.33 KB**.
108
+ - **Lightweight**: Optimized for performance with minimal package size.
109
109
  - **Benchmarks**: Transform Deep Object (Depth 5, Width 10) x 361,538 ops/sec ±0.12% (91 runs sampled)
110
110
  Fastest is Transform Deep Object (Depth 5, Width 10)
111
111
 
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=transform.benchmark.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transform.benchmark.d.ts","sourceRoot":"","sources":["../../src/benchmark/transform.benchmark.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"formatterMap.d.ts","sourceRoot":"","sources":["../../src/constants/formatterMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AActD;;;;;;;;;;;;;GAaG;AACH,QAAA,MAAM,YAAY,EAAE;KACjB,MAAM,IAAI,UAAU,GAAG;SACrB,MAAM,IAAI,UAAU,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM;KAChD;CA0BF,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"regex.d.ts","sourceRoot":"","sources":["../../src/constants/regex.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,QAAiB,CAAC;AAC/C,eAAO,MAAM,mCAAmC,QAAQ,CAAC;AAEzD,eAAO,MAAM,gBAAgB,QAAwB,CAAC;AAEtD,eAAO,MAAM,sBAAsB,QAAwB,CAAC;AAE5D,eAAO,MAAM,iCAAiC,QAAiB,CAAC;AAChE,eAAO,MAAM,+BAA+B,QAAU,CAAC;AAEvD,eAAO,MAAM,oBAAoB,QAAU,CAAC;AAC5C,eAAO,MAAM,oBAAoB,QAAU,CAAC;AAC5C,eAAO,MAAM,iBAAiB,QAAgB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"primitiveTransformer.d.ts","sourceRoot":"","sources":["../../src/dataTransformers/primitiveTransformer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAEzD"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=primitiveTransformer.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"primitiveTransformer.test.d.ts","sourceRoot":"","sources":["../../src/dataTransformers/primitiveTransformer.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"transformArray.d.ts","sourceRoot":"","sources":["../../src/dataTransformers/transformArray.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAI/D;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CACpC,CAAC,SAAS,OAAO,EAAE,EACnB,CAAC,SAAS,wBAAwB,EAClC,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAgCxD"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=transformArray.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transformArray.test.d.ts","sourceRoot":"","sources":["../../src/dataTransformers/transformArray.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"transformMap.d.ts","sourceRoot":"","sources":["../../src/dataTransformers/transformMap.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,wBAAwB,EAC3E,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EACd,OAAO,EAAE,CAAC,GACT,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAoB7B"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=transformMap.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transformMap.test.d.ts","sourceRoot":"","sources":["../../src/dataTransformers/transformMap.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"transformObject.d.ts","sourceRoot":"","sources":["../../src/dataTransformers/transformObject.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CACrC,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,wBAAwB,EAClC,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,CAoCjD"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=transformObject.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transformObject.test.d.ts","sourceRoot":"","sources":["../../src/dataTransformers/transformObject.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"transformSingleWord.d.ts","sourceRoot":"","sources":["../../src/dataTransformers/transformSingleWord.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,mBAAmB,CACzC,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,UAAU,GACrB,MAAM,CAYR"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=transformSingleWord.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transformSingleWord.test.d.ts","sourceRoot":"","sources":["../../src/dataTransformers/transformSingleWord.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE,eAAe,SAAS,CAAC;AAGzB,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/constants/formatterMap.ts","../src/utils/stringFormatters/snakeToCamelCase.ts","../src/utils/stringFormatters/snakeToPascalCase.ts","../src/utils/stringFormatters/snakeToKebabCase.ts","../src/utils/stringFormatters/camelToSnakeCase.ts","../src/utils/stringFormatters/camelToPascalCase.ts","../src/utils/stringFormatters/camelToKebabCase.ts","../src/utils/stringFormatters/pascalToSnakeCase.ts","../src/utils/stringFormatters/pascalToCamelCase.ts","../src/utils/stringFormatters/pascalToKebabCase.ts","../src/utils/stringFormatters/kebabToSnakeCase.ts","../src/utils/stringFormatters/kebabToCamelCase.ts","../src/utils/stringFormatters/kebabToPascalCase.ts","../src/constants/regex.ts","../src/utils/detectStringCase.ts","../src/utils/detectSingleWord.ts","../src/utils/caseDetectors/isSnakeCase.ts","../src/utils/caseDetectors/isCamelCase.ts","../src/utils/caseDetectors/isPascalCase.ts","../src/utils/caseDetectors/isKebabCase.ts","../src/transform/transformCase.ts","../src/utils/prepareStringTransformation.ts","../src/dataTransformers/transformSingleWord.ts","../src/dataTransformers/transformMap.ts","../src/dataTransformers/transformObject.ts","../src/transform/internalTransform.ts","../src/dataTransformers/transformArray.ts","../src/transform/transform.ts"],"sourcesContent":["import { StringCase } from '../types/stringCaseTypes';\nimport camelToKebabCase from '../utils/stringFormatters/camelToKebabCase';\nimport camelToPascalCase from '../utils/stringFormatters/camelToPascalCase';\nimport camelToSnakeCase from '../utils/stringFormatters/camelToSnakeCase';\nimport kebabToCamelCase from '../utils/stringFormatters/kebabToCamelCase';\nimport kebabToPascalCase from '../utils/stringFormatters/kebabToPascalCase';\nimport kebabToSnakeCase from '../utils/stringFormatters/kebabToSnakeCase';\nimport pascalToCamelCase from '../utils/stringFormatters/pascalToCamelCase';\nimport pascalToKebabCase from '../utils/stringFormatters/pascalToKebabCase';\nimport pascalToSnakeCase from '../utils/stringFormatters/pascalToSnakeCase';\nimport snakeToCamelCase from '../utils/stringFormatters/snakeToCamelCase';\nimport snakeToKebabCase from '../utils/stringFormatters/snakeToKebabCase';\nimport snakeToPascalCase from '../utils/stringFormatters/snakeToPascalCase';\n\n/**\n * A mapping of transformation functions for converting strings between different case formats.\n *\n * Each key of this mapping represents the detected source case (e.g., 'snake', 'camel', 'pascal', 'kebab').\n * The corresponding value is an object that maps target case formats to the appropriate transformation function.\n *\n * Each transformation function accepts a string (`str`) that is to be transformed.\n *\n * For instance:\n * - `formatterMap.snake.camel` converts a snake_case string to camelCase.\n * - If the source and target cases are the same (e.g., `formatterMap.snake.snake`), an identity function is provided.\n *\n * @type {Record<StringCase, Record<StringCase, (str: string) => string>>}\n */\nconst formatterMap: {\n [source in StringCase]: {\n [target in StringCase]: (str: string) => string;\n };\n} = {\n snake: {\n camel: snakeToCamelCase,\n pascal: snakeToPascalCase,\n kebab: snakeToKebabCase,\n snake: (s) => s,\n },\n camel: {\n snake: camelToSnakeCase,\n pascal: camelToPascalCase,\n kebab: camelToKebabCase,\n camel: (s) => s,\n },\n pascal: {\n snake: pascalToSnakeCase,\n camel: pascalToCamelCase,\n kebab: pascalToKebabCase,\n pascal: (s) => s,\n },\n kebab: {\n snake: kebabToSnakeCase,\n camel: kebabToCamelCase,\n pascal: kebabToPascalCase,\n kebab: (s) => s,\n },\n};\n\nexport default formatterMap;\n","/**\n * Converts a snake_case string to camelCase\n * Core transformation function without special character handling\n *\n * @param str - The snake_case string to convert\n * @returns The camelCase transformed string\n *\n * @example\n * ```typescript\n * snakeToCamelCase('hello_world') // => 'helloWorld'\n * ```\n * @internal This function is for internal use by the library\n */\nexport default function snakeToCamelCase(str: string): string {\n return str\n .toLowerCase()\n .replace(/_([a-z0-9])/g, (_, char) => char.toUpperCase());\n}\n","/**\n * Converts a snake_case string to PascalCase\n * Core transformation function without special character handling\n *\n * @param str - The snake_case string to convert\n * @returns The PascalCase transformed string\n *\n * @example\n * ```typescript\n * snakeToPascalCase('hello_world') // => 'HelloWorld'\n * ```\n * @internal This function is for internal use by the library\n */\nexport default function snakeToPascalCase(str: string): string {\n return str\n .toLowerCase()\n .replace(/_+([a-z0-9])/g, (_, char) => char.toUpperCase())\n .replace(/^[a-z]/, (match) => match.toUpperCase());\n}\n","/**\n * Converts a snake_case string to kebab-case\n * Core transformation function without special character handling\n *\n * @param str - The snake_case string to convert\n * @returns The kebab-case transformed string\n *\n * @example\n * ```typescript\n * snakeToKebabCase('hello_world') // => 'hello-world'\n * ```\n * @internal This function is for internal use by the library\n */\nexport default function snakeToKebabCase(str: string): string {\n return str.replace(/_/g, '-');\n}\n","/**\n * Converts a camelCase string to snake_case\n * Core transformation function without special character handling\n *\n * @param str - The camelCase string to convert\n * @returns The snake_case transformed string\n *\n * @example\n * ```typescript\n * camelToSnakeCase('helloWorld') // => 'hello_world'\n * ```\n * @internal This function is for internal use by the library\n */\nexport default function camelToSnakeCase(str: string): string {\n if (!str) return str;\n\n // First, handle the beginning of an acronym\n let result = str.replace(/([a-z0-9])([A-Z])/g, '$1_$2');\n\n // Then handle consecutive uppercase letters\n result = result.replace(/([A-Z])(?=[A-Z])/g, '$1_');\n\n return result.toLowerCase();\n}\n","/**\n * Converts a camelCase string to PascalCase\n * Core transformation function without special character handling\n *\n * @param str - The camelCase string to convert\n * @returns The PascalCase transformed string\n *\n * @example\n * ```typescript\n * camelToPascalCase('helloWorld') // => 'HelloWorld'\n * ```\n * @internal This function is for internal use by the library\n */\nexport default function camelToPascalCase(str: string): string {\n if (!str) return str;\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n","/**\n * Converts a camelCase string to kebab-case\n * Core transformation function without special character handling\n *\n * @param str - The camelCase string to convert\n * @returns The kebab-case transformed string\n *\n * @example\n * ```typescript\n * camelToKebabCase('helloWorld') // => 'hello-world'\n * ```\n * @internal This function is for internal use by the library\n */\nexport default function camelToKebabCase(str: string): string {\n if (!str) return str;\n\n // First, handle the beginning of an acronym\n let result = str.replace(/([a-z0-9])([A-Z])/g, '$1-$2');\n\n // Then handle consecutive uppercase letters\n result = result.replace(/([A-Z])(?=[A-Z])/g, '$1-');\n\n return result.toLowerCase();\n}\n","/**\n * Converts a PascalCase string to snake_case\n * Core transformation function without special character handling\n *\n * @param str - The PascalCase string to convert\n * @returns The snake_case transformed string\n *\n * @example\n * ```typescript\n * pascalToSnakeCase('HelloWorld') // => 'hello_world'\n * pascalToSnakeCase('HTTPResponse') // => 'http_response'\n * ```\n * @internal This function is for internal use by the library\n */\nexport default function pascalToSnakeCase(str: string): string {\n if (!str) return str;\n\n // Step 1: Handle acronym patterns explicitly\n // - Find sequences like \"HTTP\" in \"HTTPResponse\" and convert to \"HTTP_Response\"\n let intermediate = str.replace(/([A-Z]{2,})([A-Z][a-z])/g, '$1_$2');\n\n // Step 2: Handle standard PascalCase pattern\n // - Convert \"HelloWorld\" to \"Hello_World\"\n intermediate = intermediate.replace(/([a-z0-9])([A-Z])/g, '$1_$2');\n\n // Step 3: Convert to lowercase\n return intermediate.toLowerCase();\n}\n","/**\n * Converts a PascalCase string to camelCase\n * Core transformation function without special character handling\n *\n * @param str - The PascalCase string to convert\n * @returns The camelCase transformed string\n *\n * @example\n * ```typescript\n * pascalToCamelCase('HelloWorld') // => 'helloWorld'\n * ```\n * @internal This function is for internal use by the library\n */\nexport default function pascalToCamelCase(str: string): string {\n if (!str) return str;\n return str.charAt(0).toLowerCase() + str.slice(1);\n}\n","/**\n * Converts a PascalCase string to kebab-case\n * Core transformation function without special character handling\n *\n * @param str - The PascalCase string to convert\n * @returns The kebab-case transformed string\n *\n * @example\n * ```typescript\n * pascalToKebabCase('HelloWorld') // => 'hello-world'\n * pascalToKebabCase('HTTPResponse') // => 'http-response'\n * ```\n * @internal This function is for internal use by the library\n */\nexport default function pascalToKebabCase(str: string): string {\n if (!str) return str;\n\n // Step 1: Handle acronym patterns explicitly\n // - Find sequences like \"HTTP\" in \"HTTPResponse\" and convert to \"HTTP-Response\"\n let intermediate = str.replace(/([A-Z]{2,})([A-Z][a-z])/g, '$1-$2');\n\n // Step 2: Handle standard PascalCase pattern\n // - Convert \"HelloWorld\" to \"Hello-World\"\n intermediate = intermediate.replace(/([a-z0-9])([A-Z])/g, '$1-$2');\n\n // Step 3: Convert to lowercase\n return intermediate.toLowerCase();\n}\n","/**\n * Converts a kebab-case string to snake_case\n * Core transformation function without special character handling\n *\n * @param str - The kebab-case string to convert\n * @returns The snake_case transformed string\n *\n * @example\n * ```typescript\n * kebabToSnakeCase('hello-world') // => 'hello_world'\n * ```\n * @internal This function is for internal use by the library\n */\nexport default function kebabToSnakeCase(str: string): string {\n return str.replace(/-/g, '_');\n}\n","/**\n * Converts a kebab-case string to camelCase\n * Core transformation function without special character handling\n *\n * @param str - The kebab-case string to convert\n * @returns The camelCase transformed string\n *\n * @example\n * ```typescript\n * kebabToCamelCase('hello-world') // => 'helloWorld'\n * ```\n * @internal This function is for internal use by the library\n */\nexport default function kebabToCamelCase(str: string): string {\n return str\n .toLowerCase()\n .replace(/-+([a-z0-9])/g, (_, char) => char.toUpperCase());\n}\n","/**\n * Converts a kebab-case string to PascalCase\n * Core transformation function without special character handling\n *\n * @param str - The kebab-case string to convert\n * @returns The PascalCase transformed string\n *\n * @example\n * ```typescript\n * kebabToPascalCase('hello-world') // => 'HelloWorld'\n * ```\n * @internal This function is for internal use by the library\n */\nexport default function kebabToPascalCase(str: string): string {\n return str\n .toLowerCase()\n .replace(/-+([a-z0-9])/g, (_, char) => char.toUpperCase())\n .replace(/^[a-z]/, (match) => match.toUpperCase());\n}\n","export const SNAKE_ONLY_REGEX = /^[a-z0-9_]+$/;\nexport const SNAKE_CONSECUTIVE_UNDERSCORES_REGEX = /__+/;\n\nexport const CAMEL_ONLY_REGEX = /^[a-z][a-zA-Z0-9]*$/;\n\nexport const PASCAL_CASE_FULL_REGEX = /^[A-Z][a-zA-Z0-9]*$/;\n\nexport const KEBAB_LOWER_NUMBERS_HYPHENS_REGEX = /^[a-z0-9-]+$/;\nexport const KEBAB_CONSECUTIVE_HYPHENS_REGEX = /-{2,}/;\n\nexport const HAS_UPPER_CASE_REGEX = /[A-Z]/;\nexport const HAS_LOWER_CASE_REGEX = /[a-z]/;\nexport const SINGLE_WORD_REGEX = /^[a-z0-9]+$/;\n","import { StringCase } from '../types/stringCaseTypes';\nimport isCamelCase from './caseDetectors/isCamelCase';\nimport { isKebabCase } from './caseDetectors/isKebabCase';\nimport isPascalCase from './caseDetectors/isPascalCase';\nimport isSnakeCase from './caseDetectors/isSnakeCase';\nimport detectSingleWord from './detectSingleWord';\n\n/**\n * Detects the case format of a string\n * @param str - The string to analyze\n * @returns The detected case format, 'single' for single words, or null if format cannot be determined\n *\n * @example\n * ```typescript\n * detectStringCase('hello_world') // => 'snake'\n * detectStringCase('helloWorld') // => 'camel'\n * detectStringCase('HelloWorld') // => 'pascal'\n * detectStringCase('hello-world') // => 'kebab'\n * detectStringCase('hello') // => 'single'\n * ```\n * @internal This function is for internal use by the library\n */\nexport default function detectStringCase(\n str: string,\n): StringCase | 'single' | null {\n if (typeof str !== 'string') return null;\n\n if (detectSingleWord(str)) {\n return 'single';\n }\n\n if (isSnakeCase(str)) return 'snake';\n if (isCamelCase(str)) return 'camel';\n if (isPascalCase(str)) return 'pascal';\n if (isKebabCase(str)) return 'kebab';\n\n return null;\n}\n","/**\n * Determines whether the given string qualifies as a single word.\n *\n * A string is considered a \"single word\" if:\n * - It does not contain any delimiters such as underscores (`_`), hyphens (`-`), or spaces.\n * - It contains only alphanumeric characters (letters and digits). Any other character (e.g., punctuation) will cause it to be considered as not a single word.\n * - For strings longer than one character:\n * - If the entire string is lowercase, it's considered a single word.\n * - If the string starts with an uppercase letter and the rest are lowercase, it's considered a single word.\n * - Single-character strings and empty strings are treated as a single word.\n *\n * @param {string} str - The string to check.\n * @returns {boolean} Returns `true` if the input string qualifies as a single word, otherwise returns `false`.\n *\n * @example\n * // Returns true because \"hello\" is a single word (all lowercase).\n * detectSingleWord(\"hello\");\n *\n * @example\n * // Returns true because \"Hello\" is considered a single word (capitalized first letter only).\n * detectSingleWord(\"Hello\");\n *\n * @example\n * // Returns false because \"hello_world\" contains an underscore.\n * detectSingleWord(\"hello_world\");\n *\n * @example\n * // Returns false because \"hello world\" contains a space.\n * detectSingleWord(\"hello world\");\n *\n * @example\n * // Returns false because \"hello@world\" contains a special character.\n * detectSingleWord(\"hello@world\");\n *\n * @internal This function is for internal use by the library\n */\nexport default function detectSingleWord(str: string): boolean {\n // Reject strings containing common delimiters or non-alphanumeric characters.\n if (str.includes('_') || str.includes('-') || str.includes(' ')) return false;\n if (str.length > 0 && !/^[A-Za-z0-9]+$/.test(str)) return false;\n\n // For empty strings or one-character strings, consider them as a single word.\n if (str.length <= 1) return true;\n\n const first = str[0];\n const rest = str.slice(1);\n\n // If the entire string is lowercase, it's a single word.\n if (str === str.toLowerCase()) return true;\n // If the first character is uppercase and the rest are lowercase, it's a single word.\n if (first === first.toUpperCase() && rest === rest.toLowerCase()) return true;\n\n // Otherwise, the string is likely formatted as camelCase or PascalCase (i.e., multi-word).\n return false;\n}\n","import {\n SINGLE_WORD_REGEX,\n SNAKE_CONSECUTIVE_UNDERSCORES_REGEX,\n SNAKE_ONLY_REGEX,\n} from '../../constants/regex';\n\n/**\n * Checks if a string is in snake_case format\n * @param str - The string to check\n * @returns boolean indicating if the string is in snake_case\n *\n * @example\n * ```typescript\n * isSnakeCase('hello_world') // => true\n * isSnakeCase('helloWorld') // => false\n * ```\n *\n * @internal This function is for internal use by the library\n */\nexport default function isSnakeCase(str: string): boolean {\n if (typeof str !== 'string') return false;\n\n return (\n SNAKE_ONLY_REGEX.test(str) && // only lowercase, numbers and underscores\n !SNAKE_CONSECUTIVE_UNDERSCORES_REGEX.test(str) && // no consecutive underscores\n (str.includes('_') || SINGLE_WORD_REGEX.test(str)) // has underscore or is single word\n );\n}\n","import { CAMEL_ONLY_REGEX, HAS_UPPER_CASE_REGEX } from '../../constants/regex';\n\n/**\n * Checks if a string is in camelCase format\n * @param str - The string to check\n * @returns boolean indicating if the string is in camelCase\n *\n * @example\n * ```typescript\n * isCamelCase('helloWorld') // => true\n * isCamelCase('hello_world') // => false\n * ```\n * @internal This function is for internal use by the library\n */\nexport default function isCamelCase(str: string): boolean {\n if (typeof str !== 'string') return false;\n\n return (\n CAMEL_ONLY_REGEX.test(str) && // starts with lowercase, only letters and numbers\n HAS_UPPER_CASE_REGEX.test(str) // contains at least one uppercase letter\n );\n}\n","import {\n HAS_LOWER_CASE_REGEX,\n PASCAL_CASE_FULL_REGEX,\n} from '../../constants/regex';\n\n/**\n * Checks if a string is in PascalCase format\n * @param str - The string to check\n * @returns boolean indicating if the string is in PascalCase\n *\n * @example\n * ```typescript\n * isPascalCase('HelloWorld') // => true\n * isPascalCase('helloWorld') // => false\n * ```\n *\n * @internal This function is for internal use by the library\n */\nexport default function isPascalCase(str: string): boolean {\n if (typeof str !== 'string') return false;\n\n // Must start with uppercase, contain at least one lowercase letter, and only have letters and numbers\n return PASCAL_CASE_FULL_REGEX.test(str) && HAS_LOWER_CASE_REGEX.test(str);\n}\n","import {\n KEBAB_CONSECUTIVE_HYPHENS_REGEX,\n KEBAB_LOWER_NUMBERS_HYPHENS_REGEX,\n SINGLE_WORD_REGEX,\n} from '../../constants/regex';\n\n/**\n * Checks if a string is in kebab-case format\n * @param str - The string to check\n * @returns boolean indicating if the string is in kebab-case\n *\n * @example\n * ```typescript\n * isKebabCase('hello-world') // => true\n * isKebabCase('helloWorld') // => false\n * ```\n * @internal This function is for internal use by the library\n */\nexport function isKebabCase(str: string): boolean {\n if (typeof str !== 'string') return false;\n\n return (\n KEBAB_LOWER_NUMBERS_HYPHENS_REGEX.test(str) && // only lowercase, numbers and hyphens\n !KEBAB_CONSECUTIVE_HYPHENS_REGEX.test(str) && // no consecutive hyphens\n (str.includes('-') || SINGLE_WORD_REGEX.test(str)) // has hyphen or is single word\n );\n}\n","import formatterMap from '../constants/formatterMap';\nimport transformSingleWord from '../dataTransformers/transformSingleWord';\nimport { TransformOptionsInternal } from '../types/transformOptionTypes';\nimport { prepareStringTransformation } from '../utils/prepareStringTransformation';\n\n/**\n * Transforms a string from one case format to another.\n *\n * @param str - The string to transform\n * @param options - Transformation options\n * @param options.targetCase - The target case format to transform to\n * @param options.sourceCase - Optional source case format. If provided, skips detection\n *\n * @returns The transformed string, or the original string if transformation is not possible\n *\n * @example\n * // With automatic source detection\n * transformCase('hello_world', { targetCase: 'camel' })\n * // => 'helloWorld'\n *\n * // With explicit source case\n * transformCase('HelloWorld', { targetCase: 'snake', sourceCase: 'pascal' })\n * // => 'hello_world'\n *\n * @internal This function is for internal use by the library\n */\nexport default function transformCase(\n str: string,\n options: TransformOptionsInternal,\n): string {\n if (!str) return str;\n\n const { targetCase } = options;\n\n // Prepare the string for transformation\n const { string, shouldTransform, sourceCase, singleWord } =\n prepareStringTransformation(str);\n\n if (!shouldTransform) return string;\n\n // Handle single words with the dedicated formatter\n if (singleWord) {\n return transformSingleWord(string, targetCase);\n }\n\n // If sourceCase is null or already in the target format, return as is\n if (!sourceCase || sourceCase === targetCase) {\n return string;\n }\n\n // Check if the mapping exists for the detected source case\n const sourceMap = formatterMap[sourceCase];\n if (!sourceMap) return string;\n\n const formatter = sourceMap[targetCase];\n if (!formatter) return string;\n\n // Apply the formatter to the string\n return formatter(string);\n}\n","import detectStringCase from './detectStringCase';\nimport { StringCase } from '../types/stringCaseTypes';\n\n/**\n * Internal type used by string preparation utility\n * Not exported as it's an implementation detail\n */\ninterface StringPreparationResult {\n string: string;\n shouldTransform: boolean;\n sourceCase: StringCase | null;\n singleWord: boolean;\n}\n\n/**\n * Prepares a string for case transformation by validating input\n * @param str - The input string to prepare\n * @returns StringPreparationResult object containing the processed parts\n * @throws {Error} If the input is not a string\n * @internal This function is for internal use by the library\n */\nexport function prepareStringTransformation(\n str: string,\n): StringPreparationResult {\n if (typeof str !== 'string') {\n throw new Error('Input must be a string');\n }\n\n // Early return for empty strings\n if (str.length === 0) {\n return {\n string: str,\n shouldTransform: false,\n sourceCase: null,\n singleWord: false,\n };\n }\n\n // Check if the string contains any characters that would make it\n // incompatible with our supported case formats\n if (\n /[^A-Za-z0-9_-]/.test(str) || // Disallow unsupported characters (excluding letters, numbers, underscores, hyphens)\n /^[^A-Za-z]/.test(str) || // Disallow strings starting with anything other than a letter\n /[^A-Za-z0-9]$/.test(str) // Disallow strings ending with non-alphanumeric characters\n ) {\n return {\n string: str,\n shouldTransform: false,\n sourceCase: null,\n singleWord: false,\n };\n }\n\n const sourceCase = detectStringCase(str);\n if (!sourceCase) {\n return {\n string: str,\n shouldTransform: false,\n sourceCase: null,\n singleWord: false,\n };\n }\n\n if (sourceCase === 'single') {\n return {\n string: str,\n shouldTransform: true,\n sourceCase: null,\n singleWord: true,\n };\n }\n\n return {\n string: str,\n shouldTransform: true,\n sourceCase,\n singleWord: false,\n };\n}\n","import { StringCase } from '../types/stringCaseTypes';\n\n/**\n * Transforms a single word to the target case format\n * @param str - The single word to transform\n * @param targetCase - The target case format\n * @returns The transformed string\n */\nexport default function transformSingleWord(\n str: string,\n targetCase: StringCase,\n): string {\n switch (targetCase) {\n case 'pascal':\n return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();\n case 'camel':\n return str.charAt(0).toLowerCase() + str.slice(1);\n case 'snake':\n case 'kebab':\n return str.toLowerCase();\n default:\n return str;\n }\n}\n","import transformCase from '../transform/transformCase';\nimport { TransformOptionsInternal } from '../types/transformOptionTypes';\nimport { TransformMapReturn } from '../types/transformTypes';\n\n/**\n * Transforms string keys in a Map (single level only)\n *\n * @param map - The Map to transform\n * @param options - Transformation options including targetCase (required), optional sourceCase and optional preserveSpecialCharacters\n * @returns A new Map with transformed keys\n *\n * @remarks\n * - Only string keys are transformed; other key types remain unchanged\n * - Values are not transformed, only copied to the new Map\n * - When sourceCase is specified, provides precise type transformations\n * - This function does not transform nested structures\n *\n * @internal This function is for internal use by the library\n */\nexport default function transformMap<K, V, O extends TransformOptionsInternal>(\n map: Map<K, V>,\n options: O,\n): TransformMapReturn<K, V, O> {\n if (!(map instanceof Map)) {\n return map as unknown as TransformMapReturn<K, V, O>;\n }\n\n // Use the explicit Map entries constructor pattern for clarity\n const entries: Array<[unknown, V]> = [];\n\n for (const [key, value] of map.entries()) {\n if (typeof key === 'string') {\n // Transform string keys\n const transformedKey = transformCase(key, options);\n entries.push([transformedKey, value]);\n } else {\n // Keep non-string keys as-is\n entries.push([key, value]);\n }\n }\n\n return new Map(entries) as TransformMapReturn<K, V, O>;\n}\n","import transformCase from '../transform/transformCase';\nimport { TransformOptionsInternal } from '../types/transformOptionTypes';\nimport { TransformObjectReturn } from '../types/transformTypes';\n\n/**\n * Transforms an object's keys to the specified case format (single level only)\n * @param obj - The object to transform\n * @param options - Transformation options including targetCase (required), optional sourceCase and optional preserveSpecialCharacters\n * @returns A new object with transformed keys\n *\n * @remarks\n * - Only string keys will be transformed; numeric keys and Symbol keys remain unchanged\n * - When sourceCase is specified:\n * - TypeScript provides precise property type information\n * - Transformation is more efficient (bypasses runtime detection)\n * - When sourceCase is not specified:\n * - Automatic case detection is used for each key\n * - Return type is Record<string, unknown> for type safety\n * - The preserveSpecialCharacters option retains special characters at the beginning and end of keys\n *\n * @internal This function is for internal use by the library\n */\nexport default function transformObject<\n T extends object,\n O extends TransformOptionsInternal,\n>(obj: T, options: O): TransformObjectReturn<T, O> {\n // Handle non-object inputs\n if (obj === null || typeof obj !== 'object' || Array.isArray(obj)) {\n return obj as unknown as TransformObjectReturn<T, O>;\n }\n\n const { targetCase, sourceCase } = options;\n\n const result: Record<string | number | symbol, unknown> = {};\n\n // Transform normal string/number keys\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n // Handle numeric keys differently\n const isNumericKey = !isNaN(Number(key)) && String(Number(key)) === key;\n const transformedKey = isNumericKey\n ? Number(key)\n : transformCase(key, {\n targetCase,\n sourceCase,\n });\n\n result[transformedKey] = (obj as Record<string, unknown>)[key];\n }\n }\n\n // Handle Symbol keys separately (they won't be caught by for...in)\n if (Object.getOwnPropertySymbols) {\n const symbolKeys = Object.getOwnPropertySymbols(obj);\n for (const sym of symbolKeys) {\n // Use a more type-safe approach for symbol properties\n result[sym] = (obj as Record<symbol, unknown>)[sym];\n }\n }\n\n return result as TransformObjectReturn<T, O>;\n}\n","import transformArray from '../dataTransformers/transformArray';\nimport transformMap from '../dataTransformers/transformMap';\nimport transformObject from '../dataTransformers/transformObject';\nimport { TransformOptionsInternal } from '../types/transformOptionTypes';\n\n/**\n * Recursively transforms data structures (objects, arrays, Maps) by changing their keys/property names\n *\n * @param data - The data to transform (object, array, Map)\n * @param options - Transformation options\n * @param visitedRefs - Used internally to track circular references\n * @param currentDepth - Used internally to track current recursion depth\n * @returns The transformed data\n *\n * @internal This function is for internal use by the library\n */\nexport default function internalTransform(\n data: unknown,\n options: TransformOptionsInternal & { depth?: number },\n visitedRefs: WeakMap<object, unknown> = new WeakMap(),\n currentDepth: number = 0,\n): unknown {\n // Handle primitive values\n if (data === null || data === undefined || typeof data !== 'object') {\n return data;\n }\n\n // Handle circular references\n if (visitedRefs.has(data as object)) {\n return visitedRefs.get(data as object);\n }\n\n // Get max depth (default to 3 if not specified)\n const maxDepth = options.depth ?? 3;\n\n // Stop recursion if maximum depth is reached\n if (currentDepth >= maxDepth) {\n return data;\n }\n\n // Create options for recursive calls\n const recursiveOptions = {\n ...options,\n depth: maxDepth,\n };\n\n let result: unknown;\n\n // Apply the appropriate transformer based on the data type\n if (Array.isArray(data)) {\n // Transform array\n result = transformArray(data, options);\n\n // Add the result to visited references to handle circular refs\n visitedRefs.set(data, result);\n\n // Recursively transform array items that are objects or arrays\n if (currentDepth < maxDepth) {\n result = (result as unknown[]).map((item) =>\n internalTransform(\n item,\n recursiveOptions,\n visitedRefs,\n currentDepth + 1,\n ),\n );\n }\n } else if (data instanceof Map) {\n // Transform Map keys\n result = transformMap(data, options);\n\n // Add the result to visited references to handle circular refs\n visitedRefs.set(data, result);\n\n // Recursively transform Map values that are objects or arrays\n if (currentDepth < maxDepth) {\n const transformedMap = result as Map<unknown, unknown>;\n for (const [key, value] of transformedMap.entries()) {\n if (value !== null && typeof value === 'object') {\n transformedMap.set(\n key,\n internalTransform(\n value,\n recursiveOptions,\n visitedRefs,\n currentDepth + 1,\n ),\n );\n }\n }\n }\n } else if (data instanceof Set) {\n // Don't transform Set values, just create a new Set\n result = new Set(data);\n\n // Add the result to visited references to handle circular refs\n visitedRefs.set(data, result);\n\n // But recursively transform Set items that are objects or arrays\n if (currentDepth < maxDepth) {\n const transformedSet = result as Set<unknown>;\n const originalValues = Array.from(transformedSet);\n transformedSet.clear();\n\n for (const value of originalValues) {\n if (value !== null && typeof value === 'object') {\n transformedSet.add(\n internalTransform(\n value,\n recursiveOptions,\n visitedRefs,\n currentDepth + 1,\n ),\n );\n } else {\n transformedSet.add(value);\n }\n }\n }\n } else {\n // Transform plain object\n result = transformObject(data as Record<string, unknown>, options);\n\n // Add the result to visited references to handle circular refs\n visitedRefs.set(data, result);\n\n // Recursively transform nested objects\n if (currentDepth < maxDepth) {\n const transformedObj = result as Record<string, unknown>;\n for (const key in transformedObj) {\n const value = transformedObj[key];\n if (value !== null && typeof value === 'object') {\n transformedObj[key] = internalTransform(\n value,\n recursiveOptions,\n visitedRefs,\n currentDepth + 1,\n );\n }\n }\n }\n }\n\n return result;\n}\n","import { Expand } from '../types/helperTypes';\nimport { TransformOptionsInternal } from '../types/transformOptionTypes';\nimport { TransformArrayReturn } from '../types/transformTypes';\nimport transformMap from './transformMap';\nimport transformObject from './transformObject';\n\n/**\n * Transforms all objects and Maps within an array (single level only)\n *\n * @param arr - The array to transform\n * @param options - Transformation options including targetCase (required) and optional sourceCase\n * @returns A new array with transformed items\n *\n * @remarks\n * - This function transforms keys in objects and Maps contained in the array\n * - Only transforms at the current level (not recursive)\n * - Non-object values in the array are kept as-is\n * - When sourceCase is specified, provides more precise type information\n *\n * @internal This function is for internal use by the library\n */\nexport default function transformArray<\n T extends unknown[],\n O extends TransformOptionsInternal,\n>(arr: T, options: O): Expand<TransformArrayReturn<T, O>> {\n if (!Array.isArray(arr)) {\n return arr as unknown as Expand<TransformArrayReturn<T, O>>;\n }\n\n return arr.map((item) => {\n // Handle null and undefined\n if (item === null || item === undefined) {\n return item as unknown as Expand<TransformArrayReturn<T, O>[number]>;\n }\n\n // Handle Maps\n if (item instanceof Map) {\n return transformMap(item, options) as unknown as Expand<\n TransformArrayReturn<T, O>[number]\n >;\n }\n\n // Handle plain objects (not arrays or other special objects)\n if (\n typeof item === 'object' &&\n !Array.isArray(item) &&\n !(item instanceof Set)\n ) {\n return transformObject(item, options) as unknown as Expand<\n TransformArrayReturn<T, O>[number]\n >;\n }\n\n // Leave other types unchanged\n return item as unknown as Expand<TransformArrayReturn<T, O>[number]>;\n }) as unknown as Expand<TransformArrayReturn<T, O>>;\n}\n","import internalTransform from './internalTransform';\nimport { StringCase } from '../types/stringCaseTypes';\nimport {\n TransformOptions,\n TransformOptionsInternal,\n} from '../types/transformOptionTypes';\nimport { TransformRecursive } from '../types/transformTypes';\n\n// Overloads with defined source and target cases\nfunction transform<T, From extends StringCase, To extends StringCase>(\n data: T,\n options: TransformOptions & {\n depth?: number;\n sourceCase: From;\n targetCase: To;\n },\n): TransformRecursive<T, From, To>;\n\n// Default case (no options or just targetCase specified)\nfunction transform<T>(\n data: T,\n options?: TransformOptions & { depth?: number },\n): unknown;\n\n// Implementation\nfunction transform<T>(\n data: T,\n options?: TransformOptions & { depth?: number },\n): unknown {\n const internalOptions = {\n ...options,\n targetCase: options?.targetCase || 'camel',\n depth: options?.depth ?? 3,\n } as TransformOptionsInternal & { depth?: number };\n\n return internalTransform(data, internalOptions);\n}\n\nexport default transform;\n"],"names":["formatterMap","snake","camel","str","toLowerCase","replace","_","char","toUpperCase","pascal","match","kebab","s","result","charAt","slice","intermediate","SNAKE_ONLY_REGEX","SNAKE_CONSECUTIVE_UNDERSCORES_REGEX","CAMEL_ONLY_REGEX","PASCAL_CASE_FULL_REGEX","KEBAB_LOWER_NUMBERS_HYPHENS_REGEX","KEBAB_CONSECUTIVE_HYPHENS_REGEX","HAS_UPPER_CASE_REGEX","HAS_LOWER_CASE_REGEX","SINGLE_WORD_REGEX","detectStringCase","includes","length","test","first","rest","detectSingleWord","isSnakeCase","isCamelCase","isPascalCase","isKebabCase","transformCase","options","targetCase","string","shouldTransform","sourceCase","singleWord","Error","prepareStringTransformation","transformSingleWord","sourceMap","formatter","transformMap","map","Map","entries","key","value","transformedKey","push","transformObject","obj","Array","isArray","Object","prototype","hasOwnProperty","call","isNaN","Number","String","getOwnPropertySymbols","symbolKeys","sym","internalTransform","data","visitedRefs","WeakMap","currentDepth","has","get","maxDepth","_a","depth","recursiveOptions","arr","item","Set","transformArray","set","transformedMap","transformedSet","originalValues","from","clear","add","transformedObj","transform","assign"],"mappings":"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"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../src/constants/formatterMap.ts","../src/utils/stringFormatters/snakeToCamelCase.ts","../src/utils/stringFormatters/snakeToPascalCase.ts","../src/utils/stringFormatters/snakeToKebabCase.ts","../src/utils/stringFormatters/camelToSnakeCase.ts","../src/utils/stringFormatters/camelToPascalCase.ts","../src/utils/stringFormatters/camelToKebabCase.ts","../src/utils/stringFormatters/pascalToSnakeCase.ts","../src/utils/stringFormatters/pascalToCamelCase.ts","../src/utils/stringFormatters/pascalToKebabCase.ts","../src/utils/stringFormatters/kebabToSnakeCase.ts","../src/utils/stringFormatters/kebabToCamelCase.ts","../src/utils/stringFormatters/kebabToPascalCase.ts","../src/constants/regex.ts","../src/utils/detectStringCase.ts","../src/utils/detectSingleWord.ts","../src/utils/caseDetectors/isSnakeCase.ts","../src/utils/caseDetectors/isCamelCase.ts","../src/utils/caseDetectors/isPascalCase.ts","../src/utils/caseDetectors/isKebabCase.ts","../src/transform/transformCase.ts","../src/utils/prepareStringTransformation.ts","../src/dataTransformers/transformSingleWord.ts","../src/dataTransformers/transformMap.ts","../src/dataTransformers/transformObject.ts","../src/transform/internalTransform.ts","../src/dataTransformers/transformArray.ts","../src/transform/transform.ts"],"sourcesContent":["import { StringCase } from '../types/stringCaseTypes';\nimport camelToKebabCase from '../utils/stringFormatters/camelToKebabCase';\nimport camelToPascalCase from '../utils/stringFormatters/camelToPascalCase';\nimport camelToSnakeCase from '../utils/stringFormatters/camelToSnakeCase';\nimport kebabToCamelCase from '../utils/stringFormatters/kebabToCamelCase';\nimport kebabToPascalCase from '../utils/stringFormatters/kebabToPascalCase';\nimport kebabToSnakeCase from '../utils/stringFormatters/kebabToSnakeCase';\nimport pascalToCamelCase from '../utils/stringFormatters/pascalToCamelCase';\nimport pascalToKebabCase from '../utils/stringFormatters/pascalToKebabCase';\nimport pascalToSnakeCase from '../utils/stringFormatters/pascalToSnakeCase';\nimport snakeToCamelCase from '../utils/stringFormatters/snakeToCamelCase';\nimport snakeToKebabCase from '../utils/stringFormatters/snakeToKebabCase';\nimport snakeToPascalCase from '../utils/stringFormatters/snakeToPascalCase';\n\n/**\n * A mapping of transformation functions for converting strings between different case formats.\n *\n * Each key of this mapping represents the detected source case (e.g., 'snake', 'camel', 'pascal', 'kebab').\n * The corresponding value is an object that maps target case formats to the appropriate transformation function.\n *\n * Each transformation function accepts a string (`str`) that is to be transformed.\n *\n * For instance:\n * - `formatterMap.snake.camel` converts a snake_case string to camelCase.\n * - If the source and target cases are the same (e.g., `formatterMap.snake.snake`), an identity function is provided.\n *\n * @type {Record<StringCase, Record<StringCase, (str: string) => string>>}\n */\nconst formatterMap: {\n [source in StringCase]: {\n [target in StringCase]: (str: string) => string;\n };\n} = {\n snake: {\n camel: snakeToCamelCase,\n pascal: snakeToPascalCase,\n kebab: snakeToKebabCase,\n snake: (s) => s,\n },\n camel: {\n snake: camelToSnakeCase,\n pascal: camelToPascalCase,\n kebab: camelToKebabCase,\n camel: (s) => s,\n },\n pascal: {\n snake: pascalToSnakeCase,\n camel: pascalToCamelCase,\n kebab: pascalToKebabCase,\n pascal: (s) => s,\n },\n kebab: {\n snake: kebabToSnakeCase,\n camel: kebabToCamelCase,\n pascal: kebabToPascalCase,\n kebab: (s) => s,\n },\n};\n\nexport default formatterMap;\n","/**\n * Converts a snake_case string to camelCase\n * Core transformation function without special character handling\n *\n * @param str - The snake_case string to convert\n * @returns The camelCase transformed string\n *\n * @example\n * ```typescript\n * snakeToCamelCase('hello_world') // => 'helloWorld'\n * ```\n * @internal This function is for internal use by the library\n */\nexport default function snakeToCamelCase(str: string): string {\n return str\n .toLowerCase()\n .replace(/_([a-z0-9])/g, (_, char) => char.toUpperCase());\n}\n","/**\n * Converts a snake_case string to PascalCase\n * Core transformation function without special character handling\n *\n * @param str - The snake_case string to convert\n * @returns The PascalCase transformed string\n *\n * @example\n * ```typescript\n * snakeToPascalCase('hello_world') // => 'HelloWorld'\n * ```\n * @internal This function is for internal use by the library\n */\nexport default function snakeToPascalCase(str: string): string {\n return str\n .toLowerCase()\n .replace(/_+([a-z0-9])/g, (_, char) => char.toUpperCase())\n .replace(/^[a-z]/, (match) => match.toUpperCase());\n}\n","/**\n * Converts a snake_case string to kebab-case\n * Core transformation function without special character handling\n *\n * @param str - The snake_case string to convert\n * @returns The kebab-case transformed string\n *\n * @example\n * ```typescript\n * snakeToKebabCase('hello_world') // => 'hello-world'\n * ```\n * @internal This function is for internal use by the library\n */\nexport default function snakeToKebabCase(str: string): string {\n return str.replace(/_/g, '-');\n}\n","/**\n * Converts a camelCase string to snake_case\n * Core transformation function without special character handling\n *\n * @param str - The camelCase string to convert\n * @returns The snake_case transformed string\n *\n * @example\n * ```typescript\n * camelToSnakeCase('helloWorld') // => 'hello_world'\n * ```\n * @internal This function is for internal use by the library\n */\nexport default function camelToSnakeCase(str: string): string {\n if (!str) return str;\n\n // First, handle the beginning of an acronym\n let result = str.replace(/([a-z0-9])([A-Z])/g, '$1_$2');\n\n // Then handle consecutive uppercase letters\n result = result.replace(/([A-Z])(?=[A-Z])/g, '$1_');\n\n return result.toLowerCase();\n}\n","/**\n * Converts a camelCase string to PascalCase\n * Core transformation function without special character handling\n *\n * @param str - The camelCase string to convert\n * @returns The PascalCase transformed string\n *\n * @example\n * ```typescript\n * camelToPascalCase('helloWorld') // => 'HelloWorld'\n * ```\n * @internal This function is for internal use by the library\n */\nexport default function camelToPascalCase(str: string): string {\n if (!str) return str;\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n","/**\n * Converts a camelCase string to kebab-case\n * Core transformation function without special character handling\n *\n * @param str - The camelCase string to convert\n * @returns The kebab-case transformed string\n *\n * @example\n * ```typescript\n * camelToKebabCase('helloWorld') // => 'hello-world'\n * ```\n * @internal This function is for internal use by the library\n */\nexport default function camelToKebabCase(str: string): string {\n if (!str) return str;\n\n // First, handle the beginning of an acronym\n let result = str.replace(/([a-z0-9])([A-Z])/g, '$1-$2');\n\n // Then handle consecutive uppercase letters\n result = result.replace(/([A-Z])(?=[A-Z])/g, '$1-');\n\n return result.toLowerCase();\n}\n","/**\n * Converts a PascalCase string to snake_case\n * Core transformation function without special character handling\n *\n * @param str - The PascalCase string to convert\n * @returns The snake_case transformed string\n *\n * @example\n * ```typescript\n * pascalToSnakeCase('HelloWorld') // => 'hello_world'\n * pascalToSnakeCase('HTTPResponse') // => 'http_response'\n * ```\n * @internal This function is for internal use by the library\n */\nexport default function pascalToSnakeCase(str: string): string {\n if (!str) return str;\n\n // Step 1: Handle acronym patterns explicitly\n // - Find sequences like \"HTTP\" in \"HTTPResponse\" and convert to \"HTTP_Response\"\n let intermediate = str.replace(/([A-Z]{2,})([A-Z][a-z])/g, '$1_$2');\n\n // Step 2: Handle standard PascalCase pattern\n // - Convert \"HelloWorld\" to \"Hello_World\"\n intermediate = intermediate.replace(/([a-z0-9])([A-Z])/g, '$1_$2');\n\n // Step 3: Convert to lowercase\n return intermediate.toLowerCase();\n}\n","/**\n * Converts a PascalCase string to camelCase\n * Core transformation function without special character handling\n *\n * @param str - The PascalCase string to convert\n * @returns The camelCase transformed string\n *\n * @example\n * ```typescript\n * pascalToCamelCase('HelloWorld') // => 'helloWorld'\n * ```\n * @internal This function is for internal use by the library\n */\nexport default function pascalToCamelCase(str: string): string {\n if (!str) return str;\n return str.charAt(0).toLowerCase() + str.slice(1);\n}\n","/**\n * Converts a PascalCase string to kebab-case\n * Core transformation function without special character handling\n *\n * @param str - The PascalCase string to convert\n * @returns The kebab-case transformed string\n *\n * @example\n * ```typescript\n * pascalToKebabCase('HelloWorld') // => 'hello-world'\n * pascalToKebabCase('HTTPResponse') // => 'http-response'\n * ```\n * @internal This function is for internal use by the library\n */\nexport default function pascalToKebabCase(str: string): string {\n if (!str) return str;\n\n // Step 1: Handle acronym patterns explicitly\n // - Find sequences like \"HTTP\" in \"HTTPResponse\" and convert to \"HTTP-Response\"\n let intermediate = str.replace(/([A-Z]{2,})([A-Z][a-z])/g, '$1-$2');\n\n // Step 2: Handle standard PascalCase pattern\n // - Convert \"HelloWorld\" to \"Hello-World\"\n intermediate = intermediate.replace(/([a-z0-9])([A-Z])/g, '$1-$2');\n\n // Step 3: Convert to lowercase\n return intermediate.toLowerCase();\n}\n","/**\n * Converts a kebab-case string to snake_case\n * Core transformation function without special character handling\n *\n * @param str - The kebab-case string to convert\n * @returns The snake_case transformed string\n *\n * @example\n * ```typescript\n * kebabToSnakeCase('hello-world') // => 'hello_world'\n * ```\n * @internal This function is for internal use by the library\n */\nexport default function kebabToSnakeCase(str: string): string {\n return str.replace(/-/g, '_');\n}\n","/**\n * Converts a kebab-case string to camelCase\n * Core transformation function without special character handling\n *\n * @param str - The kebab-case string to convert\n * @returns The camelCase transformed string\n *\n * @example\n * ```typescript\n * kebabToCamelCase('hello-world') // => 'helloWorld'\n * ```\n * @internal This function is for internal use by the library\n */\nexport default function kebabToCamelCase(str: string): string {\n return str\n .toLowerCase()\n .replace(/-+([a-z0-9])/g, (_, char) => char.toUpperCase());\n}\n","/**\n * Converts a kebab-case string to PascalCase\n * Core transformation function without special character handling\n *\n * @param str - The kebab-case string to convert\n * @returns The PascalCase transformed string\n *\n * @example\n * ```typescript\n * kebabToPascalCase('hello-world') // => 'HelloWorld'\n * ```\n * @internal This function is for internal use by the library\n */\nexport default function kebabToPascalCase(str: string): string {\n return str\n .toLowerCase()\n .replace(/-+([a-z0-9])/g, (_, char) => char.toUpperCase())\n .replace(/^[a-z]/, (match) => match.toUpperCase());\n}\n","export const SNAKE_ONLY_REGEX = /^[a-z0-9_]+$/;\nexport const SNAKE_CONSECUTIVE_UNDERSCORES_REGEX = /__+/;\n\nexport const CAMEL_ONLY_REGEX = /^[a-z][a-zA-Z0-9]*$/;\n\nexport const PASCAL_CASE_FULL_REGEX = /^[A-Z][a-zA-Z0-9]*$/;\n\nexport const KEBAB_LOWER_NUMBERS_HYPHENS_REGEX = /^[a-z0-9-]+$/;\nexport const KEBAB_CONSECUTIVE_HYPHENS_REGEX = /-{2,}/;\n\nexport const HAS_UPPER_CASE_REGEX = /[A-Z]/;\nexport const HAS_LOWER_CASE_REGEX = /[a-z]/;\nexport const SINGLE_WORD_REGEX = /^[a-z0-9]+$/;\n","import { StringCase } from '../types/stringCaseTypes';\nimport isCamelCase from './caseDetectors/isCamelCase';\nimport { isKebabCase } from './caseDetectors/isKebabCase';\nimport isPascalCase from './caseDetectors/isPascalCase';\nimport isSnakeCase from './caseDetectors/isSnakeCase';\nimport detectSingleWord from './detectSingleWord';\n\n/**\n * Detects the case format of a string\n * @param str - The string to analyze\n * @returns The detected case format, 'single' for single words, or null if format cannot be determined\n *\n * @example\n * ```typescript\n * detectStringCase('hello_world') // => 'snake'\n * detectStringCase('helloWorld') // => 'camel'\n * detectStringCase('HelloWorld') // => 'pascal'\n * detectStringCase('hello-world') // => 'kebab'\n * detectStringCase('hello') // => 'single'\n * ```\n * @internal This function is for internal use by the library\n */\nexport default function detectStringCase(\n str: string,\n): StringCase | 'single' | null {\n if (typeof str !== 'string') return null;\n\n if (detectSingleWord(str)) {\n return 'single';\n }\n\n if (isSnakeCase(str)) return 'snake';\n if (isCamelCase(str)) return 'camel';\n if (isPascalCase(str)) return 'pascal';\n if (isKebabCase(str)) return 'kebab';\n\n return null;\n}\n","/**\n * Determines whether the given string qualifies as a single word.\n *\n * A string is considered a \"single word\" if:\n * - It does not contain any delimiters such as underscores (`_`), hyphens (`-`), or spaces.\n * - It contains only alphanumeric characters (letters and digits). Any other character (e.g., punctuation) will cause it to be considered as not a single word.\n * - For strings longer than one character:\n * - If the entire string is lowercase, it's considered a single word.\n * - If the string starts with an uppercase letter and the rest are lowercase, it's considered a single word.\n * - Single-character strings and empty strings are treated as a single word.\n *\n * @param {string} str - The string to check.\n * @returns {boolean} Returns `true` if the input string qualifies as a single word, otherwise returns `false`.\n *\n * @example\n * // Returns true because \"hello\" is a single word (all lowercase).\n * detectSingleWord(\"hello\");\n *\n * @example\n * // Returns true because \"Hello\" is considered a single word (capitalized first letter only).\n * detectSingleWord(\"Hello\");\n *\n * @example\n * // Returns false because \"hello_world\" contains an underscore.\n * detectSingleWord(\"hello_world\");\n *\n * @example\n * // Returns false because \"hello world\" contains a space.\n * detectSingleWord(\"hello world\");\n *\n * @example\n * // Returns false because \"hello@world\" contains a special character.\n * detectSingleWord(\"hello@world\");\n *\n * @internal This function is for internal use by the library\n */\nexport default function detectSingleWord(str: string): boolean {\n // Reject strings containing common delimiters or non-alphanumeric characters.\n if (str.includes('_') || str.includes('-') || str.includes(' ')) return false;\n if (str.length > 0 && !/^[A-Za-z0-9]+$/.test(str)) return false;\n\n // For empty strings or one-character strings, consider them as a single word.\n if (str.length <= 1) return true;\n\n const first = str[0];\n const rest = str.slice(1);\n\n // If the entire string is lowercase, it's a single word.\n if (str === str.toLowerCase()) return true;\n // If the first character is uppercase and the rest are lowercase, it's a single word.\n if (first === first.toUpperCase() && rest === rest.toLowerCase()) return true;\n\n // Otherwise, the string is likely formatted as camelCase or PascalCase (i.e., multi-word).\n return false;\n}\n","import {\n SINGLE_WORD_REGEX,\n SNAKE_CONSECUTIVE_UNDERSCORES_REGEX,\n SNAKE_ONLY_REGEX,\n} from '../../constants/regex';\n\n/**\n * Checks if a string is in snake_case format\n * @param str - The string to check\n * @returns boolean indicating if the string is in snake_case\n *\n * @example\n * ```typescript\n * isSnakeCase('hello_world') // => true\n * isSnakeCase('helloWorld') // => false\n * ```\n *\n * @internal This function is for internal use by the library\n */\nexport default function isSnakeCase(str: string): boolean {\n if (typeof str !== 'string') return false;\n\n return (\n SNAKE_ONLY_REGEX.test(str) && // only lowercase, numbers and underscores\n !SNAKE_CONSECUTIVE_UNDERSCORES_REGEX.test(str) && // no consecutive underscores\n (str.includes('_') || SINGLE_WORD_REGEX.test(str)) // has underscore or is single word\n );\n}\n","import { CAMEL_ONLY_REGEX, HAS_UPPER_CASE_REGEX } from '../../constants/regex';\n\n/**\n * Checks if a string is in camelCase format\n * @param str - The string to check\n * @returns boolean indicating if the string is in camelCase\n *\n * @example\n * ```typescript\n * isCamelCase('helloWorld') // => true\n * isCamelCase('hello_world') // => false\n * ```\n * @internal This function is for internal use by the library\n */\nexport default function isCamelCase(str: string): boolean {\n if (typeof str !== 'string') return false;\n\n return (\n CAMEL_ONLY_REGEX.test(str) && // starts with lowercase, only letters and numbers\n HAS_UPPER_CASE_REGEX.test(str) // contains at least one uppercase letter\n );\n}\n","import {\n HAS_LOWER_CASE_REGEX,\n PASCAL_CASE_FULL_REGEX,\n} from '../../constants/regex';\n\n/**\n * Checks if a string is in PascalCase format\n * @param str - The string to check\n * @returns boolean indicating if the string is in PascalCase\n *\n * @example\n * ```typescript\n * isPascalCase('HelloWorld') // => true\n * isPascalCase('helloWorld') // => false\n * ```\n *\n * @internal This function is for internal use by the library\n */\nexport default function isPascalCase(str: string): boolean {\n if (typeof str !== 'string') return false;\n\n // Must start with uppercase, contain at least one lowercase letter, and only have letters and numbers\n return PASCAL_CASE_FULL_REGEX.test(str) && HAS_LOWER_CASE_REGEX.test(str);\n}\n","import {\n KEBAB_CONSECUTIVE_HYPHENS_REGEX,\n KEBAB_LOWER_NUMBERS_HYPHENS_REGEX,\n SINGLE_WORD_REGEX,\n} from '../../constants/regex';\n\n/**\n * Checks if a string is in kebab-case format\n * @param str - The string to check\n * @returns boolean indicating if the string is in kebab-case\n *\n * @example\n * ```typescript\n * isKebabCase('hello-world') // => true\n * isKebabCase('helloWorld') // => false\n * ```\n * @internal This function is for internal use by the library\n */\nexport function isKebabCase(str: string): boolean {\n if (typeof str !== 'string') return false;\n\n return (\n KEBAB_LOWER_NUMBERS_HYPHENS_REGEX.test(str) && // only lowercase, numbers and hyphens\n !KEBAB_CONSECUTIVE_HYPHENS_REGEX.test(str) && // no consecutive hyphens\n (str.includes('-') || SINGLE_WORD_REGEX.test(str)) // has hyphen or is single word\n );\n}\n","import formatterMap from '../constants/formatterMap';\nimport transformSingleWord from '../dataTransformers/transformSingleWord';\nimport { TransformOptionsInternal } from '../types/transformOptionTypes';\nimport { prepareStringTransformation } from '../utils/prepareStringTransformation';\n\n/**\n * Transforms a string from one case format to another.\n *\n * @param str - The string to transform\n * @param options - Transformation options\n * @param options.targetCase - The target case format to transform to\n * @param options.sourceCase - Optional source case format. If provided, skips detection\n *\n * @returns The transformed string, or the original string if transformation is not possible\n *\n * @example\n * // With automatic source detection\n * transformCase('hello_world', { targetCase: 'camel' })\n * // => 'helloWorld'\n *\n * // With explicit source case\n * transformCase('HelloWorld', { targetCase: 'snake', sourceCase: 'pascal' })\n * // => 'hello_world'\n *\n * @internal This function is for internal use by the library\n */\nexport default function transformCase(\n str: string,\n options: TransformOptionsInternal,\n): string {\n if (!str) return str;\n\n const { targetCase } = options;\n\n // Prepare the string for transformation\n const { string, shouldTransform, sourceCase, singleWord } =\n prepareStringTransformation(str);\n\n if (!shouldTransform) return string;\n\n // Handle single words with the dedicated formatter\n if (singleWord) {\n return transformSingleWord(string, targetCase);\n }\n\n // If sourceCase is null or already in the target format, return as is\n if (!sourceCase || sourceCase === targetCase) {\n return string;\n }\n\n // Check if the mapping exists for the detected source case\n const sourceMap = formatterMap[sourceCase];\n if (!sourceMap) return string;\n\n const formatter = sourceMap[targetCase];\n if (!formatter) return string;\n\n // Apply the formatter to the string\n return formatter(string);\n}\n","import detectStringCase from './detectStringCase';\nimport { StringCase } from '../types/stringCaseTypes';\n\n/**\n * Internal type used by string preparation utility\n * Not exported as it's an implementation detail\n */\ninterface StringPreparationResult {\n string: string;\n shouldTransform: boolean;\n sourceCase: StringCase | null;\n singleWord: boolean;\n}\n\n/**\n * Prepares a string for case transformation by validating input\n * @param str - The input string to prepare\n * @returns StringPreparationResult object containing the processed parts\n * @throws {Error} If the input is not a string\n * @internal This function is for internal use by the library\n */\nexport function prepareStringTransformation(\n str: string,\n): StringPreparationResult {\n if (typeof str !== 'string') {\n throw new Error('Input must be a string');\n }\n\n // Early return for empty strings\n if (str.length === 0) {\n return {\n string: str,\n shouldTransform: false,\n sourceCase: null,\n singleWord: false,\n };\n }\n\n // Check if the string contains any characters that would make it\n // incompatible with our supported case formats\n if (\n /[^A-Za-z0-9_-]/.test(str) || // Disallow unsupported characters (excluding letters, numbers, underscores, hyphens)\n /^[^A-Za-z]/.test(str) || // Disallow strings starting with anything other than a letter\n /[^A-Za-z0-9]$/.test(str) // Disallow strings ending with non-alphanumeric characters\n ) {\n return {\n string: str,\n shouldTransform: false,\n sourceCase: null,\n singleWord: false,\n };\n }\n\n const sourceCase = detectStringCase(str);\n if (!sourceCase) {\n return {\n string: str,\n shouldTransform: false,\n sourceCase: null,\n singleWord: false,\n };\n }\n\n if (sourceCase === 'single') {\n return {\n string: str,\n shouldTransform: true,\n sourceCase: null,\n singleWord: true,\n };\n }\n\n return {\n string: str,\n shouldTransform: true,\n sourceCase,\n singleWord: false,\n };\n}\n","import { StringCase } from '../types/stringCaseTypes';\n\n/**\n * Transforms a single word to the target case format\n * @param str - The single word to transform\n * @param targetCase - The target case format\n * @returns The transformed string\n */\nexport default function transformSingleWord(\n str: string,\n targetCase: StringCase,\n): string {\n switch (targetCase) {\n case 'pascal':\n return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();\n case 'camel':\n return str.charAt(0).toLowerCase() + str.slice(1);\n case 'snake':\n case 'kebab':\n return str.toLowerCase();\n default:\n return str;\n }\n}\n","import transformCase from '../transform/transformCase';\nimport { TransformOptionsInternal } from '../types/transformOptionTypes';\nimport { TransformMapReturn } from '../types/transformTypes';\n\n/**\n * Transforms string keys in a Map (single level only)\n *\n * @param map - The Map to transform\n * @param options - Transformation options including targetCase (required), optional sourceCase and optional preserveSpecialCharacters\n * @returns A new Map with transformed keys\n *\n * @remarks\n * - Only string keys are transformed; other key types remain unchanged\n * - Values are not transformed, only copied to the new Map\n * - When sourceCase is specified, provides precise type transformations\n * - This function does not transform nested structures\n *\n * @internal This function is for internal use by the library\n */\nexport default function transformMap<K, V, O extends TransformOptionsInternal>(\n map: Map<K, V>,\n options: O,\n): TransformMapReturn<K, V, O> {\n if (!(map instanceof Map)) {\n return map as unknown as TransformMapReturn<K, V, O>;\n }\n\n // Use the explicit Map entries constructor pattern for clarity\n const entries: Array<[unknown, V]> = [];\n\n for (const [key, value] of map.entries()) {\n if (typeof key === 'string') {\n // Transform string keys\n const transformedKey = transformCase(key, options);\n entries.push([transformedKey, value]);\n } else {\n // Keep non-string keys as-is\n entries.push([key, value]);\n }\n }\n\n return new Map(entries) as TransformMapReturn<K, V, O>;\n}\n","import transformCase from '../transform/transformCase';\nimport { TransformOptionsInternal } from '../types/transformOptionTypes';\nimport { TransformObjectReturn } from '../types/transformTypes';\n\n/**\n * Transforms an object's keys to the specified case format (single level only)\n * @param obj - The object to transform\n * @param options - Transformation options including targetCase (required), optional sourceCase and optional preserveSpecialCharacters\n * @returns A new object with transformed keys\n *\n * @remarks\n * - Only string keys will be transformed; numeric keys and Symbol keys remain unchanged\n * - When sourceCase is specified:\n * - TypeScript provides precise property type information\n * - Transformation is more efficient (bypasses runtime detection)\n * - When sourceCase is not specified:\n * - Automatic case detection is used for each key\n * - Return type is Record<string, unknown> for type safety\n * - The preserveSpecialCharacters option retains special characters at the beginning and end of keys\n *\n * @internal This function is for internal use by the library\n */\nexport default function transformObject<\n T extends object,\n O extends TransformOptionsInternal,\n>(obj: T, options: O): TransformObjectReturn<T, O> {\n // Handle non-object inputs\n if (obj === null || typeof obj !== 'object' || Array.isArray(obj)) {\n return obj as unknown as TransformObjectReturn<T, O>;\n }\n\n const { targetCase, sourceCase } = options;\n\n const result: Record<string | number | symbol, unknown> = {};\n\n // Transform normal string/number keys\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n // Handle numeric keys differently\n const isNumericKey = !isNaN(Number(key)) && String(Number(key)) === key;\n const transformedKey = isNumericKey\n ? Number(key)\n : transformCase(key, {\n targetCase,\n sourceCase,\n });\n\n result[transformedKey] = (obj as Record<string, unknown>)[key];\n }\n }\n\n // Handle Symbol keys separately (they won't be caught by for...in)\n if (Object.getOwnPropertySymbols) {\n const symbolKeys = Object.getOwnPropertySymbols(obj);\n for (const sym of symbolKeys) {\n // Use a more type-safe approach for symbol properties\n result[sym] = (obj as Record<symbol, unknown>)[sym];\n }\n }\n\n return result as TransformObjectReturn<T, O>;\n}\n","import transformArray from '../dataTransformers/transformArray';\nimport transformMap from '../dataTransformers/transformMap';\nimport transformObject from '../dataTransformers/transformObject';\nimport { TransformOptionsInternal } from '../types/transformOptionTypes';\n\n/**\n * Recursively transforms data structures (objects, arrays, Maps) by changing their keys/property names\n *\n * @param data - The data to transform (object, array, Map)\n * @param options - Transformation options\n * @param visitedRefs - Used internally to track circular references\n * @param currentDepth - Used internally to track current recursion depth\n * @returns The transformed data\n *\n * @internal This function is for internal use by the library\n */\nexport default function internalTransform(\n data: unknown,\n options: TransformOptionsInternal & { depth?: number },\n visitedRefs: WeakMap<object, unknown> = new WeakMap(),\n currentDepth: number = 0,\n): unknown {\n // Handle primitive values\n if (data === null || data === undefined || typeof data !== 'object') {\n return data;\n }\n\n // Handle circular references\n if (visitedRefs.has(data as object)) {\n return visitedRefs.get(data as object);\n }\n\n // Get max depth (default to 3 if not specified)\n const maxDepth = options.depth ?? 3;\n\n // Stop recursion if maximum depth is reached\n if (currentDepth >= maxDepth) {\n return data;\n }\n\n // Create options for recursive calls\n const recursiveOptions = {\n ...options,\n depth: maxDepth,\n };\n\n let result: unknown;\n\n // Apply the appropriate transformer based on the data type\n if (Array.isArray(data)) {\n // Transform array\n result = transformArray(data, options);\n\n // Add the result to visited references to handle circular refs\n visitedRefs.set(data, result);\n\n // Recursively transform array items that are objects or arrays\n if (currentDepth < maxDepth) {\n result = (result as unknown[]).map((item) =>\n internalTransform(\n item,\n recursiveOptions,\n visitedRefs,\n currentDepth + 1,\n ),\n );\n }\n } else if (data instanceof Map) {\n // Transform Map keys\n result = transformMap(data, options);\n\n // Add the result to visited references to handle circular refs\n visitedRefs.set(data, result);\n\n // Recursively transform Map values that are objects or arrays\n if (currentDepth < maxDepth) {\n const transformedMap = result as Map<unknown, unknown>;\n for (const [key, value] of transformedMap.entries()) {\n if (value !== null && typeof value === 'object') {\n transformedMap.set(\n key,\n internalTransform(\n value,\n recursiveOptions,\n visitedRefs,\n currentDepth + 1,\n ),\n );\n }\n }\n }\n } else if (data instanceof Set) {\n // Don't transform Set values, just create a new Set\n result = new Set(data);\n\n // Add the result to visited references to handle circular refs\n visitedRefs.set(data, result);\n\n // But recursively transform Set items that are objects or arrays\n if (currentDepth < maxDepth) {\n const transformedSet = result as Set<unknown>;\n const originalValues = Array.from(transformedSet);\n transformedSet.clear();\n\n for (const value of originalValues) {\n if (value !== null && typeof value === 'object') {\n transformedSet.add(\n internalTransform(\n value,\n recursiveOptions,\n visitedRefs,\n currentDepth + 1,\n ),\n );\n } else {\n transformedSet.add(value);\n }\n }\n }\n } else {\n // Transform plain object\n result = transformObject(data as Record<string, unknown>, options);\n\n // Add the result to visited references to handle circular refs\n visitedRefs.set(data, result);\n\n // Recursively transform nested objects\n if (currentDepth < maxDepth) {\n const transformedObj = result as Record<string, unknown>;\n for (const key in transformedObj) {\n const value = transformedObj[key];\n if (value !== null && typeof value === 'object') {\n transformedObj[key] = internalTransform(\n value,\n recursiveOptions,\n visitedRefs,\n currentDepth + 1,\n );\n }\n }\n }\n }\n\n return result;\n}\n","import { Expand } from '../types/helperTypes';\nimport { TransformOptionsInternal } from '../types/transformOptionTypes';\nimport { TransformArrayReturn } from '../types/transformTypes';\nimport transformMap from './transformMap';\nimport transformObject from './transformObject';\n\n/**\n * Transforms all objects and Maps within an array (single level only)\n *\n * @param arr - The array to transform\n * @param options - Transformation options including targetCase (required) and optional sourceCase\n * @returns A new array with transformed items\n *\n * @remarks\n * - This function transforms keys in objects and Maps contained in the array\n * - Only transforms at the current level (not recursive)\n * - Non-object values in the array are kept as-is\n * - When sourceCase is specified, provides more precise type information\n *\n * @internal This function is for internal use by the library\n */\nexport default function transformArray<\n T extends unknown[],\n O extends TransformOptionsInternal,\n>(arr: T, options: O): Expand<TransformArrayReturn<T, O>> {\n if (!Array.isArray(arr)) {\n return arr as unknown as Expand<TransformArrayReturn<T, O>>;\n }\n\n return arr.map((item) => {\n // Handle null and undefined\n if (item === null || item === undefined) {\n return item as unknown as Expand<TransformArrayReturn<T, O>[number]>;\n }\n\n // Handle Maps\n if (item instanceof Map) {\n return transformMap(item, options) as unknown as Expand<\n TransformArrayReturn<T, O>[number]\n >;\n }\n\n // Handle plain objects (not arrays or other special objects)\n if (\n typeof item === 'object' &&\n !Array.isArray(item) &&\n !(item instanceof Set)\n ) {\n return transformObject(item, options) as unknown as Expand<\n TransformArrayReturn<T, O>[number]\n >;\n }\n\n // Leave other types unchanged\n return item as unknown as Expand<TransformArrayReturn<T, O>[number]>;\n }) as unknown as Expand<TransformArrayReturn<T, O>>;\n}\n","import internalTransform from './internalTransform';\nimport { StringCase } from '../types/stringCaseTypes';\nimport {\n TransformOptions,\n TransformOptionsInternal,\n} from '../types/transformOptionTypes';\nimport { TransformRecursive } from '../types/transformTypes';\n\n// Overloads with defined source and target cases\nfunction transform<T, From extends StringCase, To extends StringCase>(\n data: T,\n options: TransformOptions & {\n depth?: number;\n sourceCase: From;\n targetCase: To;\n },\n): TransformRecursive<T, From, To>;\n\n// Default case (no options or just targetCase specified)\nfunction transform<T>(\n data: T,\n options?: TransformOptions & { depth?: number },\n): unknown;\n\n// Implementation\nfunction transform<T>(\n data: T,\n options?: TransformOptions & { depth?: number },\n): unknown {\n const internalOptions = {\n ...options,\n targetCase: options?.targetCase || 'camel',\n depth: options?.depth ?? 3,\n } as TransformOptionsInternal & { depth?: number };\n\n return internalTransform(data, internalOptions);\n}\n\nexport default transform;\n"],"names":["formatterMap","snake","camel","str","toLowerCase","replace","_","char","toUpperCase","pascal","match","kebab","s","result","charAt","slice","intermediate","SNAKE_ONLY_REGEX","SNAKE_CONSECUTIVE_UNDERSCORES_REGEX","CAMEL_ONLY_REGEX","PASCAL_CASE_FULL_REGEX","KEBAB_LOWER_NUMBERS_HYPHENS_REGEX","KEBAB_CONSECUTIVE_HYPHENS_REGEX","HAS_UPPER_CASE_REGEX","HAS_LOWER_CASE_REGEX","SINGLE_WORD_REGEX","detectStringCase","includes","length","test","first","rest","detectSingleWord","isSnakeCase","isCamelCase","isPascalCase","isKebabCase","transformCase","options","targetCase","string","shouldTransform","sourceCase","singleWord","Error","prepareStringTransformation","transformSingleWord","sourceMap","formatter","transformMap","map","Map","entries","key","value","transformedKey","push","transformObject","obj","Array","isArray","Object","prototype","hasOwnProperty","call","isNaN","Number","String","getOwnPropertySymbols","symbolKeys","sym","internalTransform","data","visitedRefs","WeakMap","currentDepth","has","get","maxDepth","_a","depth","recursiveOptions","arr","item","Set","transformArray","set","transformedMap","transformedSet","originalValues","from","clear","add","transformedObj","assign"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=index.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"internalTransform.d.ts","sourceRoot":"","sources":["../../src/transform/internalTransform.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE;;;;;;;;;;GAUG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CACvC,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,wBAAwB,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EACtD,WAAW,GAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAiB,EACrD,YAAY,GAAE,MAAU,GACvB,OAAO,CA2HT"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=internalTransform.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"internalTransform.test.d.ts","sourceRoot":"","sources":["../../src/transform/internalTransform.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../src/transform/transform.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EACL,gBAAgB,EAEjB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,iBAAS,SAAS,CAAC,CAAC,EAAE,IAAI,SAAS,UAAU,EAAE,EAAE,SAAS,UAAU,EAClE,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,gBAAgB,GAAG;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,EAAE,CAAC;CAChB,GACA,kBAAkB,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AAGnC,iBAAS,SAAS,CAAC,CAAC,EAClB,IAAI,EAAE,CAAC,EACP,OAAO,CAAC,EAAE,gBAAgB,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9C,OAAO,CAAC;AAgBX,eAAe,SAAS,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=transform.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transform.test.d.ts","sourceRoot":"","sources":["../../src/transform/transform.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"transformCase.d.ts","sourceRoot":"","sources":["../../src/transform/transformCase.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAGzE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CACnC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,wBAAwB,GAChC,MAAM,CA8BR"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=transformCase.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transformCase.test.d.ts","sourceRoot":"","sources":["../../src/transform/transformCase.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"helperTypes.d.ts","sourceRoot":"","sources":["../../src/types/helperTypes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,KAAK,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"stringCaseTypes.d.ts","sourceRoot":"","sources":["../../src/types/stringCaseTypes.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"transformOptionTypes.d.ts","sourceRoot":"","sources":["../../src/types/transformOptionTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG,QAAQ,CAC7C,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,CACrC,GACC,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"transformTypes.d.ts","sourceRoot":"","sources":["../../src/types/transformTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D;;;GAGG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,IACvC,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,GACvC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,GACvC,CAAC,CAAC;AAER;;;GAGG;AACH,KAAK,kBAAkB,CAAC,KAAK,SAAS,MAAM,EAAE,IAAI,KAAK,SAAS;IAC9D,MAAM,KAAK,SAAS,MAAM;IAC1B,GAAG,MAAM,IAAI,SAAS,MAAM,EAAE;CAC/B,GACG,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,EAAE,GACjD,EAAE,CAAC;AAEP,KAAK,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,CAAC,EAAE,GACnE,CAAC,CAAC,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,GACvB,CAAC,CAAC,CAAC,CAAC;AAER,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,CAAC,EAAE,GAC3E,kBAAkB,CAAC,CAAC,CAAC,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAC3C,UAAU,CAAC,CAAC,CAAC,CAAC;AAElB;;;GAGG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,CAAC,EAAE,GAC1E,GAAG,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,GACzB,CAAC,CAAC;AAEN;;;GAGG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,GACzE,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,GACpB,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,GACpC,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,GAC1B,CAAC,CAAC;AAEN;;;GAGG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AAE5D;;;GAGG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,GACzE,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,GACpB,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,GACpC,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,GAC1B,CAAC,CAAC;AAEN;;;GAGG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,GAC1E,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,GACrB,CAAC,CAAC;AAEN;;;GAGG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,GAC1E,CAAC,SAAS,EAAE,GACV,SAAS,CAAC,CAAC,CAAC,GACZ,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,EAAE,GAC3C,CAAC,CAAC;AAEN,KAAK,kBAAkB,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,GACxE,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,GACpB,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,EAAE,GAC1C,GAAG,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,EAAE,GAChC,CAAC,CAAC;AAEN;;;GAGG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,GAC1E,CAAC,SAAS,EAAE,GACV,SAAS,CAAC,CAAC,CAAC,GACZ,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,EAAE,GAC3C,CAAC,CAAC;AAEN,KAAK,kBAAkB,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,GACxE,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,GACpB,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,EAAE,GAC1C,GAAG,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,EAAE,GAChC,CAAC,CAAC;AAEN;;;GAGG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,IACvC,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,GACvC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,GACvC,CAAC,CAAC;AAER;;;GAGG;AACH,KAAK,kBAAkB,CAAC,KAAK,SAAS,MAAM,EAAE,IAAI,KAAK,SAAS;IAC9D,MAAM,KAAK,SAAS,MAAM;IAC1B,GAAG,MAAM,IAAI,SAAS,MAAM,EAAE;CAC/B,GACG,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,EAAE,GACjD,EAAE,CAAC;AAEP,KAAK,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,CAAC,EAAE,GACnE,CAAC,CAAC,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,GACvB,CAAC,CAAC,CAAC,CAAC;AAER;;;GAGG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,CAAC,EAAE,GAC3E,kBAAkB,CAAC,CAAC,CAAC,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAC3C,UAAU,CAAC,CAAC,CAAC,CAAC;AAElB;;;GAGG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,CAAC,EAAE,GAC1E,GAAG,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,GACzB,CAAC,CAAC;AAwBN;;;;GAIG;AACH,KAAK,mBAAmB,GACpB,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,IAAI,GACJ,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,CAAC;AAER,KAAK,iBAAiB,GAClB,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,IAAI,GACJ,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,MAAM,EAAE,CAAC;AAEhB,KAAK,YAAY,CAAC,CAAC,SAAS,MAAM,IAEhC,CAAC,SAAS,GAAG,MAAM,KAAK,GAAG,MAAM,EAAE,GAC/B,KAAK,SAAS,mBAAmB,GAC/B,IAAI,GACJ,CAAC,SAAS,GAAG,MAAM,GAAG,MAAM,IAAI,EAAE,GAChC,IAAI,SAAS,iBAAiB,GAC5B,IAAI,GACJ,CAAC,SAAS,GAAG,MAAM,KAAK,MAAM,EAAE,GAAG,GAAG,MAAM,KAAK,MAAM,EAAE,GACvD,IAAI,GACJ,KAAK,GACT,KAAK,GACT,KAAK,CAAC;AAEZ;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,gBAAgB,IACnE,YAAY,CAAC,CAAC,CAAC,SAAS,IAAI,GACxB,CAAC,GACD,SAAS,SAAS,CAAC,CAAC,YAAY,CAAC,GAC/B,MAAM,GACN,CAAC,CAAC,YAAY,CAAC,SAAS,OAAO,GAC7B,SAAS,SAAS,CAAC,CAAC,YAAY,CAAC,GAC/B,YAAY,CAAC,CAAC,CAAC,GACf,CAAC,CAAC,YAAY,CAAC,SAAS,OAAO,GAC7B,YAAY,CAAC,CAAC,CAAC,GACf,CAAC,CAAC,YAAY,CAAC,SAAS,QAAQ,GAC9B,aAAa,CAAC,CAAC,CAAC,GAChB,CAAC,CAAC,YAAY,CAAC,SAAS,OAAO,GAC7B,YAAY,CAAC,CAAC,CAAC,GACf,CAAC,GACT,CAAC,CAAC,YAAY,CAAC,SAAS,OAAO,GAC7B,SAAS,SAAS,CAAC,CAAC,YAAY,CAAC,GAC/B,CAAC,GACD,CAAC,CAAC,YAAY,CAAC,SAAS,OAAO,GAC7B,YAAY,CAAC,CAAC,CAAC,GACf,CAAC,CAAC,YAAY,CAAC,SAAS,QAAQ,GAC9B,aAAa,CAAC,CAAC,CAAC,GAChB,CAAC,CAAC,YAAY,CAAC,SAAS,OAAO,GAC7B,YAAY,CAAC,CAAC,CAAC,GACf,CAAC,GACT,CAAC,CAAC,YAAY,CAAC,SAAS,QAAQ,GAC9B,SAAS,SAAS,CAAC,CAAC,YAAY,CAAC,GAC/B,aAAa,CAAC,CAAC,CAAC,GAChB,CAAC,CAAC,YAAY,CAAC,SAAS,OAAO,GAC7B,aAAa,CAAC,CAAC,CAAC,GAChB,CAAC,CAAC,YAAY,CAAC,SAAS,OAAO,GAC7B,aAAa,CAAC,CAAC,CAAC,GAChB,CAAC,CAAC,YAAY,CAAC,SAAS,OAAO,GAC7B,aAAa,CAAC,CAAC,CAAC,GAChB,CAAC,GACT,CAAC,CAAC,YAAY,CAAC,SAAS,OAAO,GAC7B,SAAS,SAAS,CAAC,CAAC,YAAY,CAAC,GAC/B,YAAY,CAAC,CAAC,CAAC,GACf,CAAC,CAAC,YAAY,CAAC,SAAS,OAAO,GAC7B,YAAY,CAAC,CAAC,CAAC,GACf,CAAC,CAAC,YAAY,CAAC,SAAS,QAAQ,GAC9B,aAAa,CAAC,CAAC,CAAC,GAChB,CAAC,CAAC,YAAY,CAAC,SAAS,OAAO,GAC7B,YAAY,CAAC,CAAC,CAAC,GACf,CAAC,GACT,CAAC,CAAC;AAElB;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAC7B,CAAC,EACD,CAAC,SAAS,gBAAgB,GAAG;IAAE,UAAU,EAAE,OAAO,CAAA;CAAE,IAClD;KACD,CAAC,IAAI,MAAM,CAAC,IAAI,YAAY,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACpD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,qBAAqB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS;IAAE,UAAU,EAAE,UAAU,CAAA;CAAE,GAC1E,MAAM,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GACjC,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,CAAC;AAE9C;;GAEG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS;IAAE,UAAU,EAAE,UAAU,CAAA;CAAE,GAC1E,GAAG,CAAC,CAAC,SAAS,MAAM,GAAG,YAAY,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAC1D,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAExC;;;GAGG;AAGH,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,mBAAmB,CACrD,CAAC,EACD;IAAE,UAAU,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CAC7C,CAAC;AACF,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,mBAAmB,CACtD,CAAC,EACD;IAAE,UAAU,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,QAAQ,CAAA;CAAE,CAC9C,CAAC;AACF,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,mBAAmB,CACrD,CAAC,EACD;IAAE,UAAU,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CAC7C,CAAC;AAGF,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,mBAAmB,CACrD,CAAC,EACD;IAAE,UAAU,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CAC7C,CAAC;AACF,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,mBAAmB,CACtD,CAAC,EACD;IAAE,UAAU,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,QAAQ,CAAA;CAAE,CAC9C,CAAC;AACF,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,mBAAmB,CACrD,CAAC,EACD;IAAE,UAAU,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CAC7C,CAAC;AAGF,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,mBAAmB,CACtD,CAAC,EACD;IAAE,UAAU,EAAE,QAAQ,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CAC9C,CAAC;AACF,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,mBAAmB,CACtD,CAAC,EACD;IAAE,UAAU,EAAE,QAAQ,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CAC9C,CAAC;AACF,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,mBAAmB,CACtD,CAAC,EACD;IAAE,UAAU,EAAE,QAAQ,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CAC9C,CAAC;AAGF,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,mBAAmB,CACrD,CAAC,EACD;IAAE,UAAU,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CAC7C,CAAC;AACF,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,mBAAmB,CACtD,CAAC,EACD;IAAE,UAAU,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,QAAQ,CAAA;CAAE,CAC9C,CAAC;AACF,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,mBAAmB,CACrD,CAAC,EACD;IAAE,UAAU,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CAC7C,CAAC;AAEF;;GAEG;AAEH,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;AAGhE,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;AAGhE,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;AAGlE,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,eAAe,CACzB,CAAC,EACD,IAAI,SAAS,UAAU,EACvB,EAAE,SAAS,UAAU,IACnB,mBAAmB,CAAC,CAAC,EAAE;IAAE,UAAU,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,EAAE,CAAA;CAAE,CAAC,CAAC;AAEjE;;GAEG;AACH,MAAM,MAAM,cAAc,CACxB,CAAC,EACD,IAAI,SAAS,UAAU,EACvB,EAAE,SAAS,UAAU,IACnB,KAAK,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AAExC;;GAEG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS;IACnE,UAAU,EAAE,UAAU,CAAC;CACxB,GACG;KACG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAC/B,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAC5B,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,GAClC,GAAG,CAAC,EAAE,SAAS,MAAM,GAAG,MAAM,GAAG,EAAE,EAAE,EAAE,CAAC,GACxC,CAAC,CAAC,CAAC,CAAC;CACX,GACD,OAAO,EAAE,CAAC;AAEd;;;GAGG;AAGH,MAAM,MAAM,qBAAqB,CAAC,CAAC,IACjC,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACpB,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,GAC/B,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAC7B,GAAG,CAAC,CAAC,SAAS,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,GACrE,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC,GACpB,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,GAC7B,CAAC,SAAS,MAAM,GACd;KACG,CAAC,IAAI,MAAM,CAAC,IAAI,YAAY,CAC3B,CAAC,GAAG,MAAM,EACV;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAC7C,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAChC,GACD,CAAC,CAAC;AAEd,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAClC,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACpB,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,GAChC,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAC7B,GAAG,CAAC,CAAC,SAAS,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC,GACvE,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC,GACpB,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,GAC9B,CAAC,SAAS,MAAM,GACd;KACG,CAAC,IAAI,MAAM,CAAC,IAAI,YAAY,CAC3B,CAAC,GAAG,MAAM,EACV;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,QAAQ,CAAA;KAAE,CAC9C,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACjC,GACD,CAAC,CAAC;AAEd,MAAM,MAAM,qBAAqB,CAAC,CAAC,IACjC,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACpB,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,GAC/B,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAC7B,GAAG,CAAC,CAAC,SAAS,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,GACrE,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC,GACpB,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,GAC7B,CAAC,SAAS,MAAM,GACd;KACG,CAAC,IAAI,MAAM,CAAC,IAAI,YAAY,CAC3B,CAAC,GAAG,MAAM,EACV;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAC7C,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAChC,GACD,CAAC,CAAC;AAGd,MAAM,MAAM,qBAAqB,CAAC,CAAC,IACjC,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACpB,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,GAC/B,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAC7B,GAAG,CAAC,CAAC,SAAS,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,GACrE,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC,GACpB,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,GAC7B,CAAC,SAAS,MAAM,GACd;KACG,CAAC,IAAI,MAAM,CAAC,IAAI,YAAY,CAC3B,CAAC,GAAG,MAAM,EACV;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAC7C,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAChC,GACD,CAAC,CAAC;AAEd,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAClC,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACpB,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,GAChC,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAC7B,GAAG,CAAC,CAAC,SAAS,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC,GACvE,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC,GACpB,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,GAC9B,CAAC,SAAS,MAAM,GACd;KACG,CAAC,IAAI,MAAM,CAAC,IAAI,YAAY,CAC3B,CAAC,GAAG,MAAM,EACV;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,QAAQ,CAAA;KAAE,CAC9C,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACjC,GACD,CAAC,CAAC;AAEd,MAAM,MAAM,qBAAqB,CAAC,CAAC,IACjC,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACpB,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,GAC/B,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAC7B,GAAG,CAAC,CAAC,SAAS,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,GACrE,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC,GACpB,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,GAC7B,CAAC,SAAS,MAAM,GACd;KACG,CAAC,IAAI,MAAM,CAAC,IAAI,YAAY,CAC3B,CAAC,GAAG,MAAM,EACV;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAC7C,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAChC,GACD,CAAC,CAAC;AAGd,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAClC,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACpB,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,GAChC,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAC7B,GAAG,CAAC,CAAC,SAAS,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC,GACvE,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC,GACpB,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,GAC9B,CAAC,SAAS,MAAM,GACd;KACG,CAAC,IAAI,MAAM,CAAC,IAAI,YAAY,CAC3B,CAAC,GAAG,MAAM,EACV;QAAE,UAAU,EAAE,QAAQ,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAC9C,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACjC,GACD,CAAC,CAAC;AAEd,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAClC,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACpB,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,GAChC,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAC7B,GAAG,CAAC,CAAC,SAAS,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC,GACvE,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC,GACpB,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,GAC9B,CAAC,SAAS,MAAM,GACd;KACG,CAAC,IAAI,MAAM,CAAC,IAAI,YAAY,CAC3B,CAAC,GAAG,MAAM,EACV;QAAE,UAAU,EAAE,QAAQ,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAC9C,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACjC,GACD,CAAC,CAAC;AAEd,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAClC,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACpB,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,GAChC,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAC7B,GAAG,CAAC,CAAC,SAAS,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC,GACvE,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC,GACpB,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,GAC9B,CAAC,SAAS,MAAM,GACd;KACG,CAAC,IAAI,MAAM,CAAC,IAAI,YAAY,CAC3B,CAAC,GAAG,MAAM,EACV;QAAE,UAAU,EAAE,QAAQ,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAC9C,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACjC,GACD,CAAC,CAAC;AAGd,MAAM,MAAM,qBAAqB,CAAC,CAAC,IACjC,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACpB,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,GAC/B,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAC7B,GAAG,CAAC,CAAC,SAAS,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,GACrE,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC,GACpB,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,GAC7B,CAAC,SAAS,MAAM,GACd;KACG,CAAC,IAAI,MAAM,CAAC,IAAI,YAAY,CAC3B,CAAC,GAAG,MAAM,EACV;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAC7C,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAChC,GACD,CAAC,CAAC;AAEd,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAClC,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACpB,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,GAChC,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAC7B,GAAG,CAAC,CAAC,SAAS,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC,GACvE,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC,GACpB,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,GAC9B,CAAC,SAAS,MAAM,GACd;KACG,CAAC,IAAI,MAAM,CAAC,IAAI,YAAY,CAC3B,CAAC,GAAG,MAAM,EACV;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,QAAQ,CAAA;KAAE,CAC9C,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACjC,GACD,CAAC,CAAC;AAEd,MAAM,MAAM,qBAAqB,CAAC,CAAC,IACjC,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACpB,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,GAC/B,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAC7B,GAAG,CAAC,CAAC,SAAS,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,GACrE,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC,GACpB,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,GAC7B,CAAC,SAAS,MAAM,GACd;KACG,CAAC,IAAI,MAAM,CAAC,IAAI,YAAY,CAC3B,CAAC,GAAG,MAAM,EACV;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAC7C,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAChC,GACD,CAAC,CAAC;AAEd;;;GAGG;AACH,MAAM,MAAM,kBAAkB,CAC5B,CAAC,EACD,QAAQ,SAAS,UAAU,EAC3B,MAAM,SAAS,UAAU,IACvB,QAAQ,SAAS,OAAO,GACxB,MAAM,SAAS,OAAO,GACpB,qBAAqB,CAAC,CAAC,CAAC,GACxB,MAAM,SAAS,QAAQ,GACrB,sBAAsB,CAAC,CAAC,CAAC,GACzB,MAAM,SAAS,OAAO,GACpB,qBAAqB,CAAC,CAAC,CAAC,GACxB,CAAC,GACP,QAAQ,SAAS,OAAO,GACtB,MAAM,SAAS,OAAO,GACpB,qBAAqB,CAAC,CAAC,CAAC,GACxB,MAAM,SAAS,QAAQ,GACrB,sBAAsB,CAAC,CAAC,CAAC,GACzB,MAAM,SAAS,OAAO,GACpB,qBAAqB,CAAC,CAAC,CAAC,GACxB,CAAC,GACP,QAAQ,SAAS,QAAQ,GACvB,MAAM,SAAS,OAAO,GACpB,sBAAsB,CAAC,CAAC,CAAC,GACzB,MAAM,SAAS,OAAO,GACpB,sBAAsB,CAAC,CAAC,CAAC,GACzB,MAAM,SAAS,OAAO,GACpB,sBAAsB,CAAC,CAAC,CAAC,GACzB,CAAC,GACP,QAAQ,SAAS,OAAO,GACtB,MAAM,SAAS,OAAO,GACpB,qBAAqB,CAAC,CAAC,CAAC,GACxB,MAAM,SAAS,OAAO,GACpB,qBAAqB,CAAC,CAAC,CAAC,GACxB,MAAM,SAAS,QAAQ,GACrB,sBAAsB,CAAC,CAAC,CAAC,GACzB,CAAC,GACP,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"isCamelCase.d.ts","sourceRoot":"","sources":["../../../src/utils/caseDetectors/isCamelCase.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOxD"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=isCamelCase.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isCamelCase.test.d.ts","sourceRoot":"","sources":["../../../src/utils/caseDetectors/isCamelCase.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"isKebabCase.d.ts","sourceRoot":"","sources":["../../../src/utils/caseDetectors/isKebabCase.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAQhD"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=isKebabCase.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isKebabCase.test.d.ts","sourceRoot":"","sources":["../../../src/utils/caseDetectors/isKebabCase.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"isPascalCase.d.ts","sourceRoot":"","sources":["../../../src/utils/caseDetectors/isPascalCase.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAKzD"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=isPascalCase.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isPascalCase.test.d.ts","sourceRoot":"","sources":["../../../src/utils/caseDetectors/isPascalCase.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"isSnakeCase.d.ts","sourceRoot":"","sources":["../../../src/utils/caseDetectors/isSnakeCase.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAQxD"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=isSnakeCase.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isSnakeCase.test.d.ts","sourceRoot":"","sources":["../../../src/utils/caseDetectors/isSnakeCase.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"detectSingleWord.d.ts","sourceRoot":"","sources":["../../src/utils/detectSingleWord.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAkB7D"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=detectSingleWord.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"detectSingleWord.test.d.ts","sourceRoot":"","sources":["../../src/utils/detectSingleWord.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"detectStringCase.d.ts","sourceRoot":"","sources":["../../src/utils/detectStringCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAOtD;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CACtC,GAAG,EAAE,MAAM,GACV,UAAU,GAAG,QAAQ,GAAG,IAAI,CAa9B"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=detectStringCase.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"detectStringCase.test.d.ts","sourceRoot":"","sources":["../../src/utils/detectStringCase.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"prepareStringTransformation.d.ts","sourceRoot":"","sources":["../../src/utils/prepareStringTransformation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD;;;GAGG;AACH,UAAU,uBAAuB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,MAAM,GACV,uBAAuB,CAuDzB"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=prepareStringTransformation.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prepareStringTransformation.test.d.ts","sourceRoot":"","sources":["../../src/utils/prepareStringTransformation.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"camelToKebabCase.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/camelToKebabCase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAU5D"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=camelToKebabCase.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"camelToKebabCase.test.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/camelToKebabCase.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"camelToPascalCase.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/camelToPascalCase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG7D"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=camelToPascalCase.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"camelToPascalCase.test.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/camelToPascalCase.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"camelToSnakeCase.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/camelToSnakeCase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAU5D"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=camelToSnakeCase.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"camelToSnakeCase.test.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/camelToSnakeCase.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"kebabToCamelCase.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/kebabToCamelCase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI5D"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=kebabToCamelCase.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"kebabToCamelCase.test.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/kebabToCamelCase.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"kebabToPascalCase.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/kebabToPascalCase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK7D"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=kebabToPascalCase.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"kebabToPascalCase.test.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/kebabToPascalCase.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"kebabToSnakeCase.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/kebabToSnakeCase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE5D"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=kebabToSnakeCase.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"kebabToSnakeCase.test.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/kebabToSnakeCase.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"pascalToCamelCase.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/pascalToCamelCase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG7D"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=pascalToCamelCase.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pascalToCamelCase.test.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/pascalToCamelCase.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"pascalToKebabCase.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/pascalToKebabCase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAa7D"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=pascalToKebabCase.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pascalToKebabCase.test.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/pascalToKebabCase.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"pascalToSnakeCase.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/pascalToSnakeCase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAa7D"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=pascalToSnakeCase.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pascalToSnakeCase.test.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/pascalToSnakeCase.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"snakeToCamelCase.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/snakeToCamelCase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI5D"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=snakeToCamelCase.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"snakeToCamelCase.test.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/snakeToCamelCase.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"snakeToKebabCase.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/snakeToKebabCase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE5D"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=snakeToKebabCase.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"snakeToKebabCase.test.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/snakeToKebabCase.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"snakeToPascalCase.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/snakeToPascalCase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK7D"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=snakeToPascalCase.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"snakeToPascalCase.test.d.ts","sourceRoot":"","sources":["../../../src/utils/stringFormatters/snakeToPascalCase.test.ts"],"names":[],"mappings":""}