@kubb/core 2.4.0 → 2.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,30 @@
1
+ import { init_esm_shims } from './chunk-ETA3LCRB.js';
2
+ import { camelCase as camelCase$1, pascalCase as pascalCase$1, pathCase as pathCase$1 } from 'change-case';
3
+
4
+ // src/transformers/casing.ts
5
+ init_esm_shims();
6
+ function camelCase(text, { isFile, prefix = "", suffix = "" } = {}) {
7
+ if (isFile) {
8
+ const splitArray = text.split(".");
9
+ return splitArray.map((item, i) => i === splitArray.length - 1 ? camelCase(item, { prefix, suffix }) : camelCase(item)).join("/");
10
+ }
11
+ return camelCase$1(`${prefix} ${text} ${suffix}`, { delimiter: "", mergeAmbiguousCharacters: true });
12
+ }
13
+ function pascalCase(text, { isFile, prefix = "", suffix = "" } = {}) {
14
+ if (isFile) {
15
+ const splitArray = text.split(".");
16
+ return splitArray.map((item, i) => i === splitArray.length - 1 ? pascalCase(item, { prefix, suffix }) : camelCase(item)).join("/");
17
+ }
18
+ return pascalCase$1(`${prefix} ${text} ${suffix}`, { delimiter: "", mergeAmbiguousCharacters: true });
19
+ }
20
+ function pathCase(text, { isFile, prefix = "", suffix = "" } = {}) {
21
+ if (isFile) {
22
+ const splitArray = text.split(".");
23
+ return splitArray.map((item, i) => i === splitArray.length - 1 ? pathCase(item, { prefix, suffix }) : camelCase(item)).join("/");
24
+ }
25
+ return pathCase$1(`${prefix} ${text} ${suffix}`, { delimiter: "" });
26
+ }
27
+
28
+ export { camelCase, pascalCase, pathCase };
29
+ //# sourceMappingURL=out.js.map
30
+ //# sourceMappingURL=chunk-GLL5G5KY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/transformers/casing.ts"],"names":[],"mappings":";;;;;AAAA;AAAA,SAAS,aAAa,iBAAiB,cAAc,kBAAkB,YAAY,sBAAsB;AAWlG,SAAS,UAAU,MAAc,EAAE,QAAQ,SAAS,IAAI,SAAS,GAAG,IAAa,CAAC,GAAW;AAClG,MAAI,QAAQ;AACV,UAAM,aAAa,KAAK,MAAM,GAAG;AACjC,WAAO,WAAW,IAAI,CAAC,MAAM,MAAM,MAAM,WAAW,SAAS,IAAI,UAAU,MAAM,EAAE,QAAQ,OAAO,CAAC,IAAI,UAAU,IAAI,CAAC,EAAE,KAAK,GAAG;AAAA,EAClI;AAEA,SAAO,gBAAgB,GAAG,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,EAAE,WAAW,IAAI,0BAA0B,KAAK,CAAC;AACzG;AAEO,SAAS,WAAW,MAAc,EAAE,QAAQ,SAAS,IAAI,SAAS,GAAG,IAAa,CAAC,GAAW;AACnG,MAAI,QAAQ;AACV,UAAM,aAAa,KAAK,MAAM,GAAG;AACjC,WAAO,WAAW,IAAI,CAAC,MAAM,MAAM,MAAM,WAAW,SAAS,IAAI,WAAW,MAAM,EAAE,QAAQ,OAAO,CAAC,IAAI,UAAU,IAAI,CAAC,EAAE,KAAK,GAAG;AAAA,EACnI;AAEA,SAAO,iBAAiB,GAAG,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,EAAE,WAAW,IAAI,0BAA0B,KAAK,CAAC;AAC1G;AAEO,SAAS,SAAS,MAAc,EAAE,QAAQ,SAAS,IAAI,SAAS,GAAG,IAAa,CAAC,GAAW;AACjG,MAAI,QAAQ;AACV,UAAM,aAAa,KAAK,MAAM,GAAG;AACjC,WAAO,WAAW,IAAI,CAAC,MAAM,MAAM,MAAM,WAAW,SAAS,IAAI,SAAS,MAAM,EAAE,QAAQ,OAAO,CAAC,IAAI,UAAU,IAAI,CAAC,EAAE,KAAK,GAAG;AAAA,EACjI;AAEA,SAAO,eAAe,GAAG,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,EAAE,WAAW,GAAG,CAAC;AACxE","sourcesContent":["import { camelCase as changeCamelCase, pascalCase as changePascalCase, pathCase as changePathCase } from 'change-case'\n\ntype Options = {\n /**\n * When set it will replace all `.` with `/`.\n */\n isFile?: boolean\n prefix?: string\n suffix?: string\n}\n\nexport function camelCase(text: string, { isFile, prefix = '', suffix = '' }: Options = {}): string {\n if (isFile) {\n const splitArray = text.split('.')\n return splitArray.map((item, i) => i === splitArray.length - 1 ? camelCase(item, { prefix, suffix }) : camelCase(item)).join('/')\n }\n\n return changeCamelCase(`${prefix} ${text} ${suffix}`, { delimiter: '', mergeAmbiguousCharacters: true })\n}\n\nexport function pascalCase(text: string, { isFile, prefix = '', suffix = '' }: Options = {}): string {\n if (isFile) {\n const splitArray = text.split('.')\n return splitArray.map((item, i) => i === splitArray.length - 1 ? pascalCase(item, { prefix, suffix }) : camelCase(item)).join('/')\n }\n\n return changePascalCase(`${prefix} ${text} ${suffix}`, { delimiter: '', mergeAmbiguousCharacters: true })\n}\n\nexport function pathCase(text: string, { isFile, prefix = '', suffix = '' }: Options = {}): string {\n if (isFile) {\n const splitArray = text.split('.')\n return splitArray.map((item, i) => i === splitArray.length - 1 ? pathCase(item, { prefix, suffix }) : camelCase(item)).join('/')\n }\n\n return changePathCase(`${prefix} ${text} ${suffix}`, { delimiter: '' })\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunk65OHDKQD_cjs = require('./chunk-65OHDKQD.cjs');
3
+ var chunkN7XIQXXQ_cjs = require('./chunk-N7XIQXXQ.cjs');
4
4
  var chunkKAA3L7N6_cjs = require('./chunk-KAA3L7N6.cjs');
5
5
 
6
6
  // src/utils/URLPath.ts
@@ -71,7 +71,7 @@ var URLPath = class {
71
71
  let newPath = this.path.replaceAll("{", "${");
72
72
  if (found) {
73
73
  newPath = found.reduce((prev, curr) => {
74
- const pathParam = replacer ? replacer(chunk65OHDKQD_cjs.camelCase(curr)) : chunk65OHDKQD_cjs.camelCase(curr);
74
+ const pathParam = replacer ? replacer(chunkN7XIQXXQ_cjs.camelCase(curr)) : chunkN7XIQXXQ_cjs.camelCase(curr);
75
75
  const replacement = `\${${pathParam}}`;
76
76
  return prev.replace(curr, replacement);
77
77
  }, this.path);
@@ -87,7 +87,7 @@ var URLPath = class {
87
87
  const params = {};
88
88
  found.forEach((item) => {
89
89
  item = item.replaceAll("{", "").replaceAll("}", "");
90
- const pathParam = replacer ? replacer(chunk65OHDKQD_cjs.camelCase(item)) : chunk65OHDKQD_cjs.camelCase(item);
90
+ const pathParam = replacer ? replacer(chunkN7XIQXXQ_cjs.camelCase(item)) : chunkN7XIQXXQ_cjs.camelCase(item);
91
91
  params[pathParam] = pathParam;
92
92
  }, this.path);
93
93
  return params;
@@ -103,4 +103,4 @@ var URLPath = class {
103
103
 
104
104
  exports.URLPath = URLPath;
105
105
  //# sourceMappingURL=out.js.map
106
- //# sourceMappingURL=chunk-BRWCAKW5.cjs.map
106
+ //# sourceMappingURL=chunk-LDKM6T7X.cjs.map
@@ -39,6 +39,10 @@ function splitSeparateNumbers(value) {
39
39
  }
40
40
  return words;
41
41
  }
42
+ function noCase(input, options) {
43
+ const [prefix, words, suffix] = splitPrefixSuffix(input, options);
44
+ return prefix + words.map(lowerFactory(options?.locale)).join(options?.delimiter ?? " ") + suffix;
45
+ }
42
46
  function camelCase(input, options) {
43
47
  const [prefix, words, suffix] = splitPrefixSuffix(input, options);
44
48
  const lower = lowerFactory(options?.locale);
@@ -57,6 +61,9 @@ function pascalCase(input, options) {
57
61
  const transform = options?.mergeAmbiguousCharacters ? capitalCaseTransformFactory(lower, upper) : pascalCaseTransformFactory(lower, upper);
58
62
  return prefix + words.map(transform).join(options?.delimiter ?? "") + suffix;
59
63
  }
64
+ function pathCase(input, options) {
65
+ return noCase(input, { delimiter: "/", ...options });
66
+ }
60
67
  function lowerFactory(locale) {
61
68
  return locale === false ? (input) => input.toLowerCase() : (input) => input.toLocaleLowerCase(locale);
62
69
  }
@@ -100,14 +107,30 @@ function splitPrefixSuffix(input, options = {}) {
100
107
  }
101
108
 
102
109
  // src/transformers/casing.ts
103
- function camelCase2(text) {
104
- return camelCase(text, { delimiter: "", mergeAmbiguousCharacters: true });
110
+ function camelCase2(text, { isFile, prefix = "", suffix = "" } = {}) {
111
+ if (isFile) {
112
+ const splitArray = text.split(".");
113
+ return splitArray.map((item, i) => i === splitArray.length - 1 ? camelCase2(item, { prefix, suffix }) : camelCase2(item)).join("/");
114
+ }
115
+ return camelCase(`${prefix} ${text} ${suffix}`, { delimiter: "", mergeAmbiguousCharacters: true });
105
116
  }
106
- function pascalCase2(text) {
107
- return pascalCase(text, { delimiter: "", mergeAmbiguousCharacters: true });
117
+ function pascalCase2(text, { isFile, prefix = "", suffix = "" } = {}) {
118
+ if (isFile) {
119
+ const splitArray = text.split(".");
120
+ return splitArray.map((item, i) => i === splitArray.length - 1 ? pascalCase2(item, { prefix, suffix }) : camelCase2(item)).join("/");
121
+ }
122
+ return pascalCase(`${prefix} ${text} ${suffix}`, { delimiter: "", mergeAmbiguousCharacters: true });
123
+ }
124
+ function pathCase2(text, { isFile, prefix = "", suffix = "" } = {}) {
125
+ if (isFile) {
126
+ const splitArray = text.split(".");
127
+ return splitArray.map((item, i) => i === splitArray.length - 1 ? pathCase2(item, { prefix, suffix }) : camelCase2(item)).join("/");
128
+ }
129
+ return pathCase(`${prefix} ${text} ${suffix}`, { delimiter: "" });
108
130
  }
109
131
 
110
132
  exports.camelCase = camelCase2;
111
133
  exports.pascalCase = pascalCase2;
134
+ exports.pathCase = pathCase2;
112
135
  //# sourceMappingURL=out.js.map
113
- //# sourceMappingURL=chunk-65OHDKQD.cjs.map
136
+ //# sourceMappingURL=chunk-N7XIQXXQ.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/transformers/casing.ts","../../../node_modules/.pnpm/change-case@5.4.2/node_modules/change-case/src/index.ts"],"names":["camelCase","pascalCase","pathCase"],"mappings":"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","sourcesContent":["import { camelCase as changeCamelCase, pascalCase as changePascalCase, pathCase as changePathCase } from 'change-case'\n\ntype Options = {\n /**\n * When set it will replace all `.` with `/`.\n */\n isFile?: boolean\n prefix?: string\n suffix?: string\n}\n\nexport function camelCase(text: string, { isFile, prefix = '', suffix = '' }: Options = {}): string {\n if (isFile) {\n const splitArray = text.split('.')\n return splitArray.map((item, i) => i === splitArray.length - 1 ? camelCase(item, { prefix, suffix }) : camelCase(item)).join('/')\n }\n\n return changeCamelCase(`${prefix} ${text} ${suffix}`, { delimiter: '', mergeAmbiguousCharacters: true })\n}\n\nexport function pascalCase(text: string, { isFile, prefix = '', suffix = '' }: Options = {}): string {\n if (isFile) {\n const splitArray = text.split('.')\n return splitArray.map((item, i) => i === splitArray.length - 1 ? pascalCase(item, { prefix, suffix }) : camelCase(item)).join('/')\n }\n\n return changePascalCase(`${prefix} ${text} ${suffix}`, { delimiter: '', mergeAmbiguousCharacters: true })\n}\n\nexport function pathCase(text: string, { isFile, prefix = '', suffix = '' }: Options = {}): string {\n if (isFile) {\n const splitArray = text.split('.')\n return splitArray.map((item, i) => i === splitArray.length - 1 ? pathCase(item, { prefix, suffix }) : camelCase(item)).join('/')\n }\n\n return changePathCase(`${prefix} ${text} ${suffix}`, { delimiter: '' })\n}\n","// Regexps involved with splitting words in various case formats.\nconst SPLIT_LOWER_UPPER_RE = /([\\p{Ll}\\d])(\\p{Lu})/gu;\nconst SPLIT_UPPER_UPPER_RE = /(\\p{Lu})([\\p{Lu}][\\p{Ll}])/gu;\n\n// Used to iterate over the initial split result and separate numbers.\nconst SPLIT_SEPARATE_NUMBER_RE = /(\\d)\\p{Ll}|(\\p{L})\\d/u;\n\n// Regexp involved with stripping non-word characters from the result.\nconst DEFAULT_STRIP_REGEXP = /[^\\p{L}\\d]+/giu;\n\n// The replacement value for splits.\nconst SPLIT_REPLACE_VALUE = \"$1\\0$2\";\n\n// The default characters to keep after transforming case.\nconst DEFAULT_PREFIX_SUFFIX_CHARACTERS = \"\";\n\n/**\n * Supported locale values. Use `false` to ignore locale.\n * Defaults to `undefined`, which uses the host environment.\n */\nexport type Locale = string[] | string | false | undefined;\n\n/**\n * Options used for converting strings to pascal/camel case.\n */\nexport interface PascalCaseOptions extends Options {\n mergeAmbiguousCharacters?: boolean;\n}\n\n/**\n * Options used for converting strings to any case.\n */\nexport interface Options {\n locale?: Locale;\n split?: (value: string) => string[];\n /** @deprecated Pass `split: splitSeparateNumbers` instead. */\n separateNumbers?: boolean;\n delimiter?: string;\n prefixCharacters?: string;\n suffixCharacters?: string;\n}\n\n/**\n * Split any cased input strings into an array of words.\n */\nexport function split(value: string) {\n let result = value.trim();\n\n result = result\n .replace(SPLIT_LOWER_UPPER_RE, SPLIT_REPLACE_VALUE)\n .replace(SPLIT_UPPER_UPPER_RE, SPLIT_REPLACE_VALUE);\n\n result = result.replace(DEFAULT_STRIP_REGEXP, \"\\0\");\n\n let start = 0;\n let end = result.length;\n\n // Trim the delimiter from around the output string.\n while (result.charAt(start) === \"\\0\") start++;\n if (start === end) return [];\n while (result.charAt(end - 1) === \"\\0\") end--;\n\n return result.slice(start, end).split(/\\0/g);\n}\n\n/**\n * Split the input string into an array of words, separating numbers.\n */\nexport function splitSeparateNumbers(value: string) {\n const words = split(value);\n for (let i = 0; i < words.length; i++) {\n const word = words[i];\n const match = SPLIT_SEPARATE_NUMBER_RE.exec(word);\n if (match) {\n const offset = match.index + (match[1] ?? match[2]).length;\n words.splice(i, 1, word.slice(0, offset), word.slice(offset));\n }\n }\n return words;\n}\n\n/**\n * Convert a string to space separated lower case (`foo bar`).\n */\nexport function noCase(input: string, options?: Options) {\n const [prefix, words, suffix] = splitPrefixSuffix(input, options);\n return (\n prefix +\n words.map(lowerFactory(options?.locale)).join(options?.delimiter ?? \" \") +\n suffix\n );\n}\n\n/**\n * Convert a string to camel case (`fooBar`).\n */\nexport function camelCase(input: string, options?: PascalCaseOptions) {\n const [prefix, words, suffix] = splitPrefixSuffix(input, options);\n const lower = lowerFactory(options?.locale);\n const upper = upperFactory(options?.locale);\n const transform = options?.mergeAmbiguousCharacters\n ? capitalCaseTransformFactory(lower, upper)\n : pascalCaseTransformFactory(lower, upper);\n return (\n prefix +\n words\n .map((word, index) => {\n if (index === 0) return lower(word);\n return transform(word, index);\n })\n .join(options?.delimiter ?? \"\") +\n suffix\n );\n}\n\n/**\n * Convert a string to pascal case (`FooBar`).\n */\nexport function pascalCase(input: string, options?: PascalCaseOptions) {\n const [prefix, words, suffix] = splitPrefixSuffix(input, options);\n const lower = lowerFactory(options?.locale);\n const upper = upperFactory(options?.locale);\n const transform = options?.mergeAmbiguousCharacters\n ? capitalCaseTransformFactory(lower, upper)\n : pascalCaseTransformFactory(lower, upper);\n return prefix + words.map(transform).join(options?.delimiter ?? \"\") + suffix;\n}\n\n/**\n * Convert a string to pascal snake case (`Foo_Bar`).\n */\nexport function pascalSnakeCase(input: string, options?: Options) {\n return capitalCase(input, { delimiter: \"_\", ...options });\n}\n\n/**\n * Convert a string to capital case (`Foo Bar`).\n */\nexport function capitalCase(input: string, options?: Options) {\n const [prefix, words, suffix] = splitPrefixSuffix(input, options);\n const lower = lowerFactory(options?.locale);\n const upper = upperFactory(options?.locale);\n return (\n prefix +\n words\n .map(capitalCaseTransformFactory(lower, upper))\n .join(options?.delimiter ?? \" \") +\n suffix\n );\n}\n\n/**\n * Convert a string to constant case (`FOO_BAR`).\n */\nexport function constantCase(input: string, options?: Options) {\n const [prefix, words, suffix] = splitPrefixSuffix(input, options);\n return (\n prefix +\n words.map(upperFactory(options?.locale)).join(options?.delimiter ?? \"_\") +\n suffix\n );\n}\n\n/**\n * Convert a string to dot case (`foo.bar`).\n */\nexport function dotCase(input: string, options?: Options) {\n return noCase(input, { delimiter: \".\", ...options });\n}\n\n/**\n * Convert a string to kebab case (`foo-bar`).\n */\nexport function kebabCase(input: string, options?: Options) {\n return noCase(input, { delimiter: \"-\", ...options });\n}\n\n/**\n * Convert a string to path case (`foo/bar`).\n */\nexport function pathCase(input: string, options?: Options) {\n return noCase(input, { delimiter: \"/\", ...options });\n}\n\n/**\n * Convert a string to path case (`Foo bar`).\n */\nexport function sentenceCase(input: string, options?: Options) {\n const [prefix, words, suffix] = splitPrefixSuffix(input, options);\n const lower = lowerFactory(options?.locale);\n const upper = upperFactory(options?.locale);\n const transform = capitalCaseTransformFactory(lower, upper);\n return (\n prefix +\n words\n .map((word, index) => {\n if (index === 0) return transform(word);\n return lower(word);\n })\n .join(options?.delimiter ?? \" \") +\n suffix\n );\n}\n\n/**\n * Convert a string to snake case (`foo_bar`).\n */\nexport function snakeCase(input: string, options?: Options) {\n return noCase(input, { delimiter: \"_\", ...options });\n}\n\n/**\n * Convert a string to header case (`Foo-Bar`).\n */\nexport function trainCase(input: string, options?: Options) {\n return capitalCase(input, { delimiter: \"-\", ...options });\n}\n\nfunction lowerFactory(locale: Locale): (input: string) => string {\n return locale === false\n ? (input: string) => input.toLowerCase()\n : (input: string) => input.toLocaleLowerCase(locale);\n}\n\nfunction upperFactory(locale: Locale): (input: string) => string {\n return locale === false\n ? (input: string) => input.toUpperCase()\n : (input: string) => input.toLocaleUpperCase(locale);\n}\n\nfunction capitalCaseTransformFactory(\n lower: (input: string) => string,\n upper: (input: string) => string,\n) {\n return (word: string) => `${upper(word[0])}${lower(word.slice(1))}`;\n}\n\nfunction pascalCaseTransformFactory(\n lower: (input: string) => string,\n upper: (input: string) => string,\n) {\n return (word: string, index: number) => {\n const char0 = word[0];\n const initial =\n index > 0 && char0 >= \"0\" && char0 <= \"9\" ? \"_\" + char0 : upper(char0);\n return initial + lower(word.slice(1));\n };\n}\n\nfunction splitPrefixSuffix(\n input: string,\n options: Options = {},\n): [string, string[], string] {\n const splitFn =\n options.split ?? (options.separateNumbers ? splitSeparateNumbers : split);\n const prefixCharacters =\n options.prefixCharacters ?? DEFAULT_PREFIX_SUFFIX_CHARACTERS;\n const suffixCharacters =\n options.suffixCharacters ?? DEFAULT_PREFIX_SUFFIX_CHARACTERS;\n let prefixIndex = 0;\n let suffixIndex = input.length;\n\n while (prefixIndex < input.length) {\n const char = input.charAt(prefixIndex);\n if (!prefixCharacters.includes(char)) break;\n prefixIndex++;\n }\n\n while (suffixIndex > prefixIndex) {\n const index = suffixIndex - 1;\n const char = input.charAt(index);\n if (!suffixCharacters.includes(char)) break;\n suffixIndex = index;\n }\n\n return [\n input.slice(0, prefixIndex),\n splitFn(input.slice(prefixIndex, suffixIndex)),\n input.slice(suffixIndex),\n ];\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { camelCase } from './chunk-MASAFU3G.js';
1
+ import { camelCase } from './chunk-GLL5G5KY.js';
2
2
  import { init_esm_shims } from './chunk-ETA3LCRB.js';
3
3
 
4
4
  // src/utils/URLPath.ts
@@ -101,4 +101,4 @@ var URLPath = class {
101
101
 
102
102
  export { URLPath };
103
103
  //# sourceMappingURL=out.js.map
104
- //# sourceMappingURL=chunk-37XMXECQ.js.map
104
+ //# sourceMappingURL=chunk-STP2UI5Q.js.map
package/dist/index.cjs CHANGED
@@ -2,12 +2,12 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var chunkBRWCAKW5_cjs = require('./chunk-BRWCAKW5.cjs');
5
+ var chunkLDKM6T7X_cjs = require('./chunk-LDKM6T7X.cjs');
6
6
  var chunk5SUBV3F7_cjs = require('./chunk-5SUBV3F7.cjs');
7
7
  var chunkOYDUQYAK_cjs = require('./chunk-OYDUQYAK.cjs');
8
8
  require('./chunk-2UXXYHS6.cjs');
9
9
  require('./chunk-KXP7HD6Z.cjs');
10
- require('./chunk-65OHDKQD.cjs');
10
+ require('./chunk-N7XIQXXQ.cjs');
11
11
  var chunkJSJ3NRBQ_cjs = require('./chunk-JSJ3NRBQ.cjs');
12
12
  var chunkXX56SVPB_cjs = require('./chunk-XX56SVPB.cjs');
13
13
  require('./chunk-DM53DOLW.cjs');
@@ -51,7 +51,7 @@ async function setup(options) {
51
51
  const { config, logger = chunkJSJ3NRBQ_cjs.createLogger({ logLevel: chunkJSJ3NRBQ_cjs.LogLevel.silent }) } = options;
52
52
  let count = 0;
53
53
  try {
54
- if (isInputPath(config) && !new chunkBRWCAKW5_cjs.URLPath(config.input.path).isURL) {
54
+ if (isInputPath(config) && !new chunkLDKM6T7X_cjs.URLPath(config.input.path).isURL) {
55
55
  await chunkXX56SVPB_cjs.read(config.input.path);
56
56
  }
57
57
  } catch (e) {
package/dist/index.js CHANGED
@@ -1,10 +1,10 @@
1
- import { URLPath } from './chunk-37XMXECQ.js';
1
+ import { URLPath } from './chunk-STP2UI5Q.js';
2
2
  import { clean } from './chunk-IQBEGX4Z.js';
3
3
  import { FileManager, PluginManager, isPromise } from './chunk-HI4PB2AG.js';
4
4
  export { FileManager, KubbFile, PluginManager, PromiseManager, Warning, createPlugin, pluginName as name, pluginName } from './chunk-HI4PB2AG.js';
5
5
  import './chunk-GKW5TTFV.js';
6
6
  import './chunk-YW33IVCC.js';
7
- import './chunk-MASAFU3G.js';
7
+ import './chunk-GLL5G5KY.js';
8
8
  import { LogLevel, createLogger, p, randomCliColour } from './chunk-V6AVJEQC.js';
9
9
  import { read, readSync } from './chunk-YUTCMBUY.js';
10
10
  import './chunk-MYC5HIA5.js';
package/dist/mocks.cjs CHANGED
@@ -3,7 +3,7 @@
3
3
  require('./chunk-OYDUQYAK.cjs');
4
4
  require('./chunk-2UXXYHS6.cjs');
5
5
  require('./chunk-KXP7HD6Z.cjs');
6
- var chunk65OHDKQD_cjs = require('./chunk-65OHDKQD.cjs');
6
+ var chunkN7XIQXXQ_cjs = require('./chunk-N7XIQXXQ.cjs');
7
7
  require('./chunk-JSJ3NRBQ.cjs');
8
8
  require('./chunk-XX56SVPB.cjs');
9
9
  require('./chunk-DM53DOLW.cjs');
@@ -14,7 +14,7 @@ chunkKAA3L7N6_cjs.init_cjs_shims();
14
14
  var mockedPluginManager = {
15
15
  resolveName: ({ name, type }) => {
16
16
  if (type === "type") {
17
- return chunk65OHDKQD_cjs.pascalCase(name);
17
+ return chunkN7XIQXXQ_cjs.pascalCase(name);
18
18
  }
19
19
  return name;
20
20
  },
package/dist/mocks.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import './chunk-HI4PB2AG.js';
2
2
  import './chunk-GKW5TTFV.js';
3
3
  import './chunk-YW33IVCC.js';
4
- import { pascalCase } from './chunk-MASAFU3G.js';
4
+ import { pascalCase } from './chunk-GLL5G5KY.js';
5
5
  import './chunk-V6AVJEQC.js';
6
6
  import './chunk-YUTCMBUY.js';
7
7
  import './chunk-MYC5HIA5.js';
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var chunk2UXXYHS6_cjs = require('./chunk-2UXXYHS6.cjs');
6
- var chunk65OHDKQD_cjs = require('./chunk-65OHDKQD.cjs');
6
+ var chunkN7XIQXXQ_cjs = require('./chunk-N7XIQXXQ.cjs');
7
7
  var chunkKAA3L7N6_cjs = require('./chunk-KAA3L7N6.cjs');
8
8
 
9
9
  // src/transformers/index.ts
@@ -85,8 +85,9 @@ var transformers_default = {
85
85
  JSDoc: {
86
86
  createJSDocBlockText
87
87
  },
88
- camelCase: chunk65OHDKQD_cjs.camelCase,
89
- pascalCase: chunk65OHDKQD_cjs.pascalCase
88
+ camelCase: chunkN7XIQXXQ_cjs.camelCase,
89
+ pascalCase: chunkN7XIQXXQ_cjs.pascalCase,
90
+ pathCase: chunkN7XIQXXQ_cjs.pathCase
90
91
  };
91
92
 
92
93
  Object.defineProperty(exports, "searchAndReplace", {
@@ -107,11 +108,15 @@ Object.defineProperty(exports, "trimExtName", {
107
108
  });
108
109
  Object.defineProperty(exports, "camelCase", {
109
110
  enumerable: true,
110
- get: function () { return chunk65OHDKQD_cjs.camelCase; }
111
+ get: function () { return chunkN7XIQXXQ_cjs.camelCase; }
111
112
  });
112
113
  Object.defineProperty(exports, "pascalCase", {
113
114
  enumerable: true,
114
- get: function () { return chunk65OHDKQD_cjs.pascalCase; }
115
+ get: function () { return chunkN7XIQXXQ_cjs.pascalCase; }
116
+ });
117
+ Object.defineProperty(exports, "pathCase", {
118
+ enumerable: true,
119
+ get: function () { return chunkN7XIQXXQ_cjs.pathCase; }
115
120
  });
116
121
  exports.combineCodes = combineCodes;
117
122
  exports.createIndent = createIndent;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/transformers/index.ts","../src/transformers/combineCodes.ts","../src/transformers/createJSDocBlockText.ts","../src/transformers/escape.ts","../src/transformers/indent.ts","../src/transformers/nameSorter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA;;;ACAA;AAAO,SAAS,aAAa,OAAyB;AACpD,SAAO,MAAM,KAAK,IAAI;AACxB;;;ACFA;AAAO,SAAS,qBAAqB,EAAE,SAAS,GAAwC;AACtF,QAAM,mBAAmB,SAAS,OAAO,OAAO;AAEhD,MAAI,CAAC,iBAAiB,QAAQ;AAC5B,WAAO;AAAA,EACT;AAEA,SAAO;AAAA,KAAW,iBAAiB,KAAK,OAAO,CAAC;AAAA;AAClD;;;ACRA;AAAO,SAAS,OAAO,MAAuB;AAC5C,SAAO,OAAO,KAAK,WAAW,KAAK,KAAK,IAAI;AAC9C;AAQO,SAAS,eAAe,OAAoB;AACjD,SAAO,GAAG,KAAK,GAAG,QAAQ,2BAA2B,CAAC,cAAc;AAClE,YAAQ,WAAW;AAAA,MACjB,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACH,eAAO,OAAO;AAAA,MAEhB,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT;AACE,eAAO;AAAA,IACX;AAAA,EACF,CAAC;AACH;;;AC9BA;AAAO,SAAS,aAAa,MAAsB;AACjD,SAAO,MAAM,KAAK,EAAE,QAAQ,OAAO,EAAE,CAAC,EAAE,KAAK,GAAG;AAClD;;;ACFA;AAAO,SAAS,WAAuC,GAAM,GAAkB;AAC7E,MAAI,EAAE,OAAO,EAAE,MAAM;AACnB,WAAO;AAAA,EACT;AACA,MAAI,EAAE,OAAO,EAAE,MAAM;AACnB,WAAO;AAAA,EACT;AACA,SAAO;AACT;;;ALYA,IAAO,uBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,IACL;AAAA,EACF;AAAA,EACA;AAAA,EACA;AACF","sourcesContent":["import { camelCase, pascalCase } from './casing.ts'\nimport { combineCodes } from './combineCodes.ts'\nimport { createJSDocBlockText } from './createJSDocBlockText.ts'\nimport { escape, jsStringEscape } from './escape.ts'\nimport { createIndent } from './indent.ts'\nimport { nameSorter } from './nameSorter.ts'\nimport { searchAndReplace } from './searchAndReplace.ts'\nimport { transformReservedWord } from './transformReservedWord.ts'\nimport { trim, trimExtName } from './trim.ts'\n\nexport { camelCase, pascalCase } from './casing.ts'\nexport { combineCodes } from './combineCodes.ts'\nexport { createJSDocBlockText } from './createJSDocBlockText.ts'\nexport { escape, jsStringEscape } from './escape.ts'\nexport { createIndent } from './indent.ts'\nexport { nameSorter } from './nameSorter.ts'\nexport { searchAndReplace } from './searchAndReplace.ts'\nexport { transformReservedWord } from './transformReservedWord.ts'\nexport { trim, trimExtName } from './trim.ts'\n\nexport default {\n combineCodes,\n escape,\n jsStringEscape,\n createIndent,\n transformReservedWord,\n nameSorter,\n searchAndReplace,\n trim,\n trimExtName,\n JSDoc: {\n createJSDocBlockText,\n },\n camelCase,\n pascalCase,\n} as const\n","export function combineCodes(codes: string[]): string {\n return codes.join('\\n')\n}\n","export function createJSDocBlockText({ comments }: { comments: Array<string> }): string {\n const filteredComments = comments.filter(Boolean)\n\n if (!filteredComments.length) {\n return ''\n }\n\n return `/**\\n * ${filteredComments.join('\\n * ')}\\n */`\n}\n","export function escape(text?: string): string {\n return text ? text.replaceAll('`', '\\\\`') : ''\n}\n\n/**\n * Escape all characters not included in SingleStringCharacters and DoubleStringCharacters on\n * @link http://www.ecma-international.org/ecma-262/5.1/#sec-7.8.4\n * @link https://github.com/joliss/js-string-escape/blob/master/index.js\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function jsStringEscape(input: any): string {\n return `${input}`.replace(/[\"'\\\\\\n\\r\\u2028\\u2029]/g, (character) => {\n switch (character) {\n case '\"':\n case \"'\":\n case '\\\\':\n return '\\\\' + character\n // Four possible LineTerminator characters need to be escaped:\n case '\\n':\n return '\\\\n'\n case '\\r':\n return '\\\\r'\n case '\\u2028':\n return '\\\\u2028'\n case '\\u2029':\n return '\\\\u2029'\n default:\n return ''\n }\n })\n}\n","export function createIndent(size: number): string {\n return Array.from({ length: size + 1 }).join(' ')\n}\n","export function nameSorter<T extends { name: string }>(a: T, b: T): 0 | 1 | -1 {\n if (a.name < b.name) {\n return -1\n }\n if (a.name > b.name) {\n return 1\n }\n return 0\n}\n"]}
1
+ {"version":3,"sources":["../src/transformers/index.ts","../src/transformers/combineCodes.ts","../src/transformers/createJSDocBlockText.ts","../src/transformers/escape.ts","../src/transformers/indent.ts","../src/transformers/nameSorter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;ACAA;AAAO,SAAS,aAAa,OAAyB;AACpD,SAAO,MAAM,KAAK,IAAI;AACxB;;;ACFA;AAAO,SAAS,qBAAqB,EAAE,SAAS,GAAwC;AACtF,QAAM,mBAAmB,SAAS,OAAO,OAAO;AAEhD,MAAI,CAAC,iBAAiB,QAAQ;AAC5B,WAAO;AAAA,EACT;AAEA,SAAO;AAAA,KAAW,iBAAiB,KAAK,OAAO,CAAC;AAAA;AAClD;;;ACRA;AAAO,SAAS,OAAO,MAAuB;AAC5C,SAAO,OAAO,KAAK,WAAW,KAAK,KAAK,IAAI;AAC9C;AAQO,SAAS,eAAe,OAAoB;AACjD,SAAO,GAAG,KAAK,GAAG,QAAQ,2BAA2B,CAAC,cAAc;AAClE,YAAQ,WAAW;AAAA,MACjB,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACH,eAAO,OAAO;AAAA,MAEhB,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT;AACE,eAAO;AAAA,IACX;AAAA,EACF,CAAC;AACH;;;AC9BA;AAAO,SAAS,aAAa,MAAsB;AACjD,SAAO,MAAM,KAAK,EAAE,QAAQ,OAAO,EAAE,CAAC,EAAE,KAAK,GAAG;AAClD;;;ACFA;AAAO,SAAS,WAAuC,GAAM,GAAkB;AAC7E,MAAI,EAAE,OAAO,EAAE,MAAM;AACnB,WAAO;AAAA,EACT;AACA,MAAI,EAAE,OAAO,EAAE,MAAM;AACnB,WAAO;AAAA,EACT;AACA,SAAO;AACT;;;ALYA,IAAO,uBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,IACL;AAAA,EACF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF","sourcesContent":["import { camelCase, pascalCase, pathCase } from './casing.ts'\nimport { combineCodes } from './combineCodes.ts'\nimport { createJSDocBlockText } from './createJSDocBlockText.ts'\nimport { escape, jsStringEscape } from './escape.ts'\nimport { createIndent } from './indent.ts'\nimport { nameSorter } from './nameSorter.ts'\nimport { searchAndReplace } from './searchAndReplace.ts'\nimport { transformReservedWord } from './transformReservedWord.ts'\nimport { trim, trimExtName } from './trim.ts'\n\nexport { camelCase, pascalCase, pathCase } from './casing.ts'\nexport { combineCodes } from './combineCodes.ts'\nexport { createJSDocBlockText } from './createJSDocBlockText.ts'\nexport { escape, jsStringEscape } from './escape.ts'\nexport { createIndent } from './indent.ts'\nexport { nameSorter } from './nameSorter.ts'\nexport { searchAndReplace } from './searchAndReplace.ts'\nexport { transformReservedWord } from './transformReservedWord.ts'\nexport { trim, trimExtName } from './trim.ts'\n\nexport default {\n combineCodes,\n escape,\n jsStringEscape,\n createIndent,\n transformReservedWord,\n nameSorter,\n searchAndReplace,\n trim,\n trimExtName,\n JSDoc: {\n createJSDocBlockText,\n },\n camelCase,\n pascalCase,\n pathCase,\n} as const\n","export function combineCodes(codes: string[]): string {\n return codes.join('\\n')\n}\n","export function createJSDocBlockText({ comments }: { comments: Array<string> }): string {\n const filteredComments = comments.filter(Boolean)\n\n if (!filteredComments.length) {\n return ''\n }\n\n return `/**\\n * ${filteredComments.join('\\n * ')}\\n */`\n}\n","export function escape(text?: string): string {\n return text ? text.replaceAll('`', '\\\\`') : ''\n}\n\n/**\n * Escape all characters not included in SingleStringCharacters and DoubleStringCharacters on\n * @link http://www.ecma-international.org/ecma-262/5.1/#sec-7.8.4\n * @link https://github.com/joliss/js-string-escape/blob/master/index.js\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function jsStringEscape(input: any): string {\n return `${input}`.replace(/[\"'\\\\\\n\\r\\u2028\\u2029]/g, (character) => {\n switch (character) {\n case '\"':\n case \"'\":\n case '\\\\':\n return '\\\\' + character\n // Four possible LineTerminator characters need to be escaped:\n case '\\n':\n return '\\\\n'\n case '\\r':\n return '\\\\r'\n case '\\u2028':\n return '\\\\u2028'\n case '\\u2029':\n return '\\\\u2029'\n default:\n return ''\n }\n })\n}\n","export function createIndent(size: number): string {\n return Array.from({ length: size + 1 }).join(' ')\n}\n","export function nameSorter<T extends { name: string }>(a: T, b: T): 0 | 1 | -1 {\n if (a.name < b.name) {\n return -1\n }\n if (a.name > b.name) {\n return 1\n }\n return 0\n}\n"]}
@@ -1,5 +1,14 @@
1
- declare function camelCase(text: string): string;
2
- declare function pascalCase(text: string): string;
1
+ type Options$1 = {
2
+ /**
3
+ * When set it will replace all `.` with `/`.
4
+ */
5
+ isFile?: boolean;
6
+ prefix?: string;
7
+ suffix?: string;
8
+ };
9
+ declare function camelCase(text: string, { isFile, prefix, suffix }?: Options$1): string;
10
+ declare function pascalCase(text: string, { isFile, prefix, suffix }?: Options$1): string;
11
+ declare function pathCase(text: string, { isFile, prefix, suffix }?: Options$1): string;
3
12
 
4
13
  declare function combineCodes(codes: string[]): string;
5
14
 
@@ -50,6 +59,7 @@ declare const _default: {
50
59
  };
51
60
  readonly camelCase: typeof camelCase;
52
61
  readonly pascalCase: typeof pascalCase;
62
+ readonly pathCase: typeof pathCase;
53
63
  };
54
64
 
55
- export { camelCase, combineCodes, createIndent, createJSDocBlockText, _default as default, escape, jsStringEscape, nameSorter, pascalCase, searchAndReplace, transformReservedWord, trim, trimExtName };
65
+ export { camelCase, combineCodes, createIndent, createJSDocBlockText, _default as default, escape, jsStringEscape, nameSorter, pascalCase, pathCase, searchAndReplace, transformReservedWord, trim, trimExtName };
@@ -1,5 +1,14 @@
1
- declare function camelCase(text: string): string;
2
- declare function pascalCase(text: string): string;
1
+ type Options$1 = {
2
+ /**
3
+ * When set it will replace all `.` with `/`.
4
+ */
5
+ isFile?: boolean;
6
+ prefix?: string;
7
+ suffix?: string;
8
+ };
9
+ declare function camelCase(text: string, { isFile, prefix, suffix }?: Options$1): string;
10
+ declare function pascalCase(text: string, { isFile, prefix, suffix }?: Options$1): string;
11
+ declare function pathCase(text: string, { isFile, prefix, suffix }?: Options$1): string;
3
12
 
4
13
  declare function combineCodes(codes: string[]): string;
5
14
 
@@ -50,6 +59,7 @@ declare const _default: {
50
59
  };
51
60
  readonly camelCase: typeof camelCase;
52
61
  readonly pascalCase: typeof pascalCase;
62
+ readonly pathCase: typeof pathCase;
53
63
  };
54
64
 
55
- export { camelCase, combineCodes, createIndent, createJSDocBlockText, _default as default, escape, jsStringEscape, nameSorter, pascalCase, searchAndReplace, transformReservedWord, trim, trimExtName };
65
+ export { camelCase, combineCodes, createIndent, createJSDocBlockText, _default as default, escape, jsStringEscape, nameSorter, pascalCase, pathCase, searchAndReplace, transformReservedWord, trim, trimExtName };
@@ -1,7 +1,7 @@
1
1
  import { transformReservedWord, searchAndReplace, trim, trimExtName } from './chunk-GKW5TTFV.js';
2
2
  export { searchAndReplace, transformReservedWord, trim, trimExtName } from './chunk-GKW5TTFV.js';
3
- import { camelCase, pascalCase } from './chunk-MASAFU3G.js';
4
- export { camelCase, pascalCase } from './chunk-MASAFU3G.js';
3
+ import { camelCase, pascalCase, pathCase } from './chunk-GLL5G5KY.js';
4
+ export { camelCase, pascalCase, pathCase } from './chunk-GLL5G5KY.js';
5
5
  import { init_esm_shims } from './chunk-ETA3LCRB.js';
6
6
 
7
7
  // src/transformers/index.ts
@@ -84,7 +84,8 @@ var transformers_default = {
84
84
  createJSDocBlockText
85
85
  },
86
86
  camelCase,
87
- pascalCase
87
+ pascalCase,
88
+ pathCase
88
89
  };
89
90
 
90
91
  export { combineCodes, createIndent, createJSDocBlockText, transformers_default as default, escape, jsStringEscape, nameSorter };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/transformers/index.ts","../src/transformers/combineCodes.ts","../src/transformers/createJSDocBlockText.ts","../src/transformers/escape.ts","../src/transformers/indent.ts","../src/transformers/nameSorter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA;;;ACAA;AAAO,SAAS,aAAa,OAAyB;AACpD,SAAO,MAAM,KAAK,IAAI;AACxB;;;ACFA;AAAO,SAAS,qBAAqB,EAAE,SAAS,GAAwC;AACtF,QAAM,mBAAmB,SAAS,OAAO,OAAO;AAEhD,MAAI,CAAC,iBAAiB,QAAQ;AAC5B,WAAO;AAAA,EACT;AAEA,SAAO;AAAA,KAAW,iBAAiB,KAAK,OAAO,CAAC;AAAA;AAClD;;;ACRA;AAAO,SAAS,OAAO,MAAuB;AAC5C,SAAO,OAAO,KAAK,WAAW,KAAK,KAAK,IAAI;AAC9C;AAQO,SAAS,eAAe,OAAoB;AACjD,SAAO,GAAG,KAAK,GAAG,QAAQ,2BAA2B,CAAC,cAAc;AAClE,YAAQ,WAAW;AAAA,MACjB,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACH,eAAO,OAAO;AAAA,MAEhB,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT;AACE,eAAO;AAAA,IACX;AAAA,EACF,CAAC;AACH;;;AC9BA;AAAO,SAAS,aAAa,MAAsB;AACjD,SAAO,MAAM,KAAK,EAAE,QAAQ,OAAO,EAAE,CAAC,EAAE,KAAK,GAAG;AAClD;;;ACFA;AAAO,SAAS,WAAuC,GAAM,GAAkB;AAC7E,MAAI,EAAE,OAAO,EAAE,MAAM;AACnB,WAAO;AAAA,EACT;AACA,MAAI,EAAE,OAAO,EAAE,MAAM;AACnB,WAAO;AAAA,EACT;AACA,SAAO;AACT;;;ALYA,IAAO,uBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,IACL;AAAA,EACF;AAAA,EACA;AAAA,EACA;AACF","sourcesContent":["import { camelCase, pascalCase } from './casing.ts'\nimport { combineCodes } from './combineCodes.ts'\nimport { createJSDocBlockText } from './createJSDocBlockText.ts'\nimport { escape, jsStringEscape } from './escape.ts'\nimport { createIndent } from './indent.ts'\nimport { nameSorter } from './nameSorter.ts'\nimport { searchAndReplace } from './searchAndReplace.ts'\nimport { transformReservedWord } from './transformReservedWord.ts'\nimport { trim, trimExtName } from './trim.ts'\n\nexport { camelCase, pascalCase } from './casing.ts'\nexport { combineCodes } from './combineCodes.ts'\nexport { createJSDocBlockText } from './createJSDocBlockText.ts'\nexport { escape, jsStringEscape } from './escape.ts'\nexport { createIndent } from './indent.ts'\nexport { nameSorter } from './nameSorter.ts'\nexport { searchAndReplace } from './searchAndReplace.ts'\nexport { transformReservedWord } from './transformReservedWord.ts'\nexport { trim, trimExtName } from './trim.ts'\n\nexport default {\n combineCodes,\n escape,\n jsStringEscape,\n createIndent,\n transformReservedWord,\n nameSorter,\n searchAndReplace,\n trim,\n trimExtName,\n JSDoc: {\n createJSDocBlockText,\n },\n camelCase,\n pascalCase,\n} as const\n","export function combineCodes(codes: string[]): string {\n return codes.join('\\n')\n}\n","export function createJSDocBlockText({ comments }: { comments: Array<string> }): string {\n const filteredComments = comments.filter(Boolean)\n\n if (!filteredComments.length) {\n return ''\n }\n\n return `/**\\n * ${filteredComments.join('\\n * ')}\\n */`\n}\n","export function escape(text?: string): string {\n return text ? text.replaceAll('`', '\\\\`') : ''\n}\n\n/**\n * Escape all characters not included in SingleStringCharacters and DoubleStringCharacters on\n * @link http://www.ecma-international.org/ecma-262/5.1/#sec-7.8.4\n * @link https://github.com/joliss/js-string-escape/blob/master/index.js\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function jsStringEscape(input: any): string {\n return `${input}`.replace(/[\"'\\\\\\n\\r\\u2028\\u2029]/g, (character) => {\n switch (character) {\n case '\"':\n case \"'\":\n case '\\\\':\n return '\\\\' + character\n // Four possible LineTerminator characters need to be escaped:\n case '\\n':\n return '\\\\n'\n case '\\r':\n return '\\\\r'\n case '\\u2028':\n return '\\\\u2028'\n case '\\u2029':\n return '\\\\u2029'\n default:\n return ''\n }\n })\n}\n","export function createIndent(size: number): string {\n return Array.from({ length: size + 1 }).join(' ')\n}\n","export function nameSorter<T extends { name: string }>(a: T, b: T): 0 | 1 | -1 {\n if (a.name < b.name) {\n return -1\n }\n if (a.name > b.name) {\n return 1\n }\n return 0\n}\n"]}
1
+ {"version":3,"sources":["../src/transformers/index.ts","../src/transformers/combineCodes.ts","../src/transformers/createJSDocBlockText.ts","../src/transformers/escape.ts","../src/transformers/indent.ts","../src/transformers/nameSorter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;ACAA;AAAO,SAAS,aAAa,OAAyB;AACpD,SAAO,MAAM,KAAK,IAAI;AACxB;;;ACFA;AAAO,SAAS,qBAAqB,EAAE,SAAS,GAAwC;AACtF,QAAM,mBAAmB,SAAS,OAAO,OAAO;AAEhD,MAAI,CAAC,iBAAiB,QAAQ;AAC5B,WAAO;AAAA,EACT;AAEA,SAAO;AAAA,KAAW,iBAAiB,KAAK,OAAO,CAAC;AAAA;AAClD;;;ACRA;AAAO,SAAS,OAAO,MAAuB;AAC5C,SAAO,OAAO,KAAK,WAAW,KAAK,KAAK,IAAI;AAC9C;AAQO,SAAS,eAAe,OAAoB;AACjD,SAAO,GAAG,KAAK,GAAG,QAAQ,2BAA2B,CAAC,cAAc;AAClE,YAAQ,WAAW;AAAA,MACjB,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACH,eAAO,OAAO;AAAA,MAEhB,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT;AACE,eAAO;AAAA,IACX;AAAA,EACF,CAAC;AACH;;;AC9BA;AAAO,SAAS,aAAa,MAAsB;AACjD,SAAO,MAAM,KAAK,EAAE,QAAQ,OAAO,EAAE,CAAC,EAAE,KAAK,GAAG;AAClD;;;ACFA;AAAO,SAAS,WAAuC,GAAM,GAAkB;AAC7E,MAAI,EAAE,OAAO,EAAE,MAAM;AACnB,WAAO;AAAA,EACT;AACA,MAAI,EAAE,OAAO,EAAE,MAAM;AACnB,WAAO;AAAA,EACT;AACA,SAAO;AACT;;;ALYA,IAAO,uBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,IACL;AAAA,EACF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF","sourcesContent":["import { camelCase, pascalCase, pathCase } from './casing.ts'\nimport { combineCodes } from './combineCodes.ts'\nimport { createJSDocBlockText } from './createJSDocBlockText.ts'\nimport { escape, jsStringEscape } from './escape.ts'\nimport { createIndent } from './indent.ts'\nimport { nameSorter } from './nameSorter.ts'\nimport { searchAndReplace } from './searchAndReplace.ts'\nimport { transformReservedWord } from './transformReservedWord.ts'\nimport { trim, trimExtName } from './trim.ts'\n\nexport { camelCase, pascalCase, pathCase } from './casing.ts'\nexport { combineCodes } from './combineCodes.ts'\nexport { createJSDocBlockText } from './createJSDocBlockText.ts'\nexport { escape, jsStringEscape } from './escape.ts'\nexport { createIndent } from './indent.ts'\nexport { nameSorter } from './nameSorter.ts'\nexport { searchAndReplace } from './searchAndReplace.ts'\nexport { transformReservedWord } from './transformReservedWord.ts'\nexport { trim, trimExtName } from './trim.ts'\n\nexport default {\n combineCodes,\n escape,\n jsStringEscape,\n createIndent,\n transformReservedWord,\n nameSorter,\n searchAndReplace,\n trim,\n trimExtName,\n JSDoc: {\n createJSDocBlockText,\n },\n camelCase,\n pascalCase,\n pathCase,\n} as const\n","export function combineCodes(codes: string[]): string {\n return codes.join('\\n')\n}\n","export function createJSDocBlockText({ comments }: { comments: Array<string> }): string {\n const filteredComments = comments.filter(Boolean)\n\n if (!filteredComments.length) {\n return ''\n }\n\n return `/**\\n * ${filteredComments.join('\\n * ')}\\n */`\n}\n","export function escape(text?: string): string {\n return text ? text.replaceAll('`', '\\\\`') : ''\n}\n\n/**\n * Escape all characters not included in SingleStringCharacters and DoubleStringCharacters on\n * @link http://www.ecma-international.org/ecma-262/5.1/#sec-7.8.4\n * @link https://github.com/joliss/js-string-escape/blob/master/index.js\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function jsStringEscape(input: any): string {\n return `${input}`.replace(/[\"'\\\\\\n\\r\\u2028\\u2029]/g, (character) => {\n switch (character) {\n case '\"':\n case \"'\":\n case '\\\\':\n return '\\\\' + character\n // Four possible LineTerminator characters need to be escaped:\n case '\\n':\n return '\\\\n'\n case '\\r':\n return '\\\\r'\n case '\\u2028':\n return '\\\\u2028'\n case '\\u2029':\n return '\\\\u2029'\n default:\n return ''\n }\n })\n}\n","export function createIndent(size: number): string {\n return Array.from({ length: size + 1 }).join(' ')\n}\n","export function nameSorter<T extends { name: string }>(a: T, b: T): 0 | 1 | -1 {\n if (a.name < b.name) {\n return -1\n }\n if (a.name > b.name) {\n return 1\n }\n return 0\n}\n"]}
package/dist/utils.cjs CHANGED
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var chunkBRWCAKW5_cjs = require('./chunk-BRWCAKW5.cjs');
3
+ var chunkLDKM6T7X_cjs = require('./chunk-LDKM6T7X.cjs');
4
4
  var chunkKXP7HD6Z_cjs = require('./chunk-KXP7HD6Z.cjs');
5
- var chunk65OHDKQD_cjs = require('./chunk-65OHDKQD.cjs');
5
+ var chunkN7XIQXXQ_cjs = require('./chunk-N7XIQXXQ.cjs');
6
6
  var chunkKAA3L7N6_cjs = require('./chunk-KAA3L7N6.cjs');
7
7
  var naturalOrderby = require('natural-orderby');
8
8
 
@@ -35,7 +35,7 @@ var FunctionParams = class {
35
35
  acc.push(`${type}${rest.default ? ` = ${rest.default}` : ""}`);
36
36
  return acc;
37
37
  }
38
- const parameterName = name.startsWith("{") ? name : chunk65OHDKQD_cjs.camelCase(name);
38
+ const parameterName = name.startsWith("{") ? name : chunkN7XIQXXQ_cjs.camelCase(name);
39
39
  if (type) {
40
40
  if (required) {
41
41
  acc.push(`${parameterName}: ${type}${rest.default ? ` = ${rest.default}` : ""}`);
@@ -99,7 +99,7 @@ async function timeout(ms) {
99
99
 
100
100
  Object.defineProperty(exports, "URLPath", {
101
101
  enumerable: true,
102
- get: function () { return chunkBRWCAKW5_cjs.URLPath; }
102
+ get: function () { return chunkLDKM6T7X_cjs.URLPath; }
103
103
  });
104
104
  Object.defineProperty(exports, "getUniqueName", {
105
105
  enumerable: true,
package/dist/utils.js CHANGED
@@ -1,6 +1,6 @@
1
- export { URLPath } from './chunk-37XMXECQ.js';
1
+ export { URLPath } from './chunk-STP2UI5Q.js';
2
2
  export { getUniqueName, setUniqueName } from './chunk-YW33IVCC.js';
3
- import { camelCase } from './chunk-MASAFU3G.js';
3
+ import { camelCase } from './chunk-GLL5G5KY.js';
4
4
  import { init_esm_shims } from './chunk-ETA3LCRB.js';
5
5
  import { orderBy } from 'natural-orderby';
6
6
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kubb/core",
3
- "version": "2.4.0",
3
+ "version": "2.4.1",
4
4
  "description": "Generator core",
5
5
  "keywords": [
6
6
  "typescript",
@@ -76,8 +76,8 @@
76
76
  "p-queue": "^8.0.1",
77
77
  "seedrandom": "^3.0.5",
78
78
  "semver": "^7.5.4",
79
- "@kubb/parser": "2.4.0",
80
- "@kubb/types": "2.4.0"
79
+ "@kubb/parser": "2.4.1",
80
+ "@kubb/types": "2.4.1"
81
81
  },
82
82
  "devDependencies": {
83
83
  "@types/fs-extra": "^11.0.4",
@@ -1,9 +1,37 @@
1
- import { camelCase as changeCaseCamel, pascalCase as changePascalCase } from 'change-case'
1
+ import { camelCase as changeCamelCase, pascalCase as changePascalCase, pathCase as changePathCase } from 'change-case'
2
2
 
3
- export function camelCase(text: string): string {
4
- return changeCaseCamel(text, { delimiter: '', mergeAmbiguousCharacters: true })
3
+ type Options = {
4
+ /**
5
+ * When set it will replace all `.` with `/`.
6
+ */
7
+ isFile?: boolean
8
+ prefix?: string
9
+ suffix?: string
5
10
  }
6
11
 
7
- export function pascalCase(text: string): string {
8
- return changePascalCase(text, { delimiter: '', mergeAmbiguousCharacters: true })
12
+ export function camelCase(text: string, { isFile, prefix = '', suffix = '' }: Options = {}): string {
13
+ if (isFile) {
14
+ const splitArray = text.split('.')
15
+ return splitArray.map((item, i) => i === splitArray.length - 1 ? camelCase(item, { prefix, suffix }) : camelCase(item)).join('/')
16
+ }
17
+
18
+ return changeCamelCase(`${prefix} ${text} ${suffix}`, { delimiter: '', mergeAmbiguousCharacters: true })
19
+ }
20
+
21
+ export function pascalCase(text: string, { isFile, prefix = '', suffix = '' }: Options = {}): string {
22
+ if (isFile) {
23
+ const splitArray = text.split('.')
24
+ return splitArray.map((item, i) => i === splitArray.length - 1 ? pascalCase(item, { prefix, suffix }) : camelCase(item)).join('/')
25
+ }
26
+
27
+ return changePascalCase(`${prefix} ${text} ${suffix}`, { delimiter: '', mergeAmbiguousCharacters: true })
28
+ }
29
+
30
+ export function pathCase(text: string, { isFile, prefix = '', suffix = '' }: Options = {}): string {
31
+ if (isFile) {
32
+ const splitArray = text.split('.')
33
+ return splitArray.map((item, i) => i === splitArray.length - 1 ? pathCase(item, { prefix, suffix }) : camelCase(item)).join('/')
34
+ }
35
+
36
+ return changePathCase(`${prefix} ${text} ${suffix}`, { delimiter: '' })
9
37
  }
@@ -1,4 +1,4 @@
1
- import { camelCase, pascalCase } from './casing.ts'
1
+ import { camelCase, pascalCase, pathCase } from './casing.ts'
2
2
  import { combineCodes } from './combineCodes.ts'
3
3
  import { createJSDocBlockText } from './createJSDocBlockText.ts'
4
4
  import { escape, jsStringEscape } from './escape.ts'
@@ -8,7 +8,7 @@ import { searchAndReplace } from './searchAndReplace.ts'
8
8
  import { transformReservedWord } from './transformReservedWord.ts'
9
9
  import { trim, trimExtName } from './trim.ts'
10
10
 
11
- export { camelCase, pascalCase } from './casing.ts'
11
+ export { camelCase, pascalCase, pathCase } from './casing.ts'
12
12
  export { combineCodes } from './combineCodes.ts'
13
13
  export { createJSDocBlockText } from './createJSDocBlockText.ts'
14
14
  export { escape, jsStringEscape } from './escape.ts'
@@ -33,4 +33,5 @@ export default {
33
33
  },
34
34
  camelCase,
35
35
  pascalCase,
36
+ pathCase,
36
37
  } as const
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/transformers/casing.ts","../../../node_modules/.pnpm/change-case@5.4.2/node_modules/change-case/src/index.ts"],"names":["camelCase","pascalCase"],"mappings":"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","sourcesContent":["import { camelCase as changeCaseCamel, pascalCase as changePascalCase } from 'change-case'\n\nexport function camelCase(text: string): string {\n return changeCaseCamel(text, { delimiter: '', mergeAmbiguousCharacters: true })\n}\n\nexport function pascalCase(text: string): string {\n return changePascalCase(text, { delimiter: '', mergeAmbiguousCharacters: true })\n}\n","// Regexps involved with splitting words in various case formats.\nconst SPLIT_LOWER_UPPER_RE = /([\\p{Ll}\\d])(\\p{Lu})/gu;\nconst SPLIT_UPPER_UPPER_RE = /(\\p{Lu})([\\p{Lu}][\\p{Ll}])/gu;\n\n// Used to iterate over the initial split result and separate numbers.\nconst SPLIT_SEPARATE_NUMBER_RE = /(\\d)\\p{Ll}|(\\p{L})\\d/u;\n\n// Regexp involved with stripping non-word characters from the result.\nconst DEFAULT_STRIP_REGEXP = /[^\\p{L}\\d]+/giu;\n\n// The replacement value for splits.\nconst SPLIT_REPLACE_VALUE = \"$1\\0$2\";\n\n// The default characters to keep after transforming case.\nconst DEFAULT_PREFIX_SUFFIX_CHARACTERS = \"\";\n\n/**\n * Supported locale values. Use `false` to ignore locale.\n * Defaults to `undefined`, which uses the host environment.\n */\nexport type Locale = string[] | string | false | undefined;\n\n/**\n * Options used for converting strings to pascal/camel case.\n */\nexport interface PascalCaseOptions extends Options {\n mergeAmbiguousCharacters?: boolean;\n}\n\n/**\n * Options used for converting strings to any case.\n */\nexport interface Options {\n locale?: Locale;\n split?: (value: string) => string[];\n /** @deprecated Pass `split: splitSeparateNumbers` instead. */\n separateNumbers?: boolean;\n delimiter?: string;\n prefixCharacters?: string;\n suffixCharacters?: string;\n}\n\n/**\n * Split any cased input strings into an array of words.\n */\nexport function split(value: string) {\n let result = value.trim();\n\n result = result\n .replace(SPLIT_LOWER_UPPER_RE, SPLIT_REPLACE_VALUE)\n .replace(SPLIT_UPPER_UPPER_RE, SPLIT_REPLACE_VALUE);\n\n result = result.replace(DEFAULT_STRIP_REGEXP, \"\\0\");\n\n let start = 0;\n let end = result.length;\n\n // Trim the delimiter from around the output string.\n while (result.charAt(start) === \"\\0\") start++;\n if (start === end) return [];\n while (result.charAt(end - 1) === \"\\0\") end--;\n\n return result.slice(start, end).split(/\\0/g);\n}\n\n/**\n * Split the input string into an array of words, separating numbers.\n */\nexport function splitSeparateNumbers(value: string) {\n const words = split(value);\n for (let i = 0; i < words.length; i++) {\n const word = words[i];\n const match = SPLIT_SEPARATE_NUMBER_RE.exec(word);\n if (match) {\n const offset = match.index + (match[1] ?? match[2]).length;\n words.splice(i, 1, word.slice(0, offset), word.slice(offset));\n }\n }\n return words;\n}\n\n/**\n * Convert a string to space separated lower case (`foo bar`).\n */\nexport function noCase(input: string, options?: Options) {\n const [prefix, words, suffix] = splitPrefixSuffix(input, options);\n return (\n prefix +\n words.map(lowerFactory(options?.locale)).join(options?.delimiter ?? \" \") +\n suffix\n );\n}\n\n/**\n * Convert a string to camel case (`fooBar`).\n */\nexport function camelCase(input: string, options?: PascalCaseOptions) {\n const [prefix, words, suffix] = splitPrefixSuffix(input, options);\n const lower = lowerFactory(options?.locale);\n const upper = upperFactory(options?.locale);\n const transform = options?.mergeAmbiguousCharacters\n ? capitalCaseTransformFactory(lower, upper)\n : pascalCaseTransformFactory(lower, upper);\n return (\n prefix +\n words\n .map((word, index) => {\n if (index === 0) return lower(word);\n return transform(word, index);\n })\n .join(options?.delimiter ?? \"\") +\n suffix\n );\n}\n\n/**\n * Convert a string to pascal case (`FooBar`).\n */\nexport function pascalCase(input: string, options?: PascalCaseOptions) {\n const [prefix, words, suffix] = splitPrefixSuffix(input, options);\n const lower = lowerFactory(options?.locale);\n const upper = upperFactory(options?.locale);\n const transform = options?.mergeAmbiguousCharacters\n ? capitalCaseTransformFactory(lower, upper)\n : pascalCaseTransformFactory(lower, upper);\n return prefix + words.map(transform).join(options?.delimiter ?? \"\") + suffix;\n}\n\n/**\n * Convert a string to pascal snake case (`Foo_Bar`).\n */\nexport function pascalSnakeCase(input: string, options?: Options) {\n return capitalCase(input, { delimiter: \"_\", ...options });\n}\n\n/**\n * Convert a string to capital case (`Foo Bar`).\n */\nexport function capitalCase(input: string, options?: Options) {\n const [prefix, words, suffix] = splitPrefixSuffix(input, options);\n const lower = lowerFactory(options?.locale);\n const upper = upperFactory(options?.locale);\n return (\n prefix +\n words\n .map(capitalCaseTransformFactory(lower, upper))\n .join(options?.delimiter ?? \" \") +\n suffix\n );\n}\n\n/**\n * Convert a string to constant case (`FOO_BAR`).\n */\nexport function constantCase(input: string, options?: Options) {\n const [prefix, words, suffix] = splitPrefixSuffix(input, options);\n return (\n prefix +\n words.map(upperFactory(options?.locale)).join(options?.delimiter ?? \"_\") +\n suffix\n );\n}\n\n/**\n * Convert a string to dot case (`foo.bar`).\n */\nexport function dotCase(input: string, options?: Options) {\n return noCase(input, { delimiter: \".\", ...options });\n}\n\n/**\n * Convert a string to kebab case (`foo-bar`).\n */\nexport function kebabCase(input: string, options?: Options) {\n return noCase(input, { delimiter: \"-\", ...options });\n}\n\n/**\n * Convert a string to path case (`foo/bar`).\n */\nexport function pathCase(input: string, options?: Options) {\n return noCase(input, { delimiter: \"/\", ...options });\n}\n\n/**\n * Convert a string to path case (`Foo bar`).\n */\nexport function sentenceCase(input: string, options?: Options) {\n const [prefix, words, suffix] = splitPrefixSuffix(input, options);\n const lower = lowerFactory(options?.locale);\n const upper = upperFactory(options?.locale);\n const transform = capitalCaseTransformFactory(lower, upper);\n return (\n prefix +\n words\n .map((word, index) => {\n if (index === 0) return transform(word);\n return lower(word);\n })\n .join(options?.delimiter ?? \" \") +\n suffix\n );\n}\n\n/**\n * Convert a string to snake case (`foo_bar`).\n */\nexport function snakeCase(input: string, options?: Options) {\n return noCase(input, { delimiter: \"_\", ...options });\n}\n\n/**\n * Convert a string to header case (`Foo-Bar`).\n */\nexport function trainCase(input: string, options?: Options) {\n return capitalCase(input, { delimiter: \"-\", ...options });\n}\n\nfunction lowerFactory(locale: Locale): (input: string) => string {\n return locale === false\n ? (input: string) => input.toLowerCase()\n : (input: string) => input.toLocaleLowerCase(locale);\n}\n\nfunction upperFactory(locale: Locale): (input: string) => string {\n return locale === false\n ? (input: string) => input.toUpperCase()\n : (input: string) => input.toLocaleUpperCase(locale);\n}\n\nfunction capitalCaseTransformFactory(\n lower: (input: string) => string,\n upper: (input: string) => string,\n) {\n return (word: string) => `${upper(word[0])}${lower(word.slice(1))}`;\n}\n\nfunction pascalCaseTransformFactory(\n lower: (input: string) => string,\n upper: (input: string) => string,\n) {\n return (word: string, index: number) => {\n const char0 = word[0];\n const initial =\n index > 0 && char0 >= \"0\" && char0 <= \"9\" ? \"_\" + char0 : upper(char0);\n return initial + lower(word.slice(1));\n };\n}\n\nfunction splitPrefixSuffix(\n input: string,\n options: Options = {},\n): [string, string[], string] {\n const splitFn =\n options.split ?? (options.separateNumbers ? splitSeparateNumbers : split);\n const prefixCharacters =\n options.prefixCharacters ?? DEFAULT_PREFIX_SUFFIX_CHARACTERS;\n const suffixCharacters =\n options.suffixCharacters ?? DEFAULT_PREFIX_SUFFIX_CHARACTERS;\n let prefixIndex = 0;\n let suffixIndex = input.length;\n\n while (prefixIndex < input.length) {\n const char = input.charAt(prefixIndex);\n if (!prefixCharacters.includes(char)) break;\n prefixIndex++;\n }\n\n while (suffixIndex > prefixIndex) {\n const index = suffixIndex - 1;\n const char = input.charAt(index);\n if (!suffixCharacters.includes(char)) break;\n suffixIndex = index;\n }\n\n return [\n input.slice(0, prefixIndex),\n splitFn(input.slice(prefixIndex, suffixIndex)),\n input.slice(suffixIndex),\n ];\n}\n"]}
@@ -1,15 +0,0 @@
1
- import { init_esm_shims } from './chunk-ETA3LCRB.js';
2
- import { camelCase as camelCase$1, pascalCase as pascalCase$1 } from 'change-case';
3
-
4
- // src/transformers/casing.ts
5
- init_esm_shims();
6
- function camelCase(text) {
7
- return camelCase$1(text, { delimiter: "", mergeAmbiguousCharacters: true });
8
- }
9
- function pascalCase(text) {
10
- return pascalCase$1(text, { delimiter: "", mergeAmbiguousCharacters: true });
11
- }
12
-
13
- export { camelCase, pascalCase };
14
- //# sourceMappingURL=out.js.map
15
- //# sourceMappingURL=chunk-MASAFU3G.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/transformers/casing.ts"],"names":[],"mappings":";;;;;AAAA;AAAA,SAAS,aAAa,iBAAiB,cAAc,wBAAwB;AAEtE,SAAS,UAAU,MAAsB;AAC9C,SAAO,gBAAgB,MAAM,EAAE,WAAW,IAAI,0BAA0B,KAAK,CAAC;AAChF;AAEO,SAAS,WAAW,MAAsB;AAC/C,SAAO,iBAAiB,MAAM,EAAE,WAAW,IAAI,0BAA0B,KAAK,CAAC;AACjF","sourcesContent":["import { camelCase as changeCaseCamel, pascalCase as changePascalCase } from 'change-case'\n\nexport function camelCase(text: string): string {\n return changeCaseCamel(text, { delimiter: '', mergeAmbiguousCharacters: true })\n}\n\nexport function pascalCase(text: string): string {\n return changePascalCase(text, { delimiter: '', mergeAmbiguousCharacters: true })\n}\n"]}