@hyper-fetch/cli 7.3.0 → 7.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -91,7 +91,7 @@ declare class OpenapiRequestGenerator {
91
91
  responseType: string;
92
92
  path: string;
93
93
  method: string;
94
- queryParamsRequired: boolean | undefined;
94
+ queryParamsRequired: boolean;
95
95
  };
96
96
  static validateSchema(openapiDocument: Document): void;
97
97
  static prepareSchema(openapiDocument: Document): Promise<{
package/dist/index.js CHANGED
@@ -2533,20 +2533,30 @@ var _OpenapiRequestGenerator = class _OpenapiRequestGenerator {
2533
2533
  const segments = relPath.split("/").filter(Boolean);
2534
2534
  let currentLevel = schemaTree;
2535
2535
  for (const segment of segments) {
2536
- const key = segment.startsWith(":") ? `$${segment.slice(1)}` : segment;
2536
+ let key;
2537
+ if (segment.startsWith(":")) {
2538
+ key = `$${segment.slice(1)}`;
2539
+ } else if (segment.includes("-")) {
2540
+ key = segment.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());
2541
+ } else {
2542
+ key = segment;
2543
+ }
2537
2544
  if (!currentLevel[key]) {
2538
2545
  currentLevel[key] = {};
2539
2546
  }
2540
2547
  currentLevel = currentLevel[key];
2541
2548
  }
2542
- currentLevel[method.toLowerCase()] = requestInstanceType;
2549
+ currentLevel[`$${method.toLowerCase()}`] = requestInstanceType;
2543
2550
  });
2544
2551
  const sdkSchema = `export type SdkSchema<Client extends ClientInstance> = {
2545
2552
  ${formatSchema(schemaTree)}
2546
2553
  }`;
2547
2554
  const createSdkFn = `
2548
- export const createSdk = <Client extends ClientInstance>(client: Client) => {
2549
- return coreCreateSdk<Client, SdkSchema<Client>>(client);
2555
+
2556
+ export type { Components };
2557
+
2558
+ export const createSdk = <Client extends ClientInstance>(client: Client, options?: Parameters<typeof coreCreateSdk>[1] | undefined) => {
2559
+ return coreCreateSdk<Client, SdkSchema<Client>>(client, options);
2550
2560
  };
2551
2561
  `;
2552
2562
  return { schemaTypes, generatedTypes, sdkSchema, createSdkFn };
@@ -2597,7 +2607,7 @@ export const createSdk = <Client extends ClientInstance>(client: Client) => {
2597
2607
  const Payload = types[`${createTypeBaseName(id)}RequestBody`] ? `${createTypeBaseName(id)}RequestBody` : void 0;
2598
2608
  const LocalError = types[`${createTypeBaseName(id)}ErrorType`] ? `${createTypeBaseName(id)}ErrorType` : void 0;
2599
2609
  const QueryParams = types[`${createTypeBaseName(id)}QueryParams`] ? `${createTypeBaseName(id)}QueryParams` : void 0;
2600
- const QueryParamsGeneric = QueryParams && queryParamsRequired === false ? `${QueryParams} | undefined` : QueryParams;
2610
+ const QueryParamsGeneric = QueryParams && !queryParamsRequired ? `${QueryParams} | undefined` : QueryParams;
2601
2611
  return `Request<${Response}, ${Payload}, ${QueryParamsGeneric}, ${LocalError}, "${endpoint}", Client>`;
2602
2612
  }
2603
2613
  static generateHyperFetchRequest({
@@ -2628,7 +2638,7 @@ export const createSdk = <Client extends ClientInstance>(client: Client) => {
2628
2638
  addToGenericType("error", LocalError);
2629
2639
  }
2630
2640
  if (QueryParams) {
2631
- const key = queryParamsRequired === false ? "queryParams?" : "queryParams";
2641
+ const key = !queryParamsRequired ? "queryParams?" : "queryParams";
2632
2642
  addToGenericType(key, QueryParams);
2633
2643
  }
2634
2644
  if (genericType) {
@@ -2684,12 +2694,9 @@ export const createSdk = <Client extends ClientInstance>(client: Client) => {
2684
2694
  ).map(({ path: errorPath }) => errorPath).value();
2685
2695
  const responseType = !lodash.isEmpty(responseTypePaths) ? responseTypePaths.join(" | ") : "any";
2686
2696
  const errorType = !lodash.isEmpty(errorTypePaths) ? errorTypePaths.join(" | ") : "undefined";
2687
- const queryParamsRequired = Array.isArray(operation.parameters) ? operation.parameters.every((p) => {
2688
- if ("in" in p && p.in === "query" && p.required === false) {
2689
- return true;
2690
- }
2691
- return false;
2692
- }) : void 0;
2697
+ const queryParamsRequired = Array.isArray(operation.parameters) ? operation.parameters.some((p) => {
2698
+ return "in" in p && p.in === "query" && p.required === true;
2699
+ }) : false;
2693
2700
  return {
2694
2701
  id: normalizedOperationId,
2695
2702
  pathParametersType,
@@ -3063,8 +3070,10 @@ var main = () => __async(null, null, function* () {
3063
3070
  description: cmd.description()
3064
3071
  }))
3065
3072
  });
3073
+ yield program.parseAsync([process.argv[0], process.argv[1], chosenCommand]);
3074
+ } else {
3075
+ yield program.parseAsync(process.argv);
3066
3076
  }
3067
- yield program.parseAsync([process.argv[0], process.argv[1], chosenCommand]);
3068
3077
  } catch (e) {
3069
3078
  handleError(e);
3070
3079
  if (e instanceof Error) {
package/dist/index.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../node_modules/tsconfig-paths/src/filesystem.ts", "../../../node_modules/tsconfig-paths/src/mapping-entry.ts", "../../../node_modules/tsconfig-paths/src/try-path.ts", "../../../node_modules/tsconfig-paths/src/match-path-sync.ts", "../../../node_modules/tsconfig-paths/src/match-path-async.ts", "../../../node_modules/json5/lib/unicode.js", "../../../node_modules/json5/lib/util.js", "../../../node_modules/json5/lib/parse.js", "../../../node_modules/json5/lib/stringify.js", "../../../node_modules/json5/lib/index.js", "../../../node_modules/strip-bom/index.js", "../../../node_modules/tsconfig-paths/src/tsconfig-loader.ts", "../../../node_modules/tsconfig-paths/src/config-loader.ts", "../../../node_modules/minimist/index.js", "../../../node_modules/tsconfig-paths/src/register.ts", "../../../node_modules/tsconfig-paths/src/index.ts", "../src/cli/index.ts", "../package.json", "../src/commands/generate.ts", "../src/utils/handle-error.ts", "../src/utils/logger.ts", "../src/preflights/preflight-generate.ts", "../src/utils/errors.ts", "../src/config/get-config.ts", "../../../node_modules/kleur/colors.mjs", "../src/utils/highlighter.ts", "../src/utils/resolve-import.ts", "../src/config/schema.ts", "../src/codegen/openapi/generator.ts", "../src/codegen/openapi/http-methods.enum.ts", "../src/codegen/openapi/operations.ts", "../src/codegen/openapi/utils.ts", "../src/utils/spinner.ts", "../src/utils/show-help.ts", "../src/utils/zod-to-table.ts", "../src/commands/init.ts", "../src/config/get-ts-alias.ts"],
4
- "sourcesContent": ["import * as fs from \"fs\";\n\n/**\n * Typing for the fields of package.json we care about\n */\nexport interface PackageJson {\n [key: string]: string | PackageJson;\n}\n\n/**\n * A function that json from a file\n */\nexport interface ReadJsonSync {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (packageJsonPath: string): any | undefined;\n}\n\nexport interface FileExistsSync {\n (name: string): boolean;\n}\n\nexport interface FileExistsAsync {\n (path: string, callback: (err?: Error, exists?: boolean) => void): void;\n}\n\nexport interface ReadJsonAsyncCallback {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (err?: Error, content?: any): void;\n}\n\nexport interface ReadJsonAsync {\n (path: string, callback: ReadJsonAsyncCallback): void;\n}\n\nexport function fileExistsSync(path: string): boolean {\n // If the file doesn't exist, avoid throwing an exception over the native barrier for every miss\n if (!fs.existsSync(path)) {\n return false;\n }\n try {\n const stats = fs.statSync(path);\n return stats.isFile();\n } catch (err) {\n // If error, assume file did not exist\n return false;\n }\n}\n\n/**\n * Reads package.json from disk\n *\n * @param file Path to package.json\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function readJsonFromDiskSync(packageJsonPath: string): any | undefined {\n if (!fs.existsSync(packageJsonPath)) {\n return undefined;\n }\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n return require(packageJsonPath);\n}\n\nexport function readJsonFromDiskAsync(\n path: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callback: (err?: Error, content?: any) => void\n): void {\n fs.readFile(path, \"utf8\", (err, result) => {\n // If error, assume file did not exist\n if (err || !result) {\n return callback();\n }\n const json = JSON.parse(result);\n return callback(undefined, json);\n });\n}\n\nexport function fileExistsAsync(\n path2: string,\n callback2: (err?: Error, exists?: boolean) => void\n): void {\n fs.stat(path2, (err: Error, stats: fs.Stats) => {\n if (err) {\n // If error assume file does not exist\n return callback2(undefined, false);\n }\n callback2(undefined, stats ? stats.isFile() : false);\n });\n}\n\nexport function removeExtension(path: string): string {\n return path.substring(0, path.lastIndexOf(\".\")) || path;\n}\n", "import * as path from \"path\";\n\nexport interface MappingEntry {\n readonly pattern: string;\n readonly paths: ReadonlyArray<string>;\n}\n\nexport interface Paths {\n readonly [key: string]: ReadonlyArray<string>;\n}\n\n/**\n * Converts an absolute baseUrl and paths to an array of absolute mapping entries.\n * The array is sorted by longest prefix.\n * Having an array with entries allows us to keep a sorting order rather than\n * sort by keys each time we use the mappings.\n *\n * @param absoluteBaseUrl\n * @param paths\n * @param addMatchAll\n */\nexport function getAbsoluteMappingEntries(\n absoluteBaseUrl: string,\n paths: Paths,\n addMatchAll: boolean\n): ReadonlyArray<MappingEntry> {\n // Resolve all paths to absolute form once here, and sort them by\n // longest prefix once here, this saves time on each request later.\n // We need to put them in an array to preserve the sorting order.\n const sortedKeys = sortByLongestPrefix(Object.keys(paths));\n const absolutePaths: Array<MappingEntry> = [];\n for (const key of sortedKeys) {\n absolutePaths.push({\n pattern: key,\n paths: paths[key].map((pathToResolve) =>\n path.resolve(absoluteBaseUrl, pathToResolve)\n ),\n });\n }\n // If there is no match-all path specified in the paths section of tsconfig, then try to match\n // all paths relative to baseUrl, this is how typescript works.\n if (!paths[\"*\"] && addMatchAll) {\n absolutePaths.push({\n pattern: \"*\",\n paths: [`${absoluteBaseUrl.replace(/\\/$/, \"\")}/*`],\n });\n }\n\n return absolutePaths;\n}\n\n/**\n * Sort path patterns.\n * If a module name can be matched with multiple patterns then pattern with the longest prefix will be picked.\n */\nfunction sortByLongestPrefix(arr: Array<string>): Array<string> {\n return arr\n .concat()\n .sort((a: string, b: string) => getPrefixLength(b) - getPrefixLength(a));\n}\n\nfunction getPrefixLength(pattern: string): number {\n const prefixLength = pattern.indexOf(\"*\");\n return pattern.substr(0, prefixLength).length;\n}\n", "import * as path from \"path\";\nimport { MappingEntry } from \"./mapping-entry\";\nimport { dirname } from \"path\";\nimport { removeExtension } from \"./filesystem\";\n\nexport interface TryPath {\n readonly type: \"file\" | \"extension\" | \"index\" | \"package\";\n readonly path: string;\n}\n\n/**\n * Builds a list of all physical paths to try by:\n * 1. Check for file named exactly as request.\n * 2. Check for files named as request ending in any of the extensions.\n * 3. Check for file specified in package.json's main property.\n * 4. Check for files named as request ending in \"index\" with any of the extensions.\n */\nexport function getPathsToTry(\n extensions: ReadonlyArray<string>,\n absolutePathMappings: ReadonlyArray<MappingEntry>,\n requestedModule: string\n): ReadonlyArray<TryPath> | undefined {\n if (!absolutePathMappings || !requestedModule || requestedModule[0] === \".\") {\n return undefined;\n }\n\n const pathsToTry: Array<TryPath> = [];\n for (const entry of absolutePathMappings) {\n const starMatch =\n entry.pattern === requestedModule\n ? \"\"\n : matchStar(entry.pattern, requestedModule);\n if (starMatch !== undefined) {\n for (const physicalPathPattern of entry.paths) {\n const physicalPath = physicalPathPattern.replace(\"*\", starMatch);\n pathsToTry.push({ type: \"file\", path: physicalPath });\n pathsToTry.push(\n ...extensions.map(\n (e) => ({ type: \"extension\", path: physicalPath + e } as TryPath)\n )\n );\n pathsToTry.push({\n type: \"package\",\n path: path.join(physicalPath, \"/package.json\"),\n });\n const indexPath = path.join(physicalPath, \"/index\");\n pathsToTry.push(\n ...extensions.map(\n (e) => ({ type: \"index\", path: indexPath + e } as TryPath)\n )\n );\n }\n }\n }\n return pathsToTry.length === 0 ? undefined : pathsToTry;\n}\n\n// Not sure why we don't just return the full found path?\nexport function getStrippedPath(tryPath: TryPath): string {\n return tryPath.type === \"index\"\n ? dirname(tryPath.path)\n : tryPath.type === \"file\"\n ? tryPath.path\n : tryPath.type === \"extension\"\n ? removeExtension(tryPath.path)\n : tryPath.type === \"package\"\n ? tryPath.path\n : exhaustiveTypeException(tryPath.type);\n}\n\nexport function exhaustiveTypeException(check: never): never {\n throw new Error(`Unknown type ${check}`);\n}\n\n/**\n * Matches pattern with a single star against search.\n * Star must match at least one character to be considered a match.\n *\n * @param patttern for example \"foo*\"\n * @param search for example \"fooawesomebar\"\n * @returns the part of search that * matches, or undefined if no match.\n */\nfunction matchStar(pattern: string, search: string): string | undefined {\n if (search.length < pattern.length) {\n return undefined;\n }\n if (pattern === \"*\") {\n return search;\n }\n const star = pattern.indexOf(\"*\");\n if (star === -1) {\n return undefined;\n }\n const part1 = pattern.substring(0, star);\n const part2 = pattern.substring(star + 1);\n if (search.substr(0, star) !== part1) {\n return undefined;\n }\n if (search.substr(search.length - part2.length) !== part2) {\n return undefined;\n }\n return search.substr(star, search.length - part2.length);\n}\n", "import * as path from \"path\";\nimport * as Filesystem from \"./filesystem\";\nimport * as MappingEntry from \"./mapping-entry\";\nimport * as TryPath from \"./try-path\";\n\n/**\n * Function that can match a path\n */\nexport interface MatchPath {\n (\n requestedModule: string,\n readJson?: Filesystem.ReadJsonSync,\n fileExists?: (name: string) => boolean,\n extensions?: ReadonlyArray<string>\n ): string | undefined;\n}\n\n/**\n * Creates a function that can resolve paths according to tsconfig paths property.\n *\n * @param absoluteBaseUrl Absolute version of baseUrl as specified in tsconfig.\n * @param paths The paths as specified in tsconfig.\n * @param mainFields A list of package.json field names to try when resolving module files. Select a nested field using an array of field names.\n * @param addMatchAll Add a match-all \"*\" rule if none is present\n * @returns a function that can resolve paths.\n */\nexport function createMatchPath(\n absoluteBaseUrl: string,\n paths: { [key: string]: Array<string> },\n mainFields: (string | string[])[] = [\"main\"],\n addMatchAll: boolean = true\n): MatchPath {\n const absolutePaths = MappingEntry.getAbsoluteMappingEntries(\n absoluteBaseUrl,\n paths,\n addMatchAll\n );\n\n return (\n requestedModule: string,\n readJson?: Filesystem.ReadJsonSync,\n fileExists?: Filesystem.FileExistsSync,\n extensions?: Array<string>\n ) =>\n matchFromAbsolutePaths(\n absolutePaths,\n requestedModule,\n readJson,\n fileExists,\n extensions,\n mainFields\n );\n}\n\n/**\n * Finds a path from tsconfig that matches a module load request.\n *\n * @param absolutePathMappings The paths to try as specified in tsconfig but resolved to absolute form.\n * @param requestedModule The required module name.\n * @param readJson Function that can read json from a path (useful for testing).\n * @param fileExists Function that checks for existence of a file at a path (useful for testing).\n * @param extensions File extensions to probe for (useful for testing).\n * @param mainFields A list of package.json field names to try when resolving module files. Select a nested field using an array of field names.\n * @returns the found path, or undefined if no path was found.\n */\nexport function matchFromAbsolutePaths(\n absolutePathMappings: ReadonlyArray<MappingEntry.MappingEntry>,\n requestedModule: string,\n readJson: Filesystem.ReadJsonSync = Filesystem.readJsonFromDiskSync,\n fileExists: Filesystem.FileExistsSync = Filesystem.fileExistsSync,\n extensions: Array<string> = Object.keys(require.extensions),\n mainFields: (string | string[])[] = [\"main\"]\n): string | undefined {\n const tryPaths = TryPath.getPathsToTry(\n extensions,\n absolutePathMappings,\n requestedModule\n );\n\n if (!tryPaths) {\n return undefined;\n }\n\n return findFirstExistingPath(tryPaths, readJson, fileExists, mainFields);\n}\n\nfunction findFirstExistingMainFieldMappedFile(\n packageJson: Filesystem.PackageJson,\n mainFields: (string | string[])[],\n packageJsonPath: string,\n fileExists: Filesystem.FileExistsSync\n): string | undefined {\n for (let index = 0; index < mainFields.length; index++) {\n const mainFieldSelector = mainFields[index];\n const candidateMapping =\n typeof mainFieldSelector === \"string\"\n ? packageJson[mainFieldSelector]\n : mainFieldSelector.reduce((obj, key) => obj[key], packageJson);\n if (candidateMapping && typeof candidateMapping === \"string\") {\n const candidateFilePath = path.join(\n path.dirname(packageJsonPath),\n candidateMapping\n );\n if (fileExists(candidateFilePath)) {\n return candidateFilePath;\n }\n }\n }\n\n return undefined;\n}\n\nfunction findFirstExistingPath(\n tryPaths: ReadonlyArray<TryPath.TryPath>,\n readJson: Filesystem.ReadJsonSync = Filesystem.readJsonFromDiskSync,\n fileExists: Filesystem.FileExistsSync,\n mainFields: (string | string[])[] = [\"main\"]\n): string | undefined {\n for (const tryPath of tryPaths) {\n if (\n tryPath.type === \"file\" ||\n tryPath.type === \"extension\" ||\n tryPath.type === \"index\"\n ) {\n if (fileExists(tryPath.path)) {\n return TryPath.getStrippedPath(tryPath);\n }\n } else if (tryPath.type === \"package\") {\n const packageJson: Filesystem.PackageJson = readJson(tryPath.path);\n if (packageJson) {\n const mainFieldMappedFile = findFirstExistingMainFieldMappedFile(\n packageJson,\n mainFields,\n tryPath.path,\n fileExists\n );\n if (mainFieldMappedFile) {\n return mainFieldMappedFile;\n }\n }\n } else {\n TryPath.exhaustiveTypeException(tryPath.type);\n }\n }\n return undefined;\n}\n", "import * as path from \"path\";\nimport * as TryPath from \"./try-path\";\nimport * as MappingEntry from \"./mapping-entry\";\nimport * as Filesystem from \"./filesystem\";\n\n/**\n * Function that can match a path async\n */\nexport interface MatchPathAsync {\n (\n requestedModule: string,\n readJson: Filesystem.ReadJsonAsync | undefined,\n fileExists: Filesystem.FileExistsAsync | undefined,\n extensions: ReadonlyArray<string> | undefined,\n callback: MatchPathAsyncCallback\n ): void;\n}\n\nexport interface MatchPathAsyncCallback {\n // eslint-disable-next-line no-shadow\n (err?: Error, path?: string): void;\n}\n\n/**\n * See the sync version for docs.\n */\nexport function createMatchPathAsync(\n absoluteBaseUrl: string,\n paths: { [key: string]: Array<string> },\n mainFields: (string | string[])[] = [\"main\"],\n addMatchAll: boolean = true\n): MatchPathAsync {\n const absolutePaths = MappingEntry.getAbsoluteMappingEntries(\n absoluteBaseUrl,\n paths,\n addMatchAll\n );\n\n return (\n requestedModule: string,\n readJson: Filesystem.ReadJsonAsync | undefined,\n fileExists: Filesystem.FileExistsAsync | undefined,\n extensions: ReadonlyArray<string> | undefined,\n callback: MatchPathAsyncCallback\n ) =>\n matchFromAbsolutePathsAsync(\n absolutePaths,\n requestedModule,\n readJson,\n fileExists,\n extensions,\n callback,\n mainFields\n );\n}\n\n/**\n * See the sync version for docs.\n */\nexport function matchFromAbsolutePathsAsync(\n absolutePathMappings: ReadonlyArray<MappingEntry.MappingEntry>,\n requestedModule: string,\n readJson: Filesystem.ReadJsonAsync = Filesystem.readJsonFromDiskAsync,\n fileExists: Filesystem.FileExistsAsync = Filesystem.fileExistsAsync,\n extensions: ReadonlyArray<string> = Object.keys(require.extensions),\n callback: MatchPathAsyncCallback,\n mainFields: (string | string[])[] = [\"main\"]\n): void {\n const tryPaths = TryPath.getPathsToTry(\n extensions,\n absolutePathMappings,\n requestedModule\n );\n\n if (!tryPaths) {\n return callback();\n }\n\n findFirstExistingPath(\n tryPaths,\n readJson,\n fileExists,\n callback,\n 0,\n mainFields\n );\n}\n\nfunction findFirstExistingMainFieldMappedFile(\n packageJson: Filesystem.PackageJson,\n mainFields: (string | string[])[],\n packageJsonPath: string,\n fileExistsAsync: Filesystem.FileExistsAsync,\n doneCallback: (err?: Error, filepath?: string) => void,\n index: number = 0\n): void {\n if (index >= mainFields.length) {\n return doneCallback(undefined, undefined);\n }\n\n const tryNext = (): void =>\n findFirstExistingMainFieldMappedFile(\n packageJson,\n mainFields,\n packageJsonPath,\n fileExistsAsync,\n doneCallback,\n index + 1\n );\n\n const mainFieldSelector = mainFields[index];\n const mainFieldMapping =\n typeof mainFieldSelector === \"string\"\n ? packageJson[mainFieldSelector]\n : mainFieldSelector.reduce((obj, key) => obj[key], packageJson);\n if (typeof mainFieldMapping !== \"string\") {\n // Skip mappings that are not pointers to replacement files\n return tryNext();\n }\n\n const mappedFilePath = path.join(\n path.dirname(packageJsonPath),\n mainFieldMapping\n );\n fileExistsAsync(mappedFilePath, (err?: Error, exists?: boolean) => {\n if (err) {\n return doneCallback(err);\n }\n if (exists) {\n return doneCallback(undefined, mappedFilePath);\n }\n return tryNext();\n });\n}\n\n// Recursive loop to probe for physical files\nfunction findFirstExistingPath(\n tryPaths: ReadonlyArray<TryPath.TryPath>,\n readJson: Filesystem.ReadJsonAsync,\n fileExists: Filesystem.FileExistsAsync,\n doneCallback: MatchPathAsyncCallback,\n index: number = 0,\n mainFields: (string | string[])[] = [\"main\"]\n): void {\n const tryPath = tryPaths[index];\n if (\n tryPath.type === \"file\" ||\n tryPath.type === \"extension\" ||\n tryPath.type === \"index\"\n ) {\n fileExists(tryPath.path, (err: Error, exists: boolean) => {\n if (err) {\n return doneCallback(err);\n }\n if (exists) {\n return doneCallback(undefined, TryPath.getStrippedPath(tryPath));\n }\n if (index === tryPaths.length - 1) {\n return doneCallback();\n }\n // Continue with the next path\n return findFirstExistingPath(\n tryPaths,\n readJson,\n fileExists,\n doneCallback,\n index + 1,\n mainFields\n );\n });\n } else if (tryPath.type === \"package\") {\n readJson(tryPath.path, (err, packageJson) => {\n if (err) {\n return doneCallback(err);\n }\n if (packageJson) {\n return findFirstExistingMainFieldMappedFile(\n packageJson,\n mainFields,\n tryPath.path,\n fileExists,\n (mainFieldErr?: Error, mainFieldMappedFile?: string) => {\n if (mainFieldErr) {\n return doneCallback(mainFieldErr);\n }\n if (mainFieldMappedFile) {\n return doneCallback(undefined, mainFieldMappedFile);\n }\n\n // No field in package json was a valid option. Continue with the next path.\n return findFirstExistingPath(\n tryPaths,\n readJson,\n fileExists,\n doneCallback,\n index + 1,\n mainFields\n );\n }\n );\n }\n\n // This is async code, we need to return unconditionally, otherwise the code still falls\n // through and keeps recursing. While this might work in general, libraries that use neo-async\n // like Webpack will actually not allow you to call the same callback twice.\n //\n // An example of where this caused issues:\n // https://github.com/dividab/tsconfig-paths-webpack-plugin/issues/11\n //\n // Continue with the next path\n return findFirstExistingPath(\n tryPaths,\n readJson,\n fileExists,\n doneCallback,\n index + 1,\n mainFields\n );\n });\n } else {\n TryPath.exhaustiveTypeException(tryPath.type);\n }\n}\n", "// This is a generated file. Do not edit.\nmodule.exports.Space_Separator = /[\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/\nmodule.exports.ID_Start = /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08BD\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312E\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FEA\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC03-\\uDC37\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDF00-\\uDF19]|\\uD806[\\uDCA0-\\uDCDF\\uDCFF\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE83\\uDE86-\\uDE89\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1]|\\uD821[\\uDC00-\\uDFEC]|\\uD822[\\uDC00-\\uDEF2]|\\uD82C[\\uDC00-\\uDD1E\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]/\nmodule.exports.ID_Continue = /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08BD\\u08D4-\\u08E1\\u08E3-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u09FC\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AF9-\\u0AFF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C80-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D00-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D54-\\u0D57\\u0D5F-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1C80-\\u1C88\\u1CD0-\\u1CD2\\u1CD4-\\u1CF9\\u1D00-\\u1DF9\\u1DFB-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312E\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FEA\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C5\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA8FD\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDDFD\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE0\\uDF00-\\uDF1F\\uDF2D-\\uDF4A\\uDF50-\\uDF7A\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE38-\\uDE3A\\uDE3F\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE6\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC00-\\uDC46\\uDC66-\\uDC6F\\uDC7F-\\uDCBA\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD00-\\uDD34\\uDD36-\\uDD3F\\uDD50-\\uDD73\\uDD76\\uDD80-\\uDDC4\\uDDCA-\\uDDCC\\uDDD0-\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE37\\uDE3E\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEEA\\uDEF0-\\uDEF9\\uDF00-\\uDF03\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3C-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF50\\uDF57\\uDF5D-\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC00-\\uDC4A\\uDC50-\\uDC59\\uDC80-\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDB5\\uDDB8-\\uDDC0\\uDDD8-\\uDDDD\\uDE00-\\uDE40\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEB7\\uDEC0-\\uDEC9\\uDF00-\\uDF19\\uDF1D-\\uDF2B\\uDF30-\\uDF39]|\\uD806[\\uDCA0-\\uDCE9\\uDCFF\\uDE00-\\uDE3E\\uDE47\\uDE50-\\uDE83\\uDE86-\\uDE99\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC36\\uDC38-\\uDC40\\uDC50-\\uDC59\\uDC72-\\uDC8F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD47\\uDD50-\\uDD59]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDED0-\\uDEED\\uDEF0-\\uDEF4\\uDF00-\\uDF36\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50-\\uDF7E\\uDF8F-\\uDF9F\\uDFE0\\uDFE1]|\\uD821[\\uDC00-\\uDFEC]|\\uD822[\\uDC00-\\uDEF2]|\\uD82C[\\uDC00-\\uDD1E\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A]|\\uD83A[\\uDC00-\\uDCC4\\uDCD0-\\uDCD6\\uDD00-\\uDD4A\\uDD50-\\uDD59]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uDB40[\\uDD00-\\uDDEF]/\n", "const unicode = require('../lib/unicode')\n\nmodule.exports = {\n isSpaceSeparator (c) {\n return typeof c === 'string' && unicode.Space_Separator.test(c)\n },\n\n isIdStartChar (c) {\n return typeof c === 'string' && (\n (c >= 'a' && c <= 'z') ||\n (c >= 'A' && c <= 'Z') ||\n (c === '$') || (c === '_') ||\n unicode.ID_Start.test(c)\n )\n },\n\n isIdContinueChar (c) {\n return typeof c === 'string' && (\n (c >= 'a' && c <= 'z') ||\n (c >= 'A' && c <= 'Z') ||\n (c >= '0' && c <= '9') ||\n (c === '$') || (c === '_') ||\n (c === '\\u200C') || (c === '\\u200D') ||\n unicode.ID_Continue.test(c)\n )\n },\n\n isDigit (c) {\n return typeof c === 'string' && /[0-9]/.test(c)\n },\n\n isHexDigit (c) {\n return typeof c === 'string' && /[0-9A-Fa-f]/.test(c)\n },\n}\n", "const util = require('./util')\n\nlet source\nlet parseState\nlet stack\nlet pos\nlet line\nlet column\nlet token\nlet key\nlet root\n\nmodule.exports = function parse (text, reviver) {\n source = String(text)\n parseState = 'start'\n stack = []\n pos = 0\n line = 1\n column = 0\n token = undefined\n key = undefined\n root = undefined\n\n do {\n token = lex()\n\n // This code is unreachable.\n // if (!parseStates[parseState]) {\n // throw invalidParseState()\n // }\n\n parseStates[parseState]()\n } while (token.type !== 'eof')\n\n if (typeof reviver === 'function') {\n return internalize({'': root}, '', reviver)\n }\n\n return root\n}\n\nfunction internalize (holder, name, reviver) {\n const value = holder[name]\n if (value != null && typeof value === 'object') {\n if (Array.isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const key = String(i)\n const replacement = internalize(value, key, reviver)\n if (replacement === undefined) {\n delete value[key]\n } else {\n Object.defineProperty(value, key, {\n value: replacement,\n writable: true,\n enumerable: true,\n configurable: true,\n })\n }\n }\n } else {\n for (const key in value) {\n const replacement = internalize(value, key, reviver)\n if (replacement === undefined) {\n delete value[key]\n } else {\n Object.defineProperty(value, key, {\n value: replacement,\n writable: true,\n enumerable: true,\n configurable: true,\n })\n }\n }\n }\n }\n\n return reviver.call(holder, name, value)\n}\n\nlet lexState\nlet buffer\nlet doubleQuote\nlet sign\nlet c\n\nfunction lex () {\n lexState = 'default'\n buffer = ''\n doubleQuote = false\n sign = 1\n\n for (;;) {\n c = peek()\n\n // This code is unreachable.\n // if (!lexStates[lexState]) {\n // throw invalidLexState(lexState)\n // }\n\n const token = lexStates[lexState]()\n if (token) {\n return token\n }\n }\n}\n\nfunction peek () {\n if (source[pos]) {\n return String.fromCodePoint(source.codePointAt(pos))\n }\n}\n\nfunction read () {\n const c = peek()\n\n if (c === '\\n') {\n line++\n column = 0\n } else if (c) {\n column += c.length\n } else {\n column++\n }\n\n if (c) {\n pos += c.length\n }\n\n return c\n}\n\nconst lexStates = {\n default () {\n switch (c) {\n case '\\t':\n case '\\v':\n case '\\f':\n case ' ':\n case '\\u00A0':\n case '\\uFEFF':\n case '\\n':\n case '\\r':\n case '\\u2028':\n case '\\u2029':\n read()\n return\n\n case '/':\n read()\n lexState = 'comment'\n return\n\n case undefined:\n read()\n return newToken('eof')\n }\n\n if (util.isSpaceSeparator(c)) {\n read()\n return\n }\n\n // This code is unreachable.\n // if (!lexStates[parseState]) {\n // throw invalidLexState(parseState)\n // }\n\n return lexStates[parseState]()\n },\n\n comment () {\n switch (c) {\n case '*':\n read()\n lexState = 'multiLineComment'\n return\n\n case '/':\n read()\n lexState = 'singleLineComment'\n return\n }\n\n throw invalidChar(read())\n },\n\n multiLineComment () {\n switch (c) {\n case '*':\n read()\n lexState = 'multiLineCommentAsterisk'\n return\n\n case undefined:\n throw invalidChar(read())\n }\n\n read()\n },\n\n multiLineCommentAsterisk () {\n switch (c) {\n case '*':\n read()\n return\n\n case '/':\n read()\n lexState = 'default'\n return\n\n case undefined:\n throw invalidChar(read())\n }\n\n read()\n lexState = 'multiLineComment'\n },\n\n singleLineComment () {\n switch (c) {\n case '\\n':\n case '\\r':\n case '\\u2028':\n case '\\u2029':\n read()\n lexState = 'default'\n return\n\n case undefined:\n read()\n return newToken('eof')\n }\n\n read()\n },\n\n value () {\n switch (c) {\n case '{':\n case '[':\n return newToken('punctuator', read())\n\n case 'n':\n read()\n literal('ull')\n return newToken('null', null)\n\n case 't':\n read()\n literal('rue')\n return newToken('boolean', true)\n\n case 'f':\n read()\n literal('alse')\n return newToken('boolean', false)\n\n case '-':\n case '+':\n if (read() === '-') {\n sign = -1\n }\n\n lexState = 'sign'\n return\n\n case '.':\n buffer = read()\n lexState = 'decimalPointLeading'\n return\n\n case '0':\n buffer = read()\n lexState = 'zero'\n return\n\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9':\n buffer = read()\n lexState = 'decimalInteger'\n return\n\n case 'I':\n read()\n literal('nfinity')\n return newToken('numeric', Infinity)\n\n case 'N':\n read()\n literal('aN')\n return newToken('numeric', NaN)\n\n case '\"':\n case \"'\":\n doubleQuote = (read() === '\"')\n buffer = ''\n lexState = 'string'\n return\n }\n\n throw invalidChar(read())\n },\n\n identifierNameStartEscape () {\n if (c !== 'u') {\n throw invalidChar(read())\n }\n\n read()\n const u = unicodeEscape()\n switch (u) {\n case '$':\n case '_':\n break\n\n default:\n if (!util.isIdStartChar(u)) {\n throw invalidIdentifier()\n }\n\n break\n }\n\n buffer += u\n lexState = 'identifierName'\n },\n\n identifierName () {\n switch (c) {\n case '$':\n case '_':\n case '\\u200C':\n case '\\u200D':\n buffer += read()\n return\n\n case '\\\\':\n read()\n lexState = 'identifierNameEscape'\n return\n }\n\n if (util.isIdContinueChar(c)) {\n buffer += read()\n return\n }\n\n return newToken('identifier', buffer)\n },\n\n identifierNameEscape () {\n if (c !== 'u') {\n throw invalidChar(read())\n }\n\n read()\n const u = unicodeEscape()\n switch (u) {\n case '$':\n case '_':\n case '\\u200C':\n case '\\u200D':\n break\n\n default:\n if (!util.isIdContinueChar(u)) {\n throw invalidIdentifier()\n }\n\n break\n }\n\n buffer += u\n lexState = 'identifierName'\n },\n\n sign () {\n switch (c) {\n case '.':\n buffer = read()\n lexState = 'decimalPointLeading'\n return\n\n case '0':\n buffer = read()\n lexState = 'zero'\n return\n\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9':\n buffer = read()\n lexState = 'decimalInteger'\n return\n\n case 'I':\n read()\n literal('nfinity')\n return newToken('numeric', sign * Infinity)\n\n case 'N':\n read()\n literal('aN')\n return newToken('numeric', NaN)\n }\n\n throw invalidChar(read())\n },\n\n zero () {\n switch (c) {\n case '.':\n buffer += read()\n lexState = 'decimalPoint'\n return\n\n case 'e':\n case 'E':\n buffer += read()\n lexState = 'decimalExponent'\n return\n\n case 'x':\n case 'X':\n buffer += read()\n lexState = 'hexadecimal'\n return\n }\n\n return newToken('numeric', sign * 0)\n },\n\n decimalInteger () {\n switch (c) {\n case '.':\n buffer += read()\n lexState = 'decimalPoint'\n return\n\n case 'e':\n case 'E':\n buffer += read()\n lexState = 'decimalExponent'\n return\n }\n\n if (util.isDigit(c)) {\n buffer += read()\n return\n }\n\n return newToken('numeric', sign * Number(buffer))\n },\n\n decimalPointLeading () {\n if (util.isDigit(c)) {\n buffer += read()\n lexState = 'decimalFraction'\n return\n }\n\n throw invalidChar(read())\n },\n\n decimalPoint () {\n switch (c) {\n case 'e':\n case 'E':\n buffer += read()\n lexState = 'decimalExponent'\n return\n }\n\n if (util.isDigit(c)) {\n buffer += read()\n lexState = 'decimalFraction'\n return\n }\n\n return newToken('numeric', sign * Number(buffer))\n },\n\n decimalFraction () {\n switch (c) {\n case 'e':\n case 'E':\n buffer += read()\n lexState = 'decimalExponent'\n return\n }\n\n if (util.isDigit(c)) {\n buffer += read()\n return\n }\n\n return newToken('numeric', sign * Number(buffer))\n },\n\n decimalExponent () {\n switch (c) {\n case '+':\n case '-':\n buffer += read()\n lexState = 'decimalExponentSign'\n return\n }\n\n if (util.isDigit(c)) {\n buffer += read()\n lexState = 'decimalExponentInteger'\n return\n }\n\n throw invalidChar(read())\n },\n\n decimalExponentSign () {\n if (util.isDigit(c)) {\n buffer += read()\n lexState = 'decimalExponentInteger'\n return\n }\n\n throw invalidChar(read())\n },\n\n decimalExponentInteger () {\n if (util.isDigit(c)) {\n buffer += read()\n return\n }\n\n return newToken('numeric', sign * Number(buffer))\n },\n\n hexadecimal () {\n if (util.isHexDigit(c)) {\n buffer += read()\n lexState = 'hexadecimalInteger'\n return\n }\n\n throw invalidChar(read())\n },\n\n hexadecimalInteger () {\n if (util.isHexDigit(c)) {\n buffer += read()\n return\n }\n\n return newToken('numeric', sign * Number(buffer))\n },\n\n string () {\n switch (c) {\n case '\\\\':\n read()\n buffer += escape()\n return\n\n case '\"':\n if (doubleQuote) {\n read()\n return newToken('string', buffer)\n }\n\n buffer += read()\n return\n\n case \"'\":\n if (!doubleQuote) {\n read()\n return newToken('string', buffer)\n }\n\n buffer += read()\n return\n\n case '\\n':\n case '\\r':\n throw invalidChar(read())\n\n case '\\u2028':\n case '\\u2029':\n separatorChar(c)\n break\n\n case undefined:\n throw invalidChar(read())\n }\n\n buffer += read()\n },\n\n start () {\n switch (c) {\n case '{':\n case '[':\n return newToken('punctuator', read())\n\n // This code is unreachable since the default lexState handles eof.\n // case undefined:\n // return newToken('eof')\n }\n\n lexState = 'value'\n },\n\n beforePropertyName () {\n switch (c) {\n case '$':\n case '_':\n buffer = read()\n lexState = 'identifierName'\n return\n\n case '\\\\':\n read()\n lexState = 'identifierNameStartEscape'\n return\n\n case '}':\n return newToken('punctuator', read())\n\n case '\"':\n case \"'\":\n doubleQuote = (read() === '\"')\n lexState = 'string'\n return\n }\n\n if (util.isIdStartChar(c)) {\n buffer += read()\n lexState = 'identifierName'\n return\n }\n\n throw invalidChar(read())\n },\n\n afterPropertyName () {\n if (c === ':') {\n return newToken('punctuator', read())\n }\n\n throw invalidChar(read())\n },\n\n beforePropertyValue () {\n lexState = 'value'\n },\n\n afterPropertyValue () {\n switch (c) {\n case ',':\n case '}':\n return newToken('punctuator', read())\n }\n\n throw invalidChar(read())\n },\n\n beforeArrayValue () {\n if (c === ']') {\n return newToken('punctuator', read())\n }\n\n lexState = 'value'\n },\n\n afterArrayValue () {\n switch (c) {\n case ',':\n case ']':\n return newToken('punctuator', read())\n }\n\n throw invalidChar(read())\n },\n\n end () {\n // This code is unreachable since it's handled by the default lexState.\n // if (c === undefined) {\n // read()\n // return newToken('eof')\n // }\n\n throw invalidChar(read())\n },\n}\n\nfunction newToken (type, value) {\n return {\n type,\n value,\n line,\n column,\n }\n}\n\nfunction literal (s) {\n for (const c of s) {\n const p = peek()\n\n if (p !== c) {\n throw invalidChar(read())\n }\n\n read()\n }\n}\n\nfunction escape () {\n const c = peek()\n switch (c) {\n case 'b':\n read()\n return '\\b'\n\n case 'f':\n read()\n return '\\f'\n\n case 'n':\n read()\n return '\\n'\n\n case 'r':\n read()\n return '\\r'\n\n case 't':\n read()\n return '\\t'\n\n case 'v':\n read()\n return '\\v'\n\n case '0':\n read()\n if (util.isDigit(peek())) {\n throw invalidChar(read())\n }\n\n return '\\0'\n\n case 'x':\n read()\n return hexEscape()\n\n case 'u':\n read()\n return unicodeEscape()\n\n case '\\n':\n case '\\u2028':\n case '\\u2029':\n read()\n return ''\n\n case '\\r':\n read()\n if (peek() === '\\n') {\n read()\n }\n\n return ''\n\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9':\n throw invalidChar(read())\n\n case undefined:\n throw invalidChar(read())\n }\n\n return read()\n}\n\nfunction hexEscape () {\n let buffer = ''\n let c = peek()\n\n if (!util.isHexDigit(c)) {\n throw invalidChar(read())\n }\n\n buffer += read()\n\n c = peek()\n if (!util.isHexDigit(c)) {\n throw invalidChar(read())\n }\n\n buffer += read()\n\n return String.fromCodePoint(parseInt(buffer, 16))\n}\n\nfunction unicodeEscape () {\n let buffer = ''\n let count = 4\n\n while (count-- > 0) {\n const c = peek()\n if (!util.isHexDigit(c)) {\n throw invalidChar(read())\n }\n\n buffer += read()\n }\n\n return String.fromCodePoint(parseInt(buffer, 16))\n}\n\nconst parseStates = {\n start () {\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n push()\n },\n\n beforePropertyName () {\n switch (token.type) {\n case 'identifier':\n case 'string':\n key = token.value\n parseState = 'afterPropertyName'\n return\n\n case 'punctuator':\n // This code is unreachable since it's handled by the lexState.\n // if (token.value !== '}') {\n // throw invalidToken()\n // }\n\n pop()\n return\n\n case 'eof':\n throw invalidEOF()\n }\n\n // This code is unreachable since it's handled by the lexState.\n // throw invalidToken()\n },\n\n afterPropertyName () {\n // This code is unreachable since it's handled by the lexState.\n // if (token.type !== 'punctuator' || token.value !== ':') {\n // throw invalidToken()\n // }\n\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n parseState = 'beforePropertyValue'\n },\n\n beforePropertyValue () {\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n push()\n },\n\n beforeArrayValue () {\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n if (token.type === 'punctuator' && token.value === ']') {\n pop()\n return\n }\n\n push()\n },\n\n afterPropertyValue () {\n // This code is unreachable since it's handled by the lexState.\n // if (token.type !== 'punctuator') {\n // throw invalidToken()\n // }\n\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n switch (token.value) {\n case ',':\n parseState = 'beforePropertyName'\n return\n\n case '}':\n pop()\n }\n\n // This code is unreachable since it's handled by the lexState.\n // throw invalidToken()\n },\n\n afterArrayValue () {\n // This code is unreachable since it's handled by the lexState.\n // if (token.type !== 'punctuator') {\n // throw invalidToken()\n // }\n\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n switch (token.value) {\n case ',':\n parseState = 'beforeArrayValue'\n return\n\n case ']':\n pop()\n }\n\n // This code is unreachable since it's handled by the lexState.\n // throw invalidToken()\n },\n\n end () {\n // This code is unreachable since it's handled by the lexState.\n // if (token.type !== 'eof') {\n // throw invalidToken()\n // }\n },\n}\n\nfunction push () {\n let value\n\n switch (token.type) {\n case 'punctuator':\n switch (token.value) {\n case '{':\n value = {}\n break\n\n case '[':\n value = []\n break\n }\n\n break\n\n case 'null':\n case 'boolean':\n case 'numeric':\n case 'string':\n value = token.value\n break\n\n // This code is unreachable.\n // default:\n // throw invalidToken()\n }\n\n if (root === undefined) {\n root = value\n } else {\n const parent = stack[stack.length - 1]\n if (Array.isArray(parent)) {\n parent.push(value)\n } else {\n Object.defineProperty(parent, key, {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n })\n }\n }\n\n if (value !== null && typeof value === 'object') {\n stack.push(value)\n\n if (Array.isArray(value)) {\n parseState = 'beforeArrayValue'\n } else {\n parseState = 'beforePropertyName'\n }\n } else {\n const current = stack[stack.length - 1]\n if (current == null) {\n parseState = 'end'\n } else if (Array.isArray(current)) {\n parseState = 'afterArrayValue'\n } else {\n parseState = 'afterPropertyValue'\n }\n }\n}\n\nfunction pop () {\n stack.pop()\n\n const current = stack[stack.length - 1]\n if (current == null) {\n parseState = 'end'\n } else if (Array.isArray(current)) {\n parseState = 'afterArrayValue'\n } else {\n parseState = 'afterPropertyValue'\n }\n}\n\n// This code is unreachable.\n// function invalidParseState () {\n// return new Error(`JSON5: invalid parse state '${parseState}'`)\n// }\n\n// This code is unreachable.\n// function invalidLexState (state) {\n// return new Error(`JSON5: invalid lex state '${state}'`)\n// }\n\nfunction invalidChar (c) {\n if (c === undefined) {\n return syntaxError(`JSON5: invalid end of input at ${line}:${column}`)\n }\n\n return syntaxError(`JSON5: invalid character '${formatChar(c)}' at ${line}:${column}`)\n}\n\nfunction invalidEOF () {\n return syntaxError(`JSON5: invalid end of input at ${line}:${column}`)\n}\n\n// This code is unreachable.\n// function invalidToken () {\n// if (token.type === 'eof') {\n// return syntaxError(`JSON5: invalid end of input at ${line}:${column}`)\n// }\n\n// const c = String.fromCodePoint(token.value.codePointAt(0))\n// return syntaxError(`JSON5: invalid character '${formatChar(c)}' at ${line}:${column}`)\n// }\n\nfunction invalidIdentifier () {\n column -= 5\n return syntaxError(`JSON5: invalid identifier character at ${line}:${column}`)\n}\n\nfunction separatorChar (c) {\n console.warn(`JSON5: '${formatChar(c)}' in strings is not valid ECMAScript; consider escaping`)\n}\n\nfunction formatChar (c) {\n const replacements = {\n \"'\": \"\\\\'\",\n '\"': '\\\\\"',\n '\\\\': '\\\\\\\\',\n '\\b': '\\\\b',\n '\\f': '\\\\f',\n '\\n': '\\\\n',\n '\\r': '\\\\r',\n '\\t': '\\\\t',\n '\\v': '\\\\v',\n '\\0': '\\\\0',\n '\\u2028': '\\\\u2028',\n '\\u2029': '\\\\u2029',\n }\n\n if (replacements[c]) {\n return replacements[c]\n }\n\n if (c < ' ') {\n const hexString = c.charCodeAt(0).toString(16)\n return '\\\\x' + ('00' + hexString).substring(hexString.length)\n }\n\n return c\n}\n\nfunction syntaxError (message) {\n const err = new SyntaxError(message)\n err.lineNumber = line\n err.columnNumber = column\n return err\n}\n", "const util = require('./util')\n\nmodule.exports = function stringify (value, replacer, space) {\n const stack = []\n let indent = ''\n let propertyList\n let replacerFunc\n let gap = ''\n let quote\n\n if (\n replacer != null &&\n typeof replacer === 'object' &&\n !Array.isArray(replacer)\n ) {\n space = replacer.space\n quote = replacer.quote\n replacer = replacer.replacer\n }\n\n if (typeof replacer === 'function') {\n replacerFunc = replacer\n } else if (Array.isArray(replacer)) {\n propertyList = []\n for (const v of replacer) {\n let item\n\n if (typeof v === 'string') {\n item = v\n } else if (\n typeof v === 'number' ||\n v instanceof String ||\n v instanceof Number\n ) {\n item = String(v)\n }\n\n if (item !== undefined && propertyList.indexOf(item) < 0) {\n propertyList.push(item)\n }\n }\n }\n\n if (space instanceof Number) {\n space = Number(space)\n } else if (space instanceof String) {\n space = String(space)\n }\n\n if (typeof space === 'number') {\n if (space > 0) {\n space = Math.min(10, Math.floor(space))\n gap = ' '.substr(0, space)\n }\n } else if (typeof space === 'string') {\n gap = space.substr(0, 10)\n }\n\n return serializeProperty('', {'': value})\n\n function serializeProperty (key, holder) {\n let value = holder[key]\n if (value != null) {\n if (typeof value.toJSON5 === 'function') {\n value = value.toJSON5(key)\n } else if (typeof value.toJSON === 'function') {\n value = value.toJSON(key)\n }\n }\n\n if (replacerFunc) {\n value = replacerFunc.call(holder, key, value)\n }\n\n if (value instanceof Number) {\n value = Number(value)\n } else if (value instanceof String) {\n value = String(value)\n } else if (value instanceof Boolean) {\n value = value.valueOf()\n }\n\n switch (value) {\n case null: return 'null'\n case true: return 'true'\n case false: return 'false'\n }\n\n if (typeof value === 'string') {\n return quoteString(value, false)\n }\n\n if (typeof value === 'number') {\n return String(value)\n }\n\n if (typeof value === 'object') {\n return Array.isArray(value) ? serializeArray(value) : serializeObject(value)\n }\n\n return undefined\n }\n\n function quoteString (value) {\n const quotes = {\n \"'\": 0.1,\n '\"': 0.2,\n }\n\n const replacements = {\n \"'\": \"\\\\'\",\n '\"': '\\\\\"',\n '\\\\': '\\\\\\\\',\n '\\b': '\\\\b',\n '\\f': '\\\\f',\n '\\n': '\\\\n',\n '\\r': '\\\\r',\n '\\t': '\\\\t',\n '\\v': '\\\\v',\n '\\0': '\\\\0',\n '\\u2028': '\\\\u2028',\n '\\u2029': '\\\\u2029',\n }\n\n let product = ''\n\n for (let i = 0; i < value.length; i++) {\n const c = value[i]\n switch (c) {\n case \"'\":\n case '\"':\n quotes[c]++\n product += c\n continue\n\n case '\\0':\n if (util.isDigit(value[i + 1])) {\n product += '\\\\x00'\n continue\n }\n }\n\n if (replacements[c]) {\n product += replacements[c]\n continue\n }\n\n if (c < ' ') {\n let hexString = c.charCodeAt(0).toString(16)\n product += '\\\\x' + ('00' + hexString).substring(hexString.length)\n continue\n }\n\n product += c\n }\n\n const quoteChar = quote || Object.keys(quotes).reduce((a, b) => (quotes[a] < quotes[b]) ? a : b)\n\n product = product.replace(new RegExp(quoteChar, 'g'), replacements[quoteChar])\n\n return quoteChar + product + quoteChar\n }\n\n function serializeObject (value) {\n if (stack.indexOf(value) >= 0) {\n throw TypeError('Converting circular structure to JSON5')\n }\n\n stack.push(value)\n\n let stepback = indent\n indent = indent + gap\n\n let keys = propertyList || Object.keys(value)\n let partial = []\n for (const key of keys) {\n const propertyString = serializeProperty(key, value)\n if (propertyString !== undefined) {\n let member = serializeKey(key) + ':'\n if (gap !== '') {\n member += ' '\n }\n member += propertyString\n partial.push(member)\n }\n }\n\n let final\n if (partial.length === 0) {\n final = '{}'\n } else {\n let properties\n if (gap === '') {\n properties = partial.join(',')\n final = '{' + properties + '}'\n } else {\n let separator = ',\\n' + indent\n properties = partial.join(separator)\n final = '{\\n' + indent + properties + ',\\n' + stepback + '}'\n }\n }\n\n stack.pop()\n indent = stepback\n return final\n }\n\n function serializeKey (key) {\n if (key.length === 0) {\n return quoteString(key, true)\n }\n\n const firstChar = String.fromCodePoint(key.codePointAt(0))\n if (!util.isIdStartChar(firstChar)) {\n return quoteString(key, true)\n }\n\n for (let i = firstChar.length; i < key.length; i++) {\n if (!util.isIdContinueChar(String.fromCodePoint(key.codePointAt(i)))) {\n return quoteString(key, true)\n }\n }\n\n return key\n }\n\n function serializeArray (value) {\n if (stack.indexOf(value) >= 0) {\n throw TypeError('Converting circular structure to JSON5')\n }\n\n stack.push(value)\n\n let stepback = indent\n indent = indent + gap\n\n let partial = []\n for (let i = 0; i < value.length; i++) {\n const propertyString = serializeProperty(String(i), value)\n partial.push((propertyString !== undefined) ? propertyString : 'null')\n }\n\n let final\n if (partial.length === 0) {\n final = '[]'\n } else {\n if (gap === '') {\n let properties = partial.join(',')\n final = '[' + properties + ']'\n } else {\n let separator = ',\\n' + indent\n let properties = partial.join(separator)\n final = '[\\n' + indent + properties + ',\\n' + stepback + ']'\n }\n }\n\n stack.pop()\n indent = stepback\n return final\n }\n}\n", "const parse = require('./parse')\nconst stringify = require('./stringify')\n\nconst JSON5 = {\n parse,\n stringify,\n}\n\nmodule.exports = JSON5\n", "'use strict';\nmodule.exports = x => {\n\tif (typeof x !== 'string') {\n\t\tthrow new TypeError('Expected a string, got ' + typeof x);\n\t}\n\n\t// Catches EFBBBF (UTF-8 BOM) because the buffer-to-string\n\t// conversion translates it to FEFF (UTF-16 BOM)\n\tif (x.charCodeAt(0) === 0xFEFF) {\n\t\treturn x.slice(1);\n\t}\n\n\treturn x;\n};\n", "import * as path from \"path\";\nimport * as fs from \"fs\";\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nimport JSON5 = require(\"json5\");\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nimport StripBom = require(\"strip-bom\");\n\n/**\n * Typing for the parts of tsconfig that we care about\n */\nexport interface Tsconfig {\n extends?: string | string[];\n compilerOptions?: {\n baseUrl?: string;\n paths?: { [key: string]: Array<string> };\n strict?: boolean;\n };\n}\n\nexport interface TsConfigLoaderResult {\n tsConfigPath: string | undefined;\n baseUrl: string | undefined;\n paths: { [key: string]: Array<string> } | undefined;\n}\n\nexport interface TsConfigLoaderParams {\n getEnv: (key: string) => string | undefined;\n cwd: string;\n loadSync?(\n cwd: string,\n filename?: string,\n baseUrl?: string\n ): TsConfigLoaderResult;\n}\n\nexport function tsConfigLoader({\n getEnv,\n cwd,\n loadSync = loadSyncDefault,\n}: TsConfigLoaderParams): TsConfigLoaderResult {\n const TS_NODE_PROJECT = getEnv(\"TS_NODE_PROJECT\");\n const TS_NODE_BASEURL = getEnv(\"TS_NODE_BASEURL\");\n\n // tsconfig.loadSync handles if TS_NODE_PROJECT is a file or directory\n // and also overrides baseURL if TS_NODE_BASEURL is available.\n const loadResult = loadSync(cwd, TS_NODE_PROJECT, TS_NODE_BASEURL);\n return loadResult;\n}\n\nfunction loadSyncDefault(\n cwd: string,\n filename?: string,\n baseUrl?: string\n): TsConfigLoaderResult {\n // Tsconfig.loadSync uses path.resolve. This is why we can use an absolute path as filename\n\n const configPath = resolveConfigPath(cwd, filename);\n\n if (!configPath) {\n return {\n tsConfigPath: undefined,\n baseUrl: undefined,\n paths: undefined,\n };\n }\n const config = loadTsconfig(configPath);\n\n return {\n tsConfigPath: configPath,\n baseUrl:\n baseUrl ||\n (config && config.compilerOptions && config.compilerOptions.baseUrl),\n paths: config && config.compilerOptions && config.compilerOptions.paths,\n };\n}\n\nfunction resolveConfigPath(cwd: string, filename?: string): string | undefined {\n if (filename) {\n const absolutePath = fs.lstatSync(filename).isDirectory()\n ? path.resolve(filename, \"./tsconfig.json\")\n : path.resolve(cwd, filename);\n\n return absolutePath;\n }\n\n if (fs.statSync(cwd).isFile()) {\n return path.resolve(cwd);\n }\n\n const configAbsolutePath = walkForTsConfig(cwd);\n return configAbsolutePath ? path.resolve(configAbsolutePath) : undefined;\n}\nexport function walkForTsConfig(\n directory: string,\n readdirSync: (path: string) => string[] = fs.readdirSync\n): string | undefined {\n const files = readdirSync(directory);\n const filesToCheck = [\"tsconfig.json\", \"jsconfig.json\"];\n for (const fileToCheck of filesToCheck) {\n if (files.indexOf(fileToCheck) !== -1) {\n return path.join(directory, fileToCheck);\n }\n }\n\n const parentDirectory = path.dirname(directory);\n\n // If we reached the top\n if (directory === parentDirectory) {\n return undefined;\n }\n\n return walkForTsConfig(parentDirectory, readdirSync);\n}\n\nexport function loadTsconfig(\n configFilePath: string,\n // eslint-disable-next-line no-shadow\n existsSync: (path: string) => boolean = fs.existsSync,\n readFileSync: (filename: string) => string = (filename: string) =>\n fs.readFileSync(filename, \"utf8\")\n): Tsconfig | undefined {\n if (!existsSync(configFilePath)) {\n return undefined;\n }\n\n const configString = readFileSync(configFilePath);\n const cleanedJson = StripBom(configString);\n let config: Tsconfig;\n try {\n config = JSON5.parse(cleanedJson);\n } catch (e) {\n throw new Error(`${configFilePath} is malformed ${e.message}`);\n }\n\n let extendedConfig = config.extends;\n if (extendedConfig) {\n let base: Tsconfig;\n\n if (Array.isArray(extendedConfig)) {\n base = extendedConfig.reduce(\n (currBase, extendedConfigElement) =>\n mergeTsconfigs(\n currBase,\n loadTsconfigFromExtends(\n configFilePath,\n extendedConfigElement,\n existsSync,\n readFileSync\n )\n ),\n {}\n );\n } else {\n base = loadTsconfigFromExtends(\n configFilePath,\n extendedConfig,\n existsSync,\n readFileSync\n );\n }\n\n return mergeTsconfigs(base, config);\n }\n return config;\n}\n\n/**\n * Intended to be called only from loadTsconfig.\n * Parameters don't have defaults because they should use the same as loadTsconfig.\n */\nfunction loadTsconfigFromExtends(\n configFilePath: string,\n extendedConfigValue: string,\n // eslint-disable-next-line no-shadow\n existsSync: (path: string) => boolean,\n readFileSync: (filename: string) => string\n): Tsconfig {\n if (\n typeof extendedConfigValue === \"string\" &&\n extendedConfigValue.indexOf(\".json\") === -1\n ) {\n extendedConfigValue += \".json\";\n }\n const currentDir = path.dirname(configFilePath);\n let extendedConfigPath = path.join(currentDir, extendedConfigValue);\n if (\n extendedConfigValue.indexOf(\"/\") !== -1 &&\n extendedConfigValue.indexOf(\".\") !== -1 &&\n !existsSync(extendedConfigPath)\n ) {\n extendedConfigPath = path.join(\n currentDir,\n \"node_modules\",\n extendedConfigValue\n );\n }\n\n const config =\n loadTsconfig(extendedConfigPath, existsSync, readFileSync) || {};\n\n // baseUrl should be interpreted as relative to extendedConfigPath,\n // but we need to update it so it is relative to the original tsconfig being loaded\n if (config.compilerOptions?.baseUrl) {\n const extendsDir = path.dirname(extendedConfigValue);\n config.compilerOptions.baseUrl = path.join(\n extendsDir,\n config.compilerOptions.baseUrl\n );\n }\n\n return config;\n}\n\nfunction mergeTsconfigs(\n base: Tsconfig | undefined,\n config: Tsconfig | undefined\n): Tsconfig {\n base = base || {};\n config = config || {};\n\n return {\n ...base,\n ...config,\n compilerOptions: {\n ...base.compilerOptions,\n ...config.compilerOptions,\n },\n };\n}\n", "import * as TsConfigLoader2 from \"./tsconfig-loader\";\nimport * as path from \"path\";\n\nexport interface ExplicitParams {\n baseUrl: string;\n paths: { [key: string]: Array<string> };\n mainFields?: (string | string[])[];\n addMatchAll?: boolean;\n}\n\nexport type TsConfigLoader = (\n params: TsConfigLoader2.TsConfigLoaderParams\n) => TsConfigLoader2.TsConfigLoaderResult;\n\nexport interface ConfigLoaderParams {\n cwd: string;\n explicitParams?: ExplicitParams;\n tsConfigLoader?: TsConfigLoader;\n}\n\nexport interface ConfigLoaderSuccessResult {\n resultType: \"success\";\n configFileAbsolutePath: string;\n baseUrl?: string;\n absoluteBaseUrl: string;\n paths: { [key: string]: Array<string> };\n mainFields?: (string | string[])[];\n addMatchAll?: boolean;\n}\n\nexport interface ConfigLoaderFailResult {\n resultType: \"failed\";\n message: string;\n}\n\nexport type ConfigLoaderResult =\n | ConfigLoaderSuccessResult\n | ConfigLoaderFailResult;\n\nexport function loadConfig(cwd: string = process.cwd()): ConfigLoaderResult {\n return configLoader({ cwd });\n}\n\nexport function configLoader({\n cwd,\n explicitParams,\n tsConfigLoader = TsConfigLoader2.tsConfigLoader,\n}: ConfigLoaderParams): ConfigLoaderResult {\n if (explicitParams) {\n const absoluteBaseUrl = path.isAbsolute(explicitParams.baseUrl)\n ? explicitParams.baseUrl\n : path.join(cwd, explicitParams.baseUrl);\n\n return {\n resultType: \"success\",\n configFileAbsolutePath: \"\",\n baseUrl: explicitParams.baseUrl,\n absoluteBaseUrl,\n paths: explicitParams.paths,\n mainFields: explicitParams.mainFields,\n addMatchAll: explicitParams.addMatchAll,\n };\n }\n\n // Load tsconfig and create path matching function\n const loadResult = tsConfigLoader({\n cwd,\n getEnv: (key: string) => process.env[key],\n });\n\n if (!loadResult.tsConfigPath) {\n return {\n resultType: \"failed\",\n message: \"Couldn't find tsconfig.json\",\n };\n }\n\n return {\n resultType: \"success\",\n configFileAbsolutePath: loadResult.tsConfigPath,\n baseUrl: loadResult.baseUrl,\n absoluteBaseUrl: path.resolve(\n path.dirname(loadResult.tsConfigPath),\n loadResult.baseUrl || \"\"\n ),\n paths: loadResult.paths || {},\n addMatchAll: loadResult.baseUrl !== undefined,\n };\n}\n", "'use strict';\n\nfunction hasKey(obj, keys) {\n\tvar o = obj;\n\tkeys.slice(0, -1).forEach(function (key) {\n\t\to = o[key] || {};\n\t});\n\n\tvar key = keys[keys.length - 1];\n\treturn key in o;\n}\n\nfunction isNumber(x) {\n\tif (typeof x === 'number') { return true; }\n\tif ((/^0x[0-9a-f]+$/i).test(x)) { return true; }\n\treturn (/^[-+]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(e[-+]?\\d+)?$/).test(x);\n}\n\nfunction isConstructorOrProto(obj, key) {\n\treturn (key === 'constructor' && typeof obj[key] === 'function') || key === '__proto__';\n}\n\nmodule.exports = function (args, opts) {\n\tif (!opts) { opts = {}; }\n\n\tvar flags = {\n\t\tbools: {},\n\t\tstrings: {},\n\t\tunknownFn: null,\n\t};\n\n\tif (typeof opts.unknown === 'function') {\n\t\tflags.unknownFn = opts.unknown;\n\t}\n\n\tif (typeof opts.boolean === 'boolean' && opts.boolean) {\n\t\tflags.allBools = true;\n\t} else {\n\t\t[].concat(opts.boolean).filter(Boolean).forEach(function (key) {\n\t\t\tflags.bools[key] = true;\n\t\t});\n\t}\n\n\tvar aliases = {};\n\n\tfunction aliasIsBoolean(key) {\n\t\treturn aliases[key].some(function (x) {\n\t\t\treturn flags.bools[x];\n\t\t});\n\t}\n\n\tObject.keys(opts.alias || {}).forEach(function (key) {\n\t\taliases[key] = [].concat(opts.alias[key]);\n\t\taliases[key].forEach(function (x) {\n\t\t\taliases[x] = [key].concat(aliases[key].filter(function (y) {\n\t\t\t\treturn x !== y;\n\t\t\t}));\n\t\t});\n\t});\n\n\t[].concat(opts.string).filter(Boolean).forEach(function (key) {\n\t\tflags.strings[key] = true;\n\t\tif (aliases[key]) {\n\t\t\t[].concat(aliases[key]).forEach(function (k) {\n\t\t\t\tflags.strings[k] = true;\n\t\t\t});\n\t\t}\n\t});\n\n\tvar defaults = opts.default || {};\n\n\tvar argv = { _: [] };\n\n\tfunction argDefined(key, arg) {\n\t\treturn (flags.allBools && (/^--[^=]+$/).test(arg))\n\t\t\t|| flags.strings[key]\n\t\t\t|| flags.bools[key]\n\t\t\t|| aliases[key];\n\t}\n\n\tfunction setKey(obj, keys, value) {\n\t\tvar o = obj;\n\t\tfor (var i = 0; i < keys.length - 1; i++) {\n\t\t\tvar key = keys[i];\n\t\t\tif (isConstructorOrProto(o, key)) { return; }\n\t\t\tif (o[key] === undefined) { o[key] = {}; }\n\t\t\tif (\n\t\t\t\to[key] === Object.prototype\n\t\t\t\t|| o[key] === Number.prototype\n\t\t\t\t|| o[key] === String.prototype\n\t\t\t) {\n\t\t\t\to[key] = {};\n\t\t\t}\n\t\t\tif (o[key] === Array.prototype) { o[key] = []; }\n\t\t\to = o[key];\n\t\t}\n\n\t\tvar lastKey = keys[keys.length - 1];\n\t\tif (isConstructorOrProto(o, lastKey)) { return; }\n\t\tif (\n\t\t\to === Object.prototype\n\t\t\t|| o === Number.prototype\n\t\t\t|| o === String.prototype\n\t\t) {\n\t\t\to = {};\n\t\t}\n\t\tif (o === Array.prototype) { o = []; }\n\t\tif (o[lastKey] === undefined || flags.bools[lastKey] || typeof o[lastKey] === 'boolean') {\n\t\t\to[lastKey] = value;\n\t\t} else if (Array.isArray(o[lastKey])) {\n\t\t\to[lastKey].push(value);\n\t\t} else {\n\t\t\to[lastKey] = [o[lastKey], value];\n\t\t}\n\t}\n\n\tfunction setArg(key, val, arg) {\n\t\tif (arg && flags.unknownFn && !argDefined(key, arg)) {\n\t\t\tif (flags.unknownFn(arg) === false) { return; }\n\t\t}\n\n\t\tvar value = !flags.strings[key] && isNumber(val)\n\t\t\t? Number(val)\n\t\t\t: val;\n\t\tsetKey(argv, key.split('.'), value);\n\n\t\t(aliases[key] || []).forEach(function (x) {\n\t\t\tsetKey(argv, x.split('.'), value);\n\t\t});\n\t}\n\n\tObject.keys(flags.bools).forEach(function (key) {\n\t\tsetArg(key, defaults[key] === undefined ? false : defaults[key]);\n\t});\n\n\tvar notFlags = [];\n\n\tif (args.indexOf('--') !== -1) {\n\t\tnotFlags = args.slice(args.indexOf('--') + 1);\n\t\targs = args.slice(0, args.indexOf('--'));\n\t}\n\n\tfor (var i = 0; i < args.length; i++) {\n\t\tvar arg = args[i];\n\t\tvar key;\n\t\tvar next;\n\n\t\tif ((/^--.+=/).test(arg)) {\n\t\t\t// Using [\\s\\S] instead of . because js doesn't support the\n\t\t\t// 'dotall' regex modifier. See:\n\t\t\t// http://stackoverflow.com/a/1068308/13216\n\t\t\tvar m = arg.match(/^--([^=]+)=([\\s\\S]*)$/);\n\t\t\tkey = m[1];\n\t\t\tvar value = m[2];\n\t\t\tif (flags.bools[key]) {\n\t\t\t\tvalue = value !== 'false';\n\t\t\t}\n\t\t\tsetArg(key, value, arg);\n\t\t} else if ((/^--no-.+/).test(arg)) {\n\t\t\tkey = arg.match(/^--no-(.+)/)[1];\n\t\t\tsetArg(key, false, arg);\n\t\t} else if ((/^--.+/).test(arg)) {\n\t\t\tkey = arg.match(/^--(.+)/)[1];\n\t\t\tnext = args[i + 1];\n\t\t\tif (\n\t\t\t\tnext !== undefined\n\t\t\t\t&& !(/^(-|--)[^-]/).test(next)\n\t\t\t\t&& !flags.bools[key]\n\t\t\t\t&& !flags.allBools\n\t\t\t\t&& (aliases[key] ? !aliasIsBoolean(key) : true)\n\t\t\t) {\n\t\t\t\tsetArg(key, next, arg);\n\t\t\t\ti += 1;\n\t\t\t} else if ((/^(true|false)$/).test(next)) {\n\t\t\t\tsetArg(key, next === 'true', arg);\n\t\t\t\ti += 1;\n\t\t\t} else {\n\t\t\t\tsetArg(key, flags.strings[key] ? '' : true, arg);\n\t\t\t}\n\t\t} else if ((/^-[^-]+/).test(arg)) {\n\t\t\tvar letters = arg.slice(1, -1).split('');\n\n\t\t\tvar broken = false;\n\t\t\tfor (var j = 0; j < letters.length; j++) {\n\t\t\t\tnext = arg.slice(j + 2);\n\n\t\t\t\tif (next === '-') {\n\t\t\t\t\tsetArg(letters[j], next, arg);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif ((/[A-Za-z]/).test(letters[j]) && next[0] === '=') {\n\t\t\t\t\tsetArg(letters[j], next.slice(1), arg);\n\t\t\t\t\tbroken = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(/[A-Za-z]/).test(letters[j])\n\t\t\t\t\t&& (/-?\\d+(\\.\\d*)?(e-?\\d+)?$/).test(next)\n\t\t\t\t) {\n\t\t\t\t\tsetArg(letters[j], next, arg);\n\t\t\t\t\tbroken = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (letters[j + 1] && letters[j + 1].match(/\\W/)) {\n\t\t\t\t\tsetArg(letters[j], arg.slice(j + 2), arg);\n\t\t\t\t\tbroken = true;\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\tsetArg(letters[j], flags.strings[letters[j]] ? '' : true, arg);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tkey = arg.slice(-1)[0];\n\t\t\tif (!broken && key !== '-') {\n\t\t\t\tif (\n\t\t\t\t\targs[i + 1]\n\t\t\t\t\t&& !(/^(-|--)[^-]/).test(args[i + 1])\n\t\t\t\t\t&& !flags.bools[key]\n\t\t\t\t\t&& (aliases[key] ? !aliasIsBoolean(key) : true)\n\t\t\t\t) {\n\t\t\t\t\tsetArg(key, args[i + 1], arg);\n\t\t\t\t\ti += 1;\n\t\t\t\t} else if (args[i + 1] && (/^(true|false)$/).test(args[i + 1])) {\n\t\t\t\t\tsetArg(key, args[i + 1] === 'true', arg);\n\t\t\t\t\ti += 1;\n\t\t\t\t} else {\n\t\t\t\t\tsetArg(key, flags.strings[key] ? '' : true, arg);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (!flags.unknownFn || flags.unknownFn(arg) !== false) {\n\t\t\t\targv._.push(flags.strings._ || !isNumber(arg) ? arg : Number(arg));\n\t\t\t}\n\t\t\tif (opts.stopEarly) {\n\t\t\t\targv._.push.apply(argv._, args.slice(i + 1));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tObject.keys(defaults).forEach(function (k) {\n\t\tif (!hasKey(argv, k.split('.'))) {\n\t\t\tsetKey(argv, k.split('.'), defaults[k]);\n\n\t\t\t(aliases[k] || []).forEach(function (x) {\n\t\t\t\tsetKey(argv, x.split('.'), defaults[k]);\n\t\t\t});\n\t\t}\n\t});\n\n\tif (opts['--']) {\n\t\targv['--'] = notFlags.slice();\n\t} else {\n\t\tnotFlags.forEach(function (k) {\n\t\t\targv._.push(k);\n\t\t});\n\t}\n\n\treturn argv;\n};\n", "import { createMatchPath } from \"./match-path-sync\";\nimport { configLoader, ExplicitParams } from \"./config-loader\";\n\nconst noOp = (): void => void 0;\n\nfunction getCoreModules(\n builtinModules: string[] | undefined\n): { [key: string]: boolean } {\n builtinModules = builtinModules || [\n \"assert\",\n \"buffer\",\n \"child_process\",\n \"cluster\",\n \"crypto\",\n \"dgram\",\n \"dns\",\n \"domain\",\n \"events\",\n \"fs\",\n \"http\",\n \"https\",\n \"net\",\n \"os\",\n \"path\",\n \"punycode\",\n \"querystring\",\n \"readline\",\n \"stream\",\n \"string_decoder\",\n \"tls\",\n \"tty\",\n \"url\",\n \"util\",\n \"v8\",\n \"vm\",\n \"zlib\",\n ];\n\n const coreModules: { [key: string]: boolean } = {};\n for (let module of builtinModules) {\n coreModules[module] = true;\n }\n\n return coreModules;\n}\n\nexport interface RegisterParams extends ExplicitParams {\n /**\n * Defaults to `--project` CLI flag or `process.cwd()`\n */\n cwd?: string;\n}\n\n/**\n * Installs a custom module load function that can adhere to paths in tsconfig.\n * Returns a function to undo paths registration.\n */\nexport function register(params?: RegisterParams): () => void {\n let cwd: string | undefined;\n let explicitParams: ExplicitParams | undefined;\n if (params) {\n cwd = params.cwd;\n if (params.baseUrl || params.paths) {\n explicitParams = params;\n }\n } else {\n // eslint-disable-next-line\n const minimist = require(\"minimist\");\n const argv = minimist(process.argv.slice(2), {\n // eslint-disable-next-line id-denylist\n string: [\"project\"],\n alias: {\n project: [\"P\"],\n },\n });\n cwd = argv.project;\n }\n\n const configLoaderResult = configLoader({\n cwd: cwd ?? process.cwd(),\n explicitParams,\n });\n\n if (configLoaderResult.resultType === \"failed\") {\n console.warn(\n `${configLoaderResult.message}. tsconfig-paths will be skipped`\n );\n\n return noOp;\n }\n\n const matchPath = createMatchPath(\n configLoaderResult.absoluteBaseUrl,\n configLoaderResult.paths,\n configLoaderResult.mainFields,\n configLoaderResult.addMatchAll\n );\n\n // Patch node's module loading\n // eslint-disable-next-line @typescript-eslint/no-require-imports,@typescript-eslint/no-var-requires\n const Module = require(\"module\");\n // eslint-disable-next-line no-underscore-dangle\n const originalResolveFilename = Module._resolveFilename;\n const coreModules = getCoreModules(Module.builtinModules);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any,no-underscore-dangle\n Module._resolveFilename = function (request: string, _parent: any): string {\n const isCoreModule = coreModules.hasOwnProperty(request);\n if (!isCoreModule) {\n const found = matchPath(request);\n if (found) {\n const modifiedArguments = [found, ...[].slice.call(arguments, 1)]; // Passes all arguments. Even those that is not specified above.\n return originalResolveFilename.apply(this, modifiedArguments);\n }\n }\n return originalResolveFilename.apply(this, arguments);\n };\n\n return () => {\n // Return node's module loading to original state.\n // eslint-disable-next-line no-underscore-dangle\n Module._resolveFilename = originalResolveFilename;\n };\n}\n", "// register is used from register.js in root dir\nexport {\n createMatchPath,\n matchFromAbsolutePaths,\n MatchPath,\n} from \"./match-path-sync\";\nexport {\n createMatchPathAsync,\n matchFromAbsolutePathsAsync,\n MatchPathAsync,\n} from \"./match-path-async\";\nexport { register } from \"./register\";\nexport {\n loadConfig,\n ConfigLoaderResult,\n ConfigLoaderSuccessResult,\n ConfigLoaderFailResult,\n} from \"./config-loader\";\nexport {\n ReadJsonSync,\n ReadJsonAsync,\n FileExistsSync,\n FileExistsAsync,\n} from \"./filesystem\";\n", "#!/usr/bin/env node\nimport { Command } from \"commander\";\nimport { select } from \"@inquirer/prompts\";\n\nimport pkg from \"../../package.json\";\nimport { generate } from \"commands/generate\";\nimport { init } from \"commands/init\";\nimport { handleError } from \"utils/handle-error\";\n\nconst program = new Command();\n\nprogram.name(\"hyper-fetch\").description(\"CLI for Hyper Fetch\").version(pkg.version);\n\nconst commands = {\n init,\n // add,\n generate,\n};\n\nObject.values(commands).forEach((command) => {\n program.addCommand(command);\n});\n\nconst main = async () => {\n try {\n let chosenCommand: string | undefined;\n\n if (process.argv[2] && Object.keys(commands).includes(process.argv[2])) {\n const command = commands[process.argv[2] as keyof typeof commands]!;\n chosenCommand = command.name();\n }\n\n if (!chosenCommand) {\n chosenCommand = await select({\n message: \"What do you want to do?\",\n choices: program.commands.map((cmd) => ({\n name: cmd.name(),\n value: cmd.name(),\n description: cmd.description(),\n })),\n });\n }\n\n await program.parseAsync([process.argv[0], process.argv[1], chosenCommand]);\n } catch (e) {\n handleError(e);\n if (e instanceof Error) {\n if (e.message.includes(\"User force closed the prompt\")) {\n process.exit(0);\n }\n }\n process.exit(1);\n }\n};\n\nmain();\n", "{\n \"name\": \"@hyper-fetch/cli\",\n \"version\": \"0.0.0\",\n \"description\": \"Hyper Fetch cli for code generation and utilities\",\n \"author\": \"Maciej Pyrc <maciekpyrc@gmail.com>, Kacper Skawina <kacper.skawina@gmail.com>\",\n \"homepage\": \"https://hyperfetch.bettertyped.com/\",\n \"license\": \"Apache-2.0\",\n \"main\": \"dist/index.js\",\n \"module\": \"dist/index.js\",\n \"types\": \"dist/index.d.ts\",\n \"source\": \"src/index.ts\",\n \"cli\": \"src/cli/index.ts\",\n \"climain\": \"dist/index.js\",\n \"bin\": \"dist/index.js\",\n \"scripts\": {\n \"clean\": \"npx rimraf dist\",\n \"test\": \"node --experimental-vm-modules ../../node_modules/jest/bin/jest --watchAll --maxWorkers=3 --forceExit\",\n \"test:pipeline\": \"node --experimental-vm-modules ../../node_modules/jest/bin/jest --watchAll=false --maxWorkers=1 --no-cache --forceExit\",\n \"dev\": \"npx tsx ./src/cli/index.ts\",\n \"prebuild\": \"yarn update:version\",\n \"build\": \"yarn clean && node ../../scripts/build.js\",\n \"postbuild\": \"yarn rollup -c ../../rollup.config.js\",\n \"update:version\": \"node ../../scripts/update-package-version.js --prefix hyper-fetch-cli-v\",\n \"lint\": \"eslint . --ext .js,.jsx,.tsx,.ts --fix\",\n \"format\": \"prettier --write .\",\n \"typescheck\": \"tsc --noEmit --emitDeclarationOnly false\",\n \"tests\": \"yarn lint-staged\",\n \"release\": \"yarn semantic-release --extends ../../release.config.js -t 'hyper-fetch-cli-v${version}'\"\n },\n \"publishConfig\": {\n \"access\": \"public\",\n \"registry\": \"https://registry.npmjs.com/\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/BetterTyped/hyper-fetch.git\",\n \"directory\": \"packages/cli\"\n },\n \"bugs\": {\n \"url\": \"https://github.com/BetterTyped/hyper-fetch/issues\"\n },\n \"dependencies\": {\n \"@anttiviljami/dtsgenerator\": \"^3.20.0\",\n \"@apidevtools/json-schema-ref-parser\": \"^11.9.3\",\n \"@hyper-fetch/core\": \"*\",\n \"@inquirer/prompts\": \"^7.6.0\",\n \"chalk\": \"^5.4.1\",\n \"cli-table3\": \"^0.6.5\",\n \"commander\": \"^11.0.0\",\n \"execa\": \"^8.0.1\",\n \"fs-extra\": \"^11.3.0\",\n \"lodash\": \"^4.17.21\",\n \"openapi-types\": \"^12.1.3\",\n \"ora\": \"^8.2.0\",\n \"prettier\": \"^3.6.2\",\n \"react\": \"^19.1.0\",\n \"react-dom\": \"^19.1.0\",\n \"zod\": \"^4.0.2\"\n },\n \"devDependencies\": {\n \"@types/fs-extra\": \"^11.0.4\",\n \"abortcontroller-polyfill\": \"^1.7.5\"\n },\n \"lint-staged\": {\n \"*.{js,jsx,ts,tsx}\": [\n \"yarn jest --passWithNoTests\"\n ]\n },\n \"keywords\": [\n \"codegen\",\n \"openapi\",\n \"hyper fetch\",\n \"swagger\",\n \"openapi schema\",\n \"code generator\"\n ]\n}\n", "/* eslint-disable no-param-reassign */\nimport { Command } from \"commander\";\nimport { z } from \"zod\";\nimport * as path from \"node:path\";\nimport * as fs from \"fs-extra\";\nimport { input, select, confirm } from \"@inquirer/prompts\";\n\nimport { handleError } from \"utils/handle-error\";\nimport { preFlightGenerate } from \"preflights/preflight-generate\";\nimport { OpenapiRequestGenerator } from \"codegen/openapi/generator\";\nimport { spinner } from \"utils/spinner\";\nimport { logger } from \"utils/logger\";\nimport { showHelp } from \"utils/show-help\";\n\nexport const generateOptionsSchema = z.object({\n template: z.enum([\"openapi\", \"swagger\"]).describe(\"API provider template to use\"),\n url: z.string().describe(\"The URL to generate the schema from\"),\n fileName: z.string().describe(\"The output file for the SDK.\"),\n cwd: z.string().describe(\"The working directory. defaults to the current directory.\"),\n overwrite: z.boolean().optional().describe(\"Overwrite existing files.\"),\n});\n\nexport const generate = new Command()\n .name(\"Generate\")\n .description(\"Generate SDK from a schema, url or service\")\n .option(\"-t, --template <template>\", \"API provider template to use\")\n .option(\"-u, --url <url>\", \"The URL to generate the schema from\")\n .option(\"-f, --fileName <fileName>\", \"The output file for the SDK.\")\n .option(\"-o, --overwrite\", \"overwrite existing files.\")\n .option(\"-c, --cwd <cwd>\", \"the working directory. defaults to the current directory.\", process.cwd())\n .option(\"-h, --help <help>\", \"display help for command\")\n .action(async (opts: z.infer<typeof generateOptionsSchema>) => {\n try {\n const help = process.argv.includes(\"--help\") || process.argv.includes(\"-h\");\n\n if (help) {\n return showHelp(generateOptionsSchema);\n }\n const { config } = await preFlightGenerate(opts);\n\n if (!opts.template) {\n opts.template = await select({\n message: \"What source we want to use?\",\n choices: [\n { name: \"OpenAPI (v3)\", value: \"openapi\" },\n { name: \"Swagger\", value: \"swagger\" },\n ],\n });\n }\n\n if (!opts.url) {\n opts.url = await input({\n message: \"Enter the URL to generate the schema from:\",\n validate: (value) => {\n const result = z.url(\"Please enter a valid URL.\").safeParse(value);\n if (result.success) return true;\n return result.error.message;\n },\n });\n }\n\n if (!opts.fileName) {\n opts.fileName = await input({\n message: \"Enter the file name for the SDK:\",\n default: `api-${opts.template}.sdk.ts`,\n });\n }\n\n const fileExists = fs.existsSync(path.join(opts.cwd, opts.fileName));\n if (opts.overwrite === undefined && fileExists) {\n opts.overwrite = await confirm({ message: \"Overwrite existing files?\" });\n }\n\n if (opts.overwrite === false && fileExists) {\n return logger.info(`File ${opts.fileName} already exists. Use --overwrite to overwrite.`);\n }\n\n const options = generateOptionsSchema.parse(opts);\n\n const componentSpinner = spinner(`Writing ${options.fileName}...`).start();\n switch (options.template) {\n case \"openapi\": {\n const openapiSchema = await OpenapiRequestGenerator.getSchemaFromUrl({ url: options.url!, config });\n const generator = new OpenapiRequestGenerator(openapiSchema);\n await generator.generateFile({ fileName: options.fileName, config });\n componentSpinner.succeed();\n return process.exit(0);\n }\n case \"swagger\": {\n const openapiSchema = await OpenapiRequestGenerator.getSchemaFromUrl({ url: options.url!, config });\n const generator = new OpenapiRequestGenerator(openapiSchema);\n await generator.generateFile({ fileName: options.fileName, config });\n componentSpinner.succeed();\n return process.exit(0);\n }\n default: {\n componentSpinner.fail();\n throw new Error(`Invalid template: ${options.template}`);\n }\n }\n } catch (err) {\n handleError(err);\n }\n });\n", "import chalk from \"chalk\";\nimport { z } from \"zod\";\n\nimport { logger } from \"utils/logger\";\n\nexport function handleError(error: unknown) {\n logger.break();\n logger.error(`Something went wrong. Please check the error below for more details.`);\n logger.error(`If the problem persists, please open an issue on GitHub.`);\n logger.break();\n if (typeof error === \"string\") {\n logger.error(error);\n logger.break();\n process.exit(1);\n }\n\n if (error instanceof z.ZodError) {\n logger.error(\"Validation failed:\");\n // eslint-disable-next-line no-restricted-syntax\n for (const [key, value] of Object.entries(error.flatten().fieldErrors)) {\n logger.error(`- ${chalk.cyan(key)}: ${value}`);\n }\n logger.break();\n process.exit(1);\n }\n\n if (error instanceof Error) {\n logger.error(error.message);\n logger.break();\n process.exit(1);\n }\n\n logger.error(JSON.stringify({ error }));\n\n logger.break();\n process.exit(1);\n}\n", "/* eslint-disable no-console */\nimport chalk from \"chalk\";\n\nexport const logger = {\n info(...args: unknown[]) {\n console.log(chalk.cyan(\"\u2139\"), chalk.blue.bold(\"info\"), ...args);\n },\n warn(...args: unknown[]) {\n console.log(chalk.yellow(\"\u26A0\"), chalk.yellow.bold(\"warn\"), ...args);\n },\n error(...args: unknown[]) {\n console.log(chalk.red(\"\u2716\"), chalk.red.bold(\"error\"), ...args);\n },\n success(...args: unknown[]) {\n console.log(chalk.green(\"\u2714\"), chalk.green.bold(\"success\"), ...args);\n },\n break() {\n console.log(\"\");\n },\n};\n", "import * as path from \"node:path\";\nimport * as fs from \"fs-extra\";\nimport { z } from \"zod\";\n\nimport { generateOptionsSchema } from \"commands/generate\";\nimport * as ERRORS from \"utils/errors\";\nimport { getConfig } from \"config/get-config\";\nimport { Config } from \"config/schema\";\nimport { highlighter } from \"utils/highlighter\";\nimport { logger } from \"utils/logger\";\nimport { handleError } from \"utils/handle-error\";\n\nexport async function preFlightGenerate(options: z.infer<typeof generateOptionsSchema>): Promise<{\n errors: Record<string, boolean>;\n config: Config;\n}> {\n const errors: Record<string, boolean> = {};\n\n // Ensure target directory exists.\n // Check for empty project. We assume if no package.json exists, the project is empty.\n if (!fs.existsSync(options.cwd) || !fs.existsSync(path.resolve(options.cwd, \"package.json\"))) {\n errors[ERRORS.MISSING_DIR_OR_EMPTY_PROJECT] = true;\n\n handleError(errors);\n }\n\n try {\n const config = await getConfig(options.cwd);\n\n return {\n errors,\n config: config!,\n };\n } catch (error) {\n logger.break();\n logger.error(\n `An invalid ${highlighter.info(\"api.json\")} file was found at ${highlighter.info(\n options.cwd,\n )}.\\nBefore you can add SDKs, you must create a valid ${highlighter.info(\n \"api.json\",\n )} file by running the ${highlighter.info(\"init\")} command.`,\n );\n logger.break();\n process.exit(1);\n }\n}\n", "export const MISSING_DIR_OR_EMPTY_PROJECT = \"1\";\nexport const EXISTING_CONFIG = \"2\";\nexport const MISSING_CONFIG = \"3\";\nexport const FAILED_CONFIG_READ = \"4\";\nexport const TAILWIND_NOT_CONFIGURED = \"5\";\nexport const IMPORT_ALIAS_MISSING = \"6\";\nexport const UNSUPPORTED_FRAMEWORK = \"7\";\nexport const COMPONENT_URL_NOT_FOUND = \"8\";\nexport const COMPONENT_URL_UNAUTHORIZED = \"9\";\nexport const COMPONENT_URL_FORBIDDEN = \"10\";\nexport const COMPONENT_URL_BAD_REQUEST = \"11\";\nexport const COMPONENT_URL_INTERNAL_SERVER_ERROR = \"12\";\nexport const BUILD_MISSING_REGISTRY_FILE = \"13\";\n", "import * as path from \"node:path\";\nimport * as fs from \"fs-extra\";\nimport { loadConfig } from \"tsconfig-paths\";\n\nimport { highlighter } from \"utils/highlighter\";\nimport { resolveImport } from \"utils/resolve-import\";\nimport { logger } from \"../utils/logger\";\nimport { handleError } from \"../utils/handle-error\";\nimport { configSchema, Config } from \"config/schema\";\n\nexport async function resolveConfigPaths(cwd: string, config: Omit<Config, \"resolvedPaths\">): Promise<Config> {\n // Read tsconfig.json.\n const tsConfig = await loadConfig(cwd);\n\n if (tsConfig.resultType === \"failed\") {\n throw new Error(`Failed to load ${config.tsx ? \"tsconfig\" : \"jsconfig\"}.json. ${tsConfig.message ?? \"\"}`.trim());\n }\n\n return configSchema.parse({\n ...config,\n resolvedPaths: {\n cwd,\n api: await resolveImport(config.aliases.api, tsConfig),\n components: await resolveImport(config.aliases.components, tsConfig),\n lib: await resolveImport(config.aliases.lib, tsConfig),\n hooks: await resolveImport(config.aliases.hooks, tsConfig),\n ui: await resolveImport(config.aliases.ui, tsConfig),\n },\n });\n}\n\nexport async function getConfig(cwd: string): Promise<Config | null> {\n // Check for existing api.json file.\n if (!fs.existsSync(path.resolve(cwd, \"api.json\"))) {\n logger.break();\n logger.error(\n `An invalid ${highlighter.info(\"api.json\")} file was found at ${highlighter.info(\n cwd,\n )}.\\nBefore you can add or generate SDKs, you must create a valid ${highlighter.info(\n \"api.json\",\n )} file by running the ${highlighter.info(\"init\")} command.`,\n );\n logger.break();\n process.exit(1);\n }\n const { data, error } = await configSchema\n .omit({ resolvedPaths: true }) // We enrich it later\n .safeParseAsync(JSON.parse(fs.readFileSync(path.resolve(cwd, \"api.json\"), \"utf8\")));\n\n if (error) {\n handleError(error);\n }\n\n if (!data) {\n throw new Error(`Invalid configuration found in ${highlighter.info(cwd)}.`);\n }\n\n return resolveConfigPaths(cwd, data);\n}\n", "let FORCE_COLOR, NODE_DISABLE_COLORS, NO_COLOR, TERM, isTTY=true;\nif (typeof process !== 'undefined') {\n\t({ FORCE_COLOR, NODE_DISABLE_COLORS, NO_COLOR, TERM } = process.env || {});\n\tisTTY = process.stdout && process.stdout.isTTY;\n}\n\nexport const $ = {\n\tenabled: !NODE_DISABLE_COLORS && NO_COLOR == null && TERM !== 'dumb' && (\n\t\tFORCE_COLOR != null && FORCE_COLOR !== '0' || isTTY\n\t)\n}\n\nfunction init(x, y) {\n\tlet rgx = new RegExp(`\\\\x1b\\\\[${y}m`, 'g');\n\tlet open = `\\x1b[${x}m`, close = `\\x1b[${y}m`;\n\n\treturn function (txt) {\n\t\tif (!$.enabled || txt == null) return txt;\n\t\treturn open + (!!~(''+txt).indexOf(close) ? txt.replace(rgx, close + open) : txt) + close;\n\t};\n}\n\n// modifiers\nexport const reset = init(0, 0);\nexport const bold = init(1, 22);\nexport const dim = init(2, 22);\nexport const italic = init(3, 23);\nexport const underline = init(4, 24);\nexport const inverse = init(7, 27);\nexport const hidden = init(8, 28);\nexport const strikethrough = init(9, 29);\n\n// colors\nexport const black = init(30, 39);\nexport const red = init(31, 39);\nexport const green = init(32, 39);\nexport const yellow = init(33, 39);\nexport const blue = init(34, 39);\nexport const magenta = init(35, 39);\nexport const cyan = init(36, 39);\nexport const white = init(37, 39);\nexport const gray = init(90, 39);\nexport const grey = init(90, 39);\n\n// background colors\nexport const bgBlack = init(40, 49);\nexport const bgRed = init(41, 49);\nexport const bgGreen = init(42, 49);\nexport const bgYellow = init(43, 49);\nexport const bgBlue = init(44, 49);\nexport const bgMagenta = init(45, 49);\nexport const bgCyan = init(46, 49);\nexport const bgWhite = init(47, 49);\n", "import { cyan, green, red, yellow } from \"kleur/colors\";\n\nexport const highlighter = {\n error: red,\n warn: yellow,\n info: cyan,\n success: green,\n};\n", "import { createMatchPath, type ConfigLoaderSuccessResult } from \"tsconfig-paths\";\n\nexport async function resolveImport(\n importPath: string,\n config: Pick<ConfigLoaderSuccessResult, \"absoluteBaseUrl\" | \"paths\">,\n) {\n return createMatchPath(config.absoluteBaseUrl, config.paths)(importPath, undefined, () => true, [\n \".ts\",\n \".tsx\",\n \".jsx\",\n \".js\",\n \".css\",\n ]);\n}\n", "import { z } from \"zod\";\n\nexport const configSchema = z.object({\n tsx: z.boolean(),\n aliases: z.object({\n api: z.string(),\n hooks: z.string(),\n ui: z.string(),\n components: z.string(),\n lib: z.string(),\n }),\n resolvedPaths: z.object({\n cwd: z.string(),\n api: z.string(),\n hooks: z.string(),\n ui: z.string(),\n components: z.string(),\n lib: z.string(),\n }),\n});\n\nexport type Config = z.infer<typeof configSchema>;\n", "import DtsGenerator, { ExportedType } from \"@anttiviljami/dtsgenerator/dist/core/dtsGenerator\";\nimport RefParser from \"@apidevtools/json-schema-ref-parser\";\nimport { parseSchema } from \"@anttiviljami/dtsgenerator/dist/core/type\";\nimport * as lodash from \"lodash\";\nimport * as prettier from \"prettier\";\nimport * as fs from \"fs-extra\";\nimport * as path from \"node:path\";\nimport { createClient } from \"@hyper-fetch/core\";\n\nimport { Document, Operation, GeneratedTypes } from \"./openapi.types\";\nimport { getAvailableOperations } from \"./operations\";\nimport { adjustPathParamsFormat, normalizeOperationId, createTypeBaseName, isUrl } from \"./utils\";\nimport { HttpMethod } from \"./http-methods.enum\";\nimport { Config } from \"config/schema\";\n\ninterface RefError {\n path: string;\n ref: string;\n message: string;\n}\n\nconst formatSchema = (obj: any, indent = 1): string => {\n const indentation = \" \".repeat(indent);\n const entries = Object.entries(obj)\n .map(([key, value]) => {\n const formattedKey = key.includes(\"-\") ? `\"${key}\"` : key;\n if (typeof value === \"string\") {\n return `${indentation}${formattedKey}: ${value};`;\n }\n if (typeof value === \"object\" && value !== null) {\n return `${indentation}${formattedKey}: {\\n${formatSchema(value, indent + 1)}\\n${indentation}};`;\n }\n return \"\";\n })\n .join(\"\\n\");\n return entries;\n};\n\nexport class OpenapiRequestGenerator {\n protected openapiDocument: Document;\n constructor(openapiDocument: any) {\n this.openapiDocument = openapiDocument as Document;\n }\n\n async generateFile({ config, fileName }: { config: Config; fileName: string }) {\n const defaultFileName = \"openapi.client\";\n const { schemaTypes, generatedTypes, sdkSchema, createSdkFn } = await this.generateRequestsFromSchema();\n const contents = [\n `import { createSdk as coreCreateSdk, ClientInstance, Request } from \"@hyper-fetch/core\";`,\n \"\\n\\n\",\n schemaTypes,\n \"\\n\\n\",\n generatedTypes.join(\"\\n\\n\"),\n \"\\n\\n\",\n sdkSchema,\n \"\\n\\n\",\n createSdkFn,\n ].join(\"\");\n const prettierOpts = {\n printWidth: 120,\n tabWidth: 2,\n useTabs: false,\n semi: true,\n singleQuote: false,\n trailingComma: \"all\" as const,\n bracketSpacing: true,\n bracketSameLine: false,\n proseWrap: \"always\" as const,\n arrowParens: \"always\" as const,\n parser: \"typescript\" as const,\n };\n\n const fName = fileName || defaultFileName;\n const extension = config.tsx ? \".ts\" : \".js\";\n const hasExtension = [\".ts\", \".js\", \".tsx\", \".jsx\"].some((ext) => fName.endsWith(ext));\n const generatedPath = path.join(config.resolvedPaths.api, `${fName}${hasExtension ? \"\" : extension}`);\n\n const file = await prettier.format(contents, prettierOpts);\n await fs.writeFile(generatedPath, file, {\n flag: \"w\",\n });\n\n return generatedPath;\n }\n\n static getSchemaFromUrl = async ({ url, config }: { url: string; config: Config }) => {\n if (isUrl(url)) {\n const client = createClient({ url });\n const getSchema = client.createRequest<{ response: Document }>()({ endpoint: \"\" });\n const { data, error } = await getSchema.send();\n if (data) {\n return data;\n }\n throw error || new Error(\"Failed to fetch schema\");\n }\n\n const schema = fs.readFileSync(path.join(config.resolvedPaths.cwd, url), \"utf-8\");\n return JSON.parse(schema);\n };\n\n generateRequestsFromSchema = async () => {\n const { schemaTypes, exportedTypes } = await OpenapiRequestGenerator.prepareSchema(this.openapiDocument);\n\n const generatedTypes: string[] = [];\n const schemaTree: Record<string, any> = {};\n\n getAvailableOperations(this.openapiDocument).forEach((operation) => {\n const meta = OpenapiRequestGenerator.generateMethodMetadata(operation, exportedTypes);\n const operationTypes = OpenapiRequestGenerator.generateTypes(meta);\n const requestInstanceType = OpenapiRequestGenerator.generateRequestInstanceType(meta, operationTypes);\n\n generatedTypes.push(Object.values(operationTypes).join(\"\\n\"));\n\n const { path: relPath, method } = meta;\n const segments = relPath.split(\"/\").filter(Boolean);\n\n let currentLevel = schemaTree;\n // eslint-disable-next-line no-restricted-syntax\n for (const segment of segments) {\n const key = segment.startsWith(\":\") ? `$${segment.slice(1)}` : segment;\n if (!currentLevel[key]) {\n currentLevel[key] = {};\n }\n currentLevel = currentLevel[key];\n }\n currentLevel[method.toLowerCase()] = requestInstanceType;\n });\n\n const sdkSchema = `export type SdkSchema<Client extends ClientInstance> = {\\n${formatSchema(schemaTree)}\\n}`;\n\n const createSdkFn = `\nexport const createSdk = <Client extends ClientInstance>(client: Client) => {\n return coreCreateSdk<Client, SdkSchema<Client>>(client);\n};\n`;\n\n return { schemaTypes, generatedTypes, sdkSchema, createSdkFn };\n };\n\n static generateRequestInstanceType(\n { id, path: endpoint, queryParamsRequired }: { id: string; path: string; queryParamsRequired?: boolean },\n types: Record<string, string>,\n ) {\n const Response = types[`${createTypeBaseName(id)}ResponseType`]\n ? `${createTypeBaseName(id)}ResponseType`\n : undefined;\n const Payload = types[`${createTypeBaseName(id)}RequestBody`] ? `${createTypeBaseName(id)}RequestBody` : undefined;\n const LocalError = types[`${createTypeBaseName(id)}ErrorType`] ? `${createTypeBaseName(id)}ErrorType` : undefined;\n const QueryParams = types[`${createTypeBaseName(id)}QueryParams`]\n ? `${createTypeBaseName(id)}QueryParams`\n : undefined;\n\n const QueryParamsGeneric =\n QueryParams && queryParamsRequired === false ? `${QueryParams} | undefined` : QueryParams;\n\n return `Request<${Response}, ${Payload}, ${QueryParamsGeneric}, ${LocalError}, \"${endpoint}\", Client>`;\n }\n\n static generateHyperFetchRequest(\n {\n id,\n path: relPath,\n method,\n queryParamsRequired,\n }: { id: string; path: string; method: string; queryParamsRequired?: boolean },\n types: Record<string, string>,\n ) {\n const Response = types[`${createTypeBaseName(id)}ResponseType`]\n ? `${createTypeBaseName(id)}ResponseType`\n : undefined;\n const Payload = types[`${createTypeBaseName(id)}RequestBody`] ? `${createTypeBaseName(id)}RequestBody` : undefined;\n const LocalError = types[`${createTypeBaseName(id)}ErrorType`] ? `${createTypeBaseName(id)}ErrorType` : undefined;\n const QueryParams = types[`${createTypeBaseName(id)}QueryParams`]\n ? `${createTypeBaseName(id)}QueryParams`\n : undefined;\n const getVariableName = (str: string) => str.charAt(0).toLowerCase() + str.slice(1);\n\n let genericType = \"\";\n\n const addToGenericType = (key: string, value: string) => {\n if (genericType) {\n genericType += \",\";\n }\n genericType += `${key}:${value}`;\n };\n\n if (Response) {\n addToGenericType(\"response\", Response);\n }\n if (Payload) {\n addToGenericType(\"payload\", Payload);\n }\n if (LocalError) {\n addToGenericType(\"error\", LocalError);\n }\n if (QueryParams) {\n const key = queryParamsRequired === false ? \"queryParams?\" : \"queryParams\";\n addToGenericType(key, QueryParams);\n }\n\n if (genericType) {\n genericType = `<{${genericType}}>`;\n }\n\n return `export const ${getVariableName(\n createTypeBaseName(id),\n )} = client.createRequest${genericType}()({method: \"${method}\", endpoint: \"${relPath}\"})`;\n }\n\n static generateTypes({\n id,\n pathParametersType,\n queryParametersType,\n requestBodyType,\n errorType,\n responseType,\n }: {\n id: string;\n pathParametersType: string | undefined;\n queryParametersType: string | undefined;\n requestBodyType: string | undefined;\n errorType: string;\n responseType: string;\n }) {\n const typeName = createTypeBaseName(id);\n const types: GeneratedTypes<typeof typeName> = {};\n if (pathParametersType) {\n types[`${typeName}PathParams`] = `export type ${typeName}PathParams = ${pathParametersType}`;\n }\n if (queryParametersType) {\n types[`${typeName}QueryParams`] = `export type ${typeName}QueryParams = ${queryParametersType}`;\n }\n if (requestBodyType) {\n types[`${typeName}RequestBody`] = `export type ${typeName}RequestBody = ${requestBodyType}`;\n }\n if (errorType) {\n types[`${typeName}ErrorType`] = `export type ${typeName}ErrorType = ${errorType}`;\n }\n if (responseType) {\n types[`${typeName}ResponseType`] = `export type ${typeName}ResponseType = ${responseType}`;\n }\n return types;\n }\n\n static generateMethodMetadata(\n operation: { operationId: string; path: string; method: string } & Partial<Operation>,\n exportTypes: ExportedType[],\n ) {\n const { operationId, method, path: relPath } = operation;\n const normalizedOperationId = normalizeOperationId(operationId);\n const pathParametersType = lodash.find(exportTypes, {\n schemaRef: `#/paths/${normalizedOperationId}/pathParameters`,\n })?.path;\n const queryParametersType = lodash.find(exportTypes, {\n schemaRef: `#/paths/${normalizedOperationId}/queryParameters`,\n })?.path;\n const requestBodyType = lodash.find(exportTypes, {\n schemaRef: `#/paths/${normalizedOperationId}/requestBody`,\n })?.path;\n const responseTypePaths = lodash\n .chain(exportTypes)\n .filter(({ schemaRef }) => schemaRef.startsWith(`#/paths/${normalizedOperationId}/responses/2`))\n .map(({ path: responsePath }) => responsePath)\n .value();\n const errorTypePaths = lodash\n .chain(exportTypes)\n .filter(\n ({ schemaRef }) =>\n schemaRef.startsWith(`#/paths/${normalizedOperationId}/responses/4`) ||\n schemaRef.startsWith(`#/paths/${normalizedOperationId}/responses/5`),\n )\n .map(({ path: errorPath }) => errorPath)\n .value();\n\n const responseType = !lodash.isEmpty(responseTypePaths) ? responseTypePaths.join(\" | \") : \"any\";\n const errorType = !lodash.isEmpty(errorTypePaths) ? errorTypePaths.join(\" | \") : \"undefined\";\n const queryParamsRequired = Array.isArray(operation.parameters)\n ? operation.parameters.every((p) => {\n if (\"in\" in p && p.in === \"query\" && p.required === false) {\n return true;\n }\n return false;\n })\n : undefined;\n\n return {\n id: normalizedOperationId,\n pathParametersType,\n queryParametersType,\n requestBodyType,\n errorType,\n responseType,\n path: adjustPathParamsFormat(relPath),\n method: method ? method.toUpperCase() : HttpMethod.GET,\n queryParamsRequired,\n };\n }\n\n static validateSchema(openapiDocument: Document) {\n // Validate refs before processing\n const errors: RefError[] = [];\n\n function validateRefs(obj: any, refPath = \"\") {\n if (!obj || typeof obj !== \"object\") return;\n\n // Check if current object has $ref\n if (obj.$ref && typeof obj.$ref === \"string\" && obj.$ref.endsWith(\"/\")) {\n errors.push({\n path: refPath,\n ref: obj.$ref,\n message: `Invalid reference \"${obj.$ref}\" - reference path cannot end with '/'`,\n });\n }\n\n // Recursively check all object properties\n Object.entries(obj).forEach(([key, value]) => {\n const newPath = refPath ? `${refPath}.${key}` : key;\n validateRefs(value, newPath);\n });\n }\n\n validateRefs(openapiDocument);\n\n // If there are validation errors, throw them with details\n if (errors.length > 0) {\n const errorMessages = errors.map((err) => `Invalid reference at ${err.path}: ${err.message}`);\n throw new Error(`Schema validation failed. The following errors were found:\\n${errorMessages.join(\"\\n\")}`);\n }\n }\n\n static async prepareSchema(openapiDocument: Document) {\n OpenapiRequestGenerator.validateSchema(openapiDocument);\n\n const rootSchema = await RefParser.bundle(openapiDocument);\n const schema = parseSchema(rootSchema as any);\n const generator = new DtsGenerator([schema]);\n const schemaTypes = await generator.generate();\n const exportedTypes = generator.getExports();\n\n return { schemaTypes, exportedTypes };\n }\n}\n", "export enum HttpMethod {\n GET = \"get\",\n PUT = \"put\",\n POST = \"post\",\n PATCH = \"patch\",\n DELETE = \"delete\",\n OPTIONS = \"options\",\n HEAD = \"head\",\n TRACE = \"trace\",\n}\n", "import type { OpenAPIV3, OpenAPIV3_1 } from \"openapi-types\";\n\nimport { HttpMethod } from \"./http-methods.enum\";\nimport { Operation } from \"./openapi.types\";\n\nexport function getAvailableOperations(openApiJson: OpenAPIV3.Document | OpenAPIV3_1.Document) {\n const paths = openApiJson.paths || {};\n return Object.entries(paths).flatMap(([path, pathObject]) => {\n return Object.values(HttpMethod)\n .map((method) => ({ path, method, operation: pathObject?.[method] }))\n .filter(({ operation }) => operation?.operationId)\n .map(({ operation, method }) => {\n const op: { operationId: string; path: string; method: string } & Partial<Operation> = {\n ...operation,\n operationId: operation!.operationId as string,\n path,\n method,\n };\n return op;\n });\n }) as ({ operationId: string } & Operation)[];\n}\n", "import { OpenAPIV3, OpenAPIV3_1 } from \"openapi-types\";\n\nexport function adjustPathParamsFormat(path: string) {\n // Naive implementation for now:\n return path.replace(/}/g, \"\").replace(/{/g, \":\");\n}\nexport function createTypeBaseName(str: string) {\n const capitalizeFirstLetter = (s: string) => {\n return s.charAt(0).toUpperCase() + s.slice(1);\n };\n return str.split(\"_\").map(capitalizeFirstLetter).join(\"\");\n}\n\nexport function normalizeOperationId(key: string): string {\n return key\n .replace(/\\/(.)/g, (_match: string, p1: string) => {\n return p1.toUpperCase();\n })\n .replace(/}/g, \"\")\n .replace(/{/g, \"$\")\n .replace(/^\\//, \"\")\n .replace(/[^0-9A-Za-z_$]+/g, \"_\");\n}\nexport const isUrl = (schemaPath: string) => {\n try {\n return Boolean(new URL(schemaPath));\n } catch (e) {\n return false;\n }\n};\n\nexport function getBaseUrl(openApiJson: OpenAPIV3.Document | OpenAPIV3_1.Document): string {\n return openApiJson.servers?.[0]?.url ?? \"\";\n}\n", "import ora, { type Options } from \"ora\";\n\nexport function spinner(\n text: Options[\"text\"],\n options?: {\n silent?: boolean;\n },\n) {\n return ora({\n text,\n isSilent: options?.silent,\n });\n}\n", "import { z } from \"zod\";\nimport Table from \"cli-table3\";\n\nimport { zodToTable } from \"./zod-to-table\";\n\nexport const showHelp = (schema: z.ZodType) => {\n const rows = zodToTable(schema).map(({ name, description }) => [`--${name}`, description || \"\"]);\n\n const maxOptionLength = rows.reduce((max, row) => Math.max(max, row[0].length), 0);\n const terminalWidth = process.stdout.columns;\n\n const tableOptions: Table.TableConstructorOptions = {\n head: [\"Option\", \"Description\"],\n style: {\n head: [\"blue\"],\n },\n wordWrap: true,\n };\n\n if (terminalWidth) {\n // Accounting for borders and padding.\n const tableOverhead = 7;\n const optionColWidth = maxOptionLength + 2;\n const descriptionColWidth = terminalWidth - optionColWidth - tableOverhead;\n\n if (descriptionColWidth > 10) {\n tableOptions.colWidths = [optionColWidth, descriptionColWidth];\n }\n }\n\n const table = new Table(tableOptions);\n\n table.push(...rows);\n\n // eslint-disable-next-line no-console\n console.log(table.toString());\n};\n", "import { z } from \"zod\";\n\nexport const zodToTable = (schema: z.ZodType): { name: string; description: string | undefined }[] => {\n if (schema instanceof z.ZodObject) {\n const { shape } = schema;\n return Object.keys(shape).map((key) => {\n const fieldSchema = shape[key];\n\n return {\n name: key,\n description: fieldSchema.description,\n };\n });\n }\n return [];\n};\n", "import { Command } from \"commander\";\nimport { input, select } from \"@inquirer/prompts\";\nimport { z } from \"zod\";\nimport * as path from \"node:path\";\nimport * as fs from \"fs-extra\";\n\nimport { handleError } from \"../utils/handle-error\";\nimport { spinner } from \"../utils/spinner\";\nimport { configSchema, Config } from \"config/schema\";\nimport { logger } from \"utils/logger\";\nimport { getTsConfigAliasPrefix } from \"config/get-ts-alias\";\nimport { showHelp } from \"utils/show-help\";\n\nconst initOptionsSchema = z.object({\n yes: z.boolean().optional().describe(\"skip confirmation prompt.\"),\n cwd: z.string().describe(\"the working directory. defaults to the current directory.\"),\n});\n\ntype Step = {\n name: string;\n action: (config: Partial<Config>) => Promise<Partial<Config> | void>;\n};\n\nexport const init = new Command()\n .name(\"Init\")\n .description(\"Initialize HyperFetch Client configuration.\")\n .option(\"-y, --yes\", \"skip confirmation prompt.\", false)\n .option(\"-c, --cwd <cwd>\", \"the working directory. defaults to the current directory.\", process.cwd())\n .option(\"-h, --help <help>\", \"display help for command\")\n .action(async (opts) => {\n try {\n const help = process.argv.includes(\"--help\") || process.argv.includes(\"-h\");\n\n if (help) {\n return showHelp(initOptionsSchema);\n }\n\n const { cwd, yes } = initOptionsSchema.parse(opts);\n\n let config: Partial<Config> = {};\n\n let mainPath: string;\n let apiDir: string;\n\n if (yes) {\n mainPath = \"src\";\n apiDir = \"api\";\n } else {\n // 1. ask for the path to the main directory\n mainPath = await select({\n message: \"Select the main directory for your project:\",\n choices: [\n { name: \"src\", value: \"src\" },\n { name: \"app\", value: \"app\" },\n { name: \"other\", value: \"other\" },\n ],\n });\n\n if (mainPath === \"other\") {\n mainPath = await input({\n message: \"Enter the path to the main directory:\",\n validate: (value) => {\n if (!value) return \"Path cannot be empty.\";\n return true;\n },\n });\n }\n\n // 2. text field - asking for the directory of api\n apiDir = await input({\n message: \"Enter the name of the API directory:\",\n default: \"api\",\n validate: (value) => {\n if (!value) return \"Directory name cannot be empty.\";\n return true;\n },\n });\n }\n\n const fullPath = path.join(cwd, mainPath, apiDir);\n const relativePath = path.join(mainPath, apiDir);\n const configPath = path.join(cwd, \"api.json\");\n\n const aliasPrefix = (await getTsConfigAliasPrefix(cwd)) || \"\";\n const alias = aliasPrefix ? `${aliasPrefix}/` : \"\";\n\n const defaultAliases: Config[\"aliases\"] = {\n api: `${alias}${apiDir}`,\n hooks: `${alias}hooks`,\n ui: `${alias}components/ui`,\n components: `${alias}components`,\n lib: `${alias}lib`,\n };\n\n const defaultConfig: Omit<Config, \"resolvedPaths\"> = {\n tsx: true,\n aliases: defaultAliases,\n };\n\n logger.break();\n\n const steps: Step[] = [\n {\n name: `Initialize API directory at ${relativePath}`,\n action: async () => {\n if (!fs.existsSync(fullPath)) {\n await fs.mkdir(fullPath, { recursive: true });\n }\n },\n },\n {\n name: \"Setup configuration\",\n action: async (currentConfig) => {\n if (fs.existsSync(configPath)) {\n const existingConfig = JSON.parse(fs.readFileSync(configPath, \"utf8\"));\n const { success, error, data } = configSchema.omit({ resolvedPaths: true }).safeParse({\n ...defaultConfig,\n ...existingConfig,\n aliases: {\n ...defaultConfig.aliases,\n ...existingConfig.aliases,\n },\n });\n\n if (error) {\n logger.break();\n logger.error(`Invalid configuration found in ${configPath}.`);\n handleError(error);\n logger.break();\n }\n\n if (success) {\n return data;\n }\n }\n return currentConfig;\n },\n },\n {\n name: \"Setup Aliases\",\n action: async (currentConfig) => {\n if (currentConfig.aliases) {\n return currentConfig;\n }\n\n return {\n ...currentConfig,\n aliases: defaultAliases,\n };\n },\n },\n {\n name: `Create api.json configuration file`,\n action: async (currentConfig) => {\n const finalConfig = {\n ...defaultConfig,\n ...currentConfig,\n aliases: {\n ...defaultConfig.aliases,\n ...currentConfig.aliases,\n },\n };\n\n configSchema.omit({ resolvedPaths: true }).parse(finalConfig);\n\n await fs.writeFile(configPath, JSON.stringify(finalConfig, null, 2));\n },\n },\n ];\n\n logger.break();\n logger.info(\"Starting HyperFetch CLI initialization...\");\n\n // eslint-disable-next-line no-restricted-syntax\n for (const step of steps) {\n const s = spinner(step.name).start();\n // eslint-disable-next-line no-await-in-loop\n const result = await step.action(config);\n if (result) {\n config = result;\n }\n s.succeed();\n }\n\n logger.break();\n logger.info(\"Configuration has been generated successfully! \uD83C\uDF89\");\n logger.info(`You can now find your configuration at ${configPath}`);\n } catch (err) {\n handleError(err);\n }\n });\n", "import { loadConfig } from \"tsconfig-paths\";\n\nexport async function getTsConfigAliasPrefix(cwd: string) {\n const tsConfig = await loadConfig(cwd);\n\n if (tsConfig?.resultType === \"failed\" || !Object.entries(tsConfig?.paths).length) {\n return null;\n }\n\n // This assume that the first alias is the prefix.\n // eslint-disable-next-line no-restricted-syntax\n for (const [alias, paths] of Object.entries(tsConfig.paths)) {\n if (\n paths.includes(\"./*\") ||\n paths.includes(\"./src/*\") ||\n paths.includes(\"./app/*\") ||\n paths.includes(\"./resources/js/*\") // Laravel.\n ) {\n return alias.replace(/\\/\\*$/, \"\") ?? null;\n }\n }\n\n // Use the first alias as the prefix.\n return Object.keys(tsConfig?.paths)?.[0].replace(/\\/\\*$/, \"\") ?? null;\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import * as fs from \"fs\";\n\n/**\n * Typing for the fields of package.json we care about\n */\nexport interface PackageJson {\n [key: string]: string | PackageJson;\n}\n\n/**\n * A function that json from a file\n */\nexport interface ReadJsonSync {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (packageJsonPath: string): any | undefined;\n}\n\nexport interface FileExistsSync {\n (name: string): boolean;\n}\n\nexport interface FileExistsAsync {\n (path: string, callback: (err?: Error, exists?: boolean) => void): void;\n}\n\nexport interface ReadJsonAsyncCallback {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (err?: Error, content?: any): void;\n}\n\nexport interface ReadJsonAsync {\n (path: string, callback: ReadJsonAsyncCallback): void;\n}\n\nexport function fileExistsSync(path: string): boolean {\n // If the file doesn't exist, avoid throwing an exception over the native barrier for every miss\n if (!fs.existsSync(path)) {\n return false;\n }\n try {\n const stats = fs.statSync(path);\n return stats.isFile();\n } catch (err) {\n // If error, assume file did not exist\n return false;\n }\n}\n\n/**\n * Reads package.json from disk\n *\n * @param file Path to package.json\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function readJsonFromDiskSync(packageJsonPath: string): any | undefined {\n if (!fs.existsSync(packageJsonPath)) {\n return undefined;\n }\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n return require(packageJsonPath);\n}\n\nexport function readJsonFromDiskAsync(\n path: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callback: (err?: Error, content?: any) => void\n): void {\n fs.readFile(path, \"utf8\", (err, result) => {\n // If error, assume file did not exist\n if (err || !result) {\n return callback();\n }\n const json = JSON.parse(result);\n return callback(undefined, json);\n });\n}\n\nexport function fileExistsAsync(\n path2: string,\n callback2: (err?: Error, exists?: boolean) => void\n): void {\n fs.stat(path2, (err: Error, stats: fs.Stats) => {\n if (err) {\n // If error assume file does not exist\n return callback2(undefined, false);\n }\n callback2(undefined, stats ? stats.isFile() : false);\n });\n}\n\nexport function removeExtension(path: string): string {\n return path.substring(0, path.lastIndexOf(\".\")) || path;\n}\n", "import * as path from \"path\";\n\nexport interface MappingEntry {\n readonly pattern: string;\n readonly paths: ReadonlyArray<string>;\n}\n\nexport interface Paths {\n readonly [key: string]: ReadonlyArray<string>;\n}\n\n/**\n * Converts an absolute baseUrl and paths to an array of absolute mapping entries.\n * The array is sorted by longest prefix.\n * Having an array with entries allows us to keep a sorting order rather than\n * sort by keys each time we use the mappings.\n *\n * @param absoluteBaseUrl\n * @param paths\n * @param addMatchAll\n */\nexport function getAbsoluteMappingEntries(\n absoluteBaseUrl: string,\n paths: Paths,\n addMatchAll: boolean\n): ReadonlyArray<MappingEntry> {\n // Resolve all paths to absolute form once here, and sort them by\n // longest prefix once here, this saves time on each request later.\n // We need to put them in an array to preserve the sorting order.\n const sortedKeys = sortByLongestPrefix(Object.keys(paths));\n const absolutePaths: Array<MappingEntry> = [];\n for (const key of sortedKeys) {\n absolutePaths.push({\n pattern: key,\n paths: paths[key].map((pathToResolve) =>\n path.resolve(absoluteBaseUrl, pathToResolve)\n ),\n });\n }\n // If there is no match-all path specified in the paths section of tsconfig, then try to match\n // all paths relative to baseUrl, this is how typescript works.\n if (!paths[\"*\"] && addMatchAll) {\n absolutePaths.push({\n pattern: \"*\",\n paths: [`${absoluteBaseUrl.replace(/\\/$/, \"\")}/*`],\n });\n }\n\n return absolutePaths;\n}\n\n/**\n * Sort path patterns.\n * If a module name can be matched with multiple patterns then pattern with the longest prefix will be picked.\n */\nfunction sortByLongestPrefix(arr: Array<string>): Array<string> {\n return arr\n .concat()\n .sort((a: string, b: string) => getPrefixLength(b) - getPrefixLength(a));\n}\n\nfunction getPrefixLength(pattern: string): number {\n const prefixLength = pattern.indexOf(\"*\");\n return pattern.substr(0, prefixLength).length;\n}\n", "import * as path from \"path\";\nimport { MappingEntry } from \"./mapping-entry\";\nimport { dirname } from \"path\";\nimport { removeExtension } from \"./filesystem\";\n\nexport interface TryPath {\n readonly type: \"file\" | \"extension\" | \"index\" | \"package\";\n readonly path: string;\n}\n\n/**\n * Builds a list of all physical paths to try by:\n * 1. Check for file named exactly as request.\n * 2. Check for files named as request ending in any of the extensions.\n * 3. Check for file specified in package.json's main property.\n * 4. Check for files named as request ending in \"index\" with any of the extensions.\n */\nexport function getPathsToTry(\n extensions: ReadonlyArray<string>,\n absolutePathMappings: ReadonlyArray<MappingEntry>,\n requestedModule: string\n): ReadonlyArray<TryPath> | undefined {\n if (!absolutePathMappings || !requestedModule || requestedModule[0] === \".\") {\n return undefined;\n }\n\n const pathsToTry: Array<TryPath> = [];\n for (const entry of absolutePathMappings) {\n const starMatch =\n entry.pattern === requestedModule\n ? \"\"\n : matchStar(entry.pattern, requestedModule);\n if (starMatch !== undefined) {\n for (const physicalPathPattern of entry.paths) {\n const physicalPath = physicalPathPattern.replace(\"*\", starMatch);\n pathsToTry.push({ type: \"file\", path: physicalPath });\n pathsToTry.push(\n ...extensions.map(\n (e) => ({ type: \"extension\", path: physicalPath + e } as TryPath)\n )\n );\n pathsToTry.push({\n type: \"package\",\n path: path.join(physicalPath, \"/package.json\"),\n });\n const indexPath = path.join(physicalPath, \"/index\");\n pathsToTry.push(\n ...extensions.map(\n (e) => ({ type: \"index\", path: indexPath + e } as TryPath)\n )\n );\n }\n }\n }\n return pathsToTry.length === 0 ? undefined : pathsToTry;\n}\n\n// Not sure why we don't just return the full found path?\nexport function getStrippedPath(tryPath: TryPath): string {\n return tryPath.type === \"index\"\n ? dirname(tryPath.path)\n : tryPath.type === \"file\"\n ? tryPath.path\n : tryPath.type === \"extension\"\n ? removeExtension(tryPath.path)\n : tryPath.type === \"package\"\n ? tryPath.path\n : exhaustiveTypeException(tryPath.type);\n}\n\nexport function exhaustiveTypeException(check: never): never {\n throw new Error(`Unknown type ${check}`);\n}\n\n/**\n * Matches pattern with a single star against search.\n * Star must match at least one character to be considered a match.\n *\n * @param patttern for example \"foo*\"\n * @param search for example \"fooawesomebar\"\n * @returns the part of search that * matches, or undefined if no match.\n */\nfunction matchStar(pattern: string, search: string): string | undefined {\n if (search.length < pattern.length) {\n return undefined;\n }\n if (pattern === \"*\") {\n return search;\n }\n const star = pattern.indexOf(\"*\");\n if (star === -1) {\n return undefined;\n }\n const part1 = pattern.substring(0, star);\n const part2 = pattern.substring(star + 1);\n if (search.substr(0, star) !== part1) {\n return undefined;\n }\n if (search.substr(search.length - part2.length) !== part2) {\n return undefined;\n }\n return search.substr(star, search.length - part2.length);\n}\n", "import * as path from \"path\";\nimport * as Filesystem from \"./filesystem\";\nimport * as MappingEntry from \"./mapping-entry\";\nimport * as TryPath from \"./try-path\";\n\n/**\n * Function that can match a path\n */\nexport interface MatchPath {\n (\n requestedModule: string,\n readJson?: Filesystem.ReadJsonSync,\n fileExists?: (name: string) => boolean,\n extensions?: ReadonlyArray<string>\n ): string | undefined;\n}\n\n/**\n * Creates a function that can resolve paths according to tsconfig paths property.\n *\n * @param absoluteBaseUrl Absolute version of baseUrl as specified in tsconfig.\n * @param paths The paths as specified in tsconfig.\n * @param mainFields A list of package.json field names to try when resolving module files. Select a nested field using an array of field names.\n * @param addMatchAll Add a match-all \"*\" rule if none is present\n * @returns a function that can resolve paths.\n */\nexport function createMatchPath(\n absoluteBaseUrl: string,\n paths: { [key: string]: Array<string> },\n mainFields: (string | string[])[] = [\"main\"],\n addMatchAll: boolean = true\n): MatchPath {\n const absolutePaths = MappingEntry.getAbsoluteMappingEntries(\n absoluteBaseUrl,\n paths,\n addMatchAll\n );\n\n return (\n requestedModule: string,\n readJson?: Filesystem.ReadJsonSync,\n fileExists?: Filesystem.FileExistsSync,\n extensions?: Array<string>\n ) =>\n matchFromAbsolutePaths(\n absolutePaths,\n requestedModule,\n readJson,\n fileExists,\n extensions,\n mainFields\n );\n}\n\n/**\n * Finds a path from tsconfig that matches a module load request.\n *\n * @param absolutePathMappings The paths to try as specified in tsconfig but resolved to absolute form.\n * @param requestedModule The required module name.\n * @param readJson Function that can read json from a path (useful for testing).\n * @param fileExists Function that checks for existence of a file at a path (useful for testing).\n * @param extensions File extensions to probe for (useful for testing).\n * @param mainFields A list of package.json field names to try when resolving module files. Select a nested field using an array of field names.\n * @returns the found path, or undefined if no path was found.\n */\nexport function matchFromAbsolutePaths(\n absolutePathMappings: ReadonlyArray<MappingEntry.MappingEntry>,\n requestedModule: string,\n readJson: Filesystem.ReadJsonSync = Filesystem.readJsonFromDiskSync,\n fileExists: Filesystem.FileExistsSync = Filesystem.fileExistsSync,\n extensions: Array<string> = Object.keys(require.extensions),\n mainFields: (string | string[])[] = [\"main\"]\n): string | undefined {\n const tryPaths = TryPath.getPathsToTry(\n extensions,\n absolutePathMappings,\n requestedModule\n );\n\n if (!tryPaths) {\n return undefined;\n }\n\n return findFirstExistingPath(tryPaths, readJson, fileExists, mainFields);\n}\n\nfunction findFirstExistingMainFieldMappedFile(\n packageJson: Filesystem.PackageJson,\n mainFields: (string | string[])[],\n packageJsonPath: string,\n fileExists: Filesystem.FileExistsSync\n): string | undefined {\n for (let index = 0; index < mainFields.length; index++) {\n const mainFieldSelector = mainFields[index];\n const candidateMapping =\n typeof mainFieldSelector === \"string\"\n ? packageJson[mainFieldSelector]\n : mainFieldSelector.reduce((obj, key) => obj[key], packageJson);\n if (candidateMapping && typeof candidateMapping === \"string\") {\n const candidateFilePath = path.join(\n path.dirname(packageJsonPath),\n candidateMapping\n );\n if (fileExists(candidateFilePath)) {\n return candidateFilePath;\n }\n }\n }\n\n return undefined;\n}\n\nfunction findFirstExistingPath(\n tryPaths: ReadonlyArray<TryPath.TryPath>,\n readJson: Filesystem.ReadJsonSync = Filesystem.readJsonFromDiskSync,\n fileExists: Filesystem.FileExistsSync,\n mainFields: (string | string[])[] = [\"main\"]\n): string | undefined {\n for (const tryPath of tryPaths) {\n if (\n tryPath.type === \"file\" ||\n tryPath.type === \"extension\" ||\n tryPath.type === \"index\"\n ) {\n if (fileExists(tryPath.path)) {\n return TryPath.getStrippedPath(tryPath);\n }\n } else if (tryPath.type === \"package\") {\n const packageJson: Filesystem.PackageJson = readJson(tryPath.path);\n if (packageJson) {\n const mainFieldMappedFile = findFirstExistingMainFieldMappedFile(\n packageJson,\n mainFields,\n tryPath.path,\n fileExists\n );\n if (mainFieldMappedFile) {\n return mainFieldMappedFile;\n }\n }\n } else {\n TryPath.exhaustiveTypeException(tryPath.type);\n }\n }\n return undefined;\n}\n", "import * as path from \"path\";\nimport * as TryPath from \"./try-path\";\nimport * as MappingEntry from \"./mapping-entry\";\nimport * as Filesystem from \"./filesystem\";\n\n/**\n * Function that can match a path async\n */\nexport interface MatchPathAsync {\n (\n requestedModule: string,\n readJson: Filesystem.ReadJsonAsync | undefined,\n fileExists: Filesystem.FileExistsAsync | undefined,\n extensions: ReadonlyArray<string> | undefined,\n callback: MatchPathAsyncCallback\n ): void;\n}\n\nexport interface MatchPathAsyncCallback {\n // eslint-disable-next-line no-shadow\n (err?: Error, path?: string): void;\n}\n\n/**\n * See the sync version for docs.\n */\nexport function createMatchPathAsync(\n absoluteBaseUrl: string,\n paths: { [key: string]: Array<string> },\n mainFields: (string | string[])[] = [\"main\"],\n addMatchAll: boolean = true\n): MatchPathAsync {\n const absolutePaths = MappingEntry.getAbsoluteMappingEntries(\n absoluteBaseUrl,\n paths,\n addMatchAll\n );\n\n return (\n requestedModule: string,\n readJson: Filesystem.ReadJsonAsync | undefined,\n fileExists: Filesystem.FileExistsAsync | undefined,\n extensions: ReadonlyArray<string> | undefined,\n callback: MatchPathAsyncCallback\n ) =>\n matchFromAbsolutePathsAsync(\n absolutePaths,\n requestedModule,\n readJson,\n fileExists,\n extensions,\n callback,\n mainFields\n );\n}\n\n/**\n * See the sync version for docs.\n */\nexport function matchFromAbsolutePathsAsync(\n absolutePathMappings: ReadonlyArray<MappingEntry.MappingEntry>,\n requestedModule: string,\n readJson: Filesystem.ReadJsonAsync = Filesystem.readJsonFromDiskAsync,\n fileExists: Filesystem.FileExistsAsync = Filesystem.fileExistsAsync,\n extensions: ReadonlyArray<string> = Object.keys(require.extensions),\n callback: MatchPathAsyncCallback,\n mainFields: (string | string[])[] = [\"main\"]\n): void {\n const tryPaths = TryPath.getPathsToTry(\n extensions,\n absolutePathMappings,\n requestedModule\n );\n\n if (!tryPaths) {\n return callback();\n }\n\n findFirstExistingPath(\n tryPaths,\n readJson,\n fileExists,\n callback,\n 0,\n mainFields\n );\n}\n\nfunction findFirstExistingMainFieldMappedFile(\n packageJson: Filesystem.PackageJson,\n mainFields: (string | string[])[],\n packageJsonPath: string,\n fileExistsAsync: Filesystem.FileExistsAsync,\n doneCallback: (err?: Error, filepath?: string) => void,\n index: number = 0\n): void {\n if (index >= mainFields.length) {\n return doneCallback(undefined, undefined);\n }\n\n const tryNext = (): void =>\n findFirstExistingMainFieldMappedFile(\n packageJson,\n mainFields,\n packageJsonPath,\n fileExistsAsync,\n doneCallback,\n index + 1\n );\n\n const mainFieldSelector = mainFields[index];\n const mainFieldMapping =\n typeof mainFieldSelector === \"string\"\n ? packageJson[mainFieldSelector]\n : mainFieldSelector.reduce((obj, key) => obj[key], packageJson);\n if (typeof mainFieldMapping !== \"string\") {\n // Skip mappings that are not pointers to replacement files\n return tryNext();\n }\n\n const mappedFilePath = path.join(\n path.dirname(packageJsonPath),\n mainFieldMapping\n );\n fileExistsAsync(mappedFilePath, (err?: Error, exists?: boolean) => {\n if (err) {\n return doneCallback(err);\n }\n if (exists) {\n return doneCallback(undefined, mappedFilePath);\n }\n return tryNext();\n });\n}\n\n// Recursive loop to probe for physical files\nfunction findFirstExistingPath(\n tryPaths: ReadonlyArray<TryPath.TryPath>,\n readJson: Filesystem.ReadJsonAsync,\n fileExists: Filesystem.FileExistsAsync,\n doneCallback: MatchPathAsyncCallback,\n index: number = 0,\n mainFields: (string | string[])[] = [\"main\"]\n): void {\n const tryPath = tryPaths[index];\n if (\n tryPath.type === \"file\" ||\n tryPath.type === \"extension\" ||\n tryPath.type === \"index\"\n ) {\n fileExists(tryPath.path, (err: Error, exists: boolean) => {\n if (err) {\n return doneCallback(err);\n }\n if (exists) {\n return doneCallback(undefined, TryPath.getStrippedPath(tryPath));\n }\n if (index === tryPaths.length - 1) {\n return doneCallback();\n }\n // Continue with the next path\n return findFirstExistingPath(\n tryPaths,\n readJson,\n fileExists,\n doneCallback,\n index + 1,\n mainFields\n );\n });\n } else if (tryPath.type === \"package\") {\n readJson(tryPath.path, (err, packageJson) => {\n if (err) {\n return doneCallback(err);\n }\n if (packageJson) {\n return findFirstExistingMainFieldMappedFile(\n packageJson,\n mainFields,\n tryPath.path,\n fileExists,\n (mainFieldErr?: Error, mainFieldMappedFile?: string) => {\n if (mainFieldErr) {\n return doneCallback(mainFieldErr);\n }\n if (mainFieldMappedFile) {\n return doneCallback(undefined, mainFieldMappedFile);\n }\n\n // No field in package json was a valid option. Continue with the next path.\n return findFirstExistingPath(\n tryPaths,\n readJson,\n fileExists,\n doneCallback,\n index + 1,\n mainFields\n );\n }\n );\n }\n\n // This is async code, we need to return unconditionally, otherwise the code still falls\n // through and keeps recursing. While this might work in general, libraries that use neo-async\n // like Webpack will actually not allow you to call the same callback twice.\n //\n // An example of where this caused issues:\n // https://github.com/dividab/tsconfig-paths-webpack-plugin/issues/11\n //\n // Continue with the next path\n return findFirstExistingPath(\n tryPaths,\n readJson,\n fileExists,\n doneCallback,\n index + 1,\n mainFields\n );\n });\n } else {\n TryPath.exhaustiveTypeException(tryPath.type);\n }\n}\n", "// This is a generated file. Do not edit.\nmodule.exports.Space_Separator = /[\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/\nmodule.exports.ID_Start = /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08BD\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312E\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FEA\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC03-\\uDC37\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDF00-\\uDF19]|\\uD806[\\uDCA0-\\uDCDF\\uDCFF\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE83\\uDE86-\\uDE89\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1]|\\uD821[\\uDC00-\\uDFEC]|\\uD822[\\uDC00-\\uDEF2]|\\uD82C[\\uDC00-\\uDD1E\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]/\nmodule.exports.ID_Continue = /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08BD\\u08D4-\\u08E1\\u08E3-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u09FC\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AF9-\\u0AFF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C80-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D00-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D54-\\u0D57\\u0D5F-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1C80-\\u1C88\\u1CD0-\\u1CD2\\u1CD4-\\u1CF9\\u1D00-\\u1DF9\\u1DFB-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312E\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FEA\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C5\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA8FD\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDDFD\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE0\\uDF00-\\uDF1F\\uDF2D-\\uDF4A\\uDF50-\\uDF7A\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE38-\\uDE3A\\uDE3F\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE6\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC00-\\uDC46\\uDC66-\\uDC6F\\uDC7F-\\uDCBA\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD00-\\uDD34\\uDD36-\\uDD3F\\uDD50-\\uDD73\\uDD76\\uDD80-\\uDDC4\\uDDCA-\\uDDCC\\uDDD0-\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE37\\uDE3E\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEEA\\uDEF0-\\uDEF9\\uDF00-\\uDF03\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3C-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF50\\uDF57\\uDF5D-\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC00-\\uDC4A\\uDC50-\\uDC59\\uDC80-\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDB5\\uDDB8-\\uDDC0\\uDDD8-\\uDDDD\\uDE00-\\uDE40\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEB7\\uDEC0-\\uDEC9\\uDF00-\\uDF19\\uDF1D-\\uDF2B\\uDF30-\\uDF39]|\\uD806[\\uDCA0-\\uDCE9\\uDCFF\\uDE00-\\uDE3E\\uDE47\\uDE50-\\uDE83\\uDE86-\\uDE99\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC36\\uDC38-\\uDC40\\uDC50-\\uDC59\\uDC72-\\uDC8F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD47\\uDD50-\\uDD59]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDED0-\\uDEED\\uDEF0-\\uDEF4\\uDF00-\\uDF36\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50-\\uDF7E\\uDF8F-\\uDF9F\\uDFE0\\uDFE1]|\\uD821[\\uDC00-\\uDFEC]|\\uD822[\\uDC00-\\uDEF2]|\\uD82C[\\uDC00-\\uDD1E\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A]|\\uD83A[\\uDC00-\\uDCC4\\uDCD0-\\uDCD6\\uDD00-\\uDD4A\\uDD50-\\uDD59]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uDB40[\\uDD00-\\uDDEF]/\n", "const unicode = require('../lib/unicode')\n\nmodule.exports = {\n isSpaceSeparator (c) {\n return typeof c === 'string' && unicode.Space_Separator.test(c)\n },\n\n isIdStartChar (c) {\n return typeof c === 'string' && (\n (c >= 'a' && c <= 'z') ||\n (c >= 'A' && c <= 'Z') ||\n (c === '$') || (c === '_') ||\n unicode.ID_Start.test(c)\n )\n },\n\n isIdContinueChar (c) {\n return typeof c === 'string' && (\n (c >= 'a' && c <= 'z') ||\n (c >= 'A' && c <= 'Z') ||\n (c >= '0' && c <= '9') ||\n (c === '$') || (c === '_') ||\n (c === '\\u200C') || (c === '\\u200D') ||\n unicode.ID_Continue.test(c)\n )\n },\n\n isDigit (c) {\n return typeof c === 'string' && /[0-9]/.test(c)\n },\n\n isHexDigit (c) {\n return typeof c === 'string' && /[0-9A-Fa-f]/.test(c)\n },\n}\n", "const util = require('./util')\n\nlet source\nlet parseState\nlet stack\nlet pos\nlet line\nlet column\nlet token\nlet key\nlet root\n\nmodule.exports = function parse (text, reviver) {\n source = String(text)\n parseState = 'start'\n stack = []\n pos = 0\n line = 1\n column = 0\n token = undefined\n key = undefined\n root = undefined\n\n do {\n token = lex()\n\n // This code is unreachable.\n // if (!parseStates[parseState]) {\n // throw invalidParseState()\n // }\n\n parseStates[parseState]()\n } while (token.type !== 'eof')\n\n if (typeof reviver === 'function') {\n return internalize({'': root}, '', reviver)\n }\n\n return root\n}\n\nfunction internalize (holder, name, reviver) {\n const value = holder[name]\n if (value != null && typeof value === 'object') {\n if (Array.isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const key = String(i)\n const replacement = internalize(value, key, reviver)\n if (replacement === undefined) {\n delete value[key]\n } else {\n Object.defineProperty(value, key, {\n value: replacement,\n writable: true,\n enumerable: true,\n configurable: true,\n })\n }\n }\n } else {\n for (const key in value) {\n const replacement = internalize(value, key, reviver)\n if (replacement === undefined) {\n delete value[key]\n } else {\n Object.defineProperty(value, key, {\n value: replacement,\n writable: true,\n enumerable: true,\n configurable: true,\n })\n }\n }\n }\n }\n\n return reviver.call(holder, name, value)\n}\n\nlet lexState\nlet buffer\nlet doubleQuote\nlet sign\nlet c\n\nfunction lex () {\n lexState = 'default'\n buffer = ''\n doubleQuote = false\n sign = 1\n\n for (;;) {\n c = peek()\n\n // This code is unreachable.\n // if (!lexStates[lexState]) {\n // throw invalidLexState(lexState)\n // }\n\n const token = lexStates[lexState]()\n if (token) {\n return token\n }\n }\n}\n\nfunction peek () {\n if (source[pos]) {\n return String.fromCodePoint(source.codePointAt(pos))\n }\n}\n\nfunction read () {\n const c = peek()\n\n if (c === '\\n') {\n line++\n column = 0\n } else if (c) {\n column += c.length\n } else {\n column++\n }\n\n if (c) {\n pos += c.length\n }\n\n return c\n}\n\nconst lexStates = {\n default () {\n switch (c) {\n case '\\t':\n case '\\v':\n case '\\f':\n case ' ':\n case '\\u00A0':\n case '\\uFEFF':\n case '\\n':\n case '\\r':\n case '\\u2028':\n case '\\u2029':\n read()\n return\n\n case '/':\n read()\n lexState = 'comment'\n return\n\n case undefined:\n read()\n return newToken('eof')\n }\n\n if (util.isSpaceSeparator(c)) {\n read()\n return\n }\n\n // This code is unreachable.\n // if (!lexStates[parseState]) {\n // throw invalidLexState(parseState)\n // }\n\n return lexStates[parseState]()\n },\n\n comment () {\n switch (c) {\n case '*':\n read()\n lexState = 'multiLineComment'\n return\n\n case '/':\n read()\n lexState = 'singleLineComment'\n return\n }\n\n throw invalidChar(read())\n },\n\n multiLineComment () {\n switch (c) {\n case '*':\n read()\n lexState = 'multiLineCommentAsterisk'\n return\n\n case undefined:\n throw invalidChar(read())\n }\n\n read()\n },\n\n multiLineCommentAsterisk () {\n switch (c) {\n case '*':\n read()\n return\n\n case '/':\n read()\n lexState = 'default'\n return\n\n case undefined:\n throw invalidChar(read())\n }\n\n read()\n lexState = 'multiLineComment'\n },\n\n singleLineComment () {\n switch (c) {\n case '\\n':\n case '\\r':\n case '\\u2028':\n case '\\u2029':\n read()\n lexState = 'default'\n return\n\n case undefined:\n read()\n return newToken('eof')\n }\n\n read()\n },\n\n value () {\n switch (c) {\n case '{':\n case '[':\n return newToken('punctuator', read())\n\n case 'n':\n read()\n literal('ull')\n return newToken('null', null)\n\n case 't':\n read()\n literal('rue')\n return newToken('boolean', true)\n\n case 'f':\n read()\n literal('alse')\n return newToken('boolean', false)\n\n case '-':\n case '+':\n if (read() === '-') {\n sign = -1\n }\n\n lexState = 'sign'\n return\n\n case '.':\n buffer = read()\n lexState = 'decimalPointLeading'\n return\n\n case '0':\n buffer = read()\n lexState = 'zero'\n return\n\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9':\n buffer = read()\n lexState = 'decimalInteger'\n return\n\n case 'I':\n read()\n literal('nfinity')\n return newToken('numeric', Infinity)\n\n case 'N':\n read()\n literal('aN')\n return newToken('numeric', NaN)\n\n case '\"':\n case \"'\":\n doubleQuote = (read() === '\"')\n buffer = ''\n lexState = 'string'\n return\n }\n\n throw invalidChar(read())\n },\n\n identifierNameStartEscape () {\n if (c !== 'u') {\n throw invalidChar(read())\n }\n\n read()\n const u = unicodeEscape()\n switch (u) {\n case '$':\n case '_':\n break\n\n default:\n if (!util.isIdStartChar(u)) {\n throw invalidIdentifier()\n }\n\n break\n }\n\n buffer += u\n lexState = 'identifierName'\n },\n\n identifierName () {\n switch (c) {\n case '$':\n case '_':\n case '\\u200C':\n case '\\u200D':\n buffer += read()\n return\n\n case '\\\\':\n read()\n lexState = 'identifierNameEscape'\n return\n }\n\n if (util.isIdContinueChar(c)) {\n buffer += read()\n return\n }\n\n return newToken('identifier', buffer)\n },\n\n identifierNameEscape () {\n if (c !== 'u') {\n throw invalidChar(read())\n }\n\n read()\n const u = unicodeEscape()\n switch (u) {\n case '$':\n case '_':\n case '\\u200C':\n case '\\u200D':\n break\n\n default:\n if (!util.isIdContinueChar(u)) {\n throw invalidIdentifier()\n }\n\n break\n }\n\n buffer += u\n lexState = 'identifierName'\n },\n\n sign () {\n switch (c) {\n case '.':\n buffer = read()\n lexState = 'decimalPointLeading'\n return\n\n case '0':\n buffer = read()\n lexState = 'zero'\n return\n\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9':\n buffer = read()\n lexState = 'decimalInteger'\n return\n\n case 'I':\n read()\n literal('nfinity')\n return newToken('numeric', sign * Infinity)\n\n case 'N':\n read()\n literal('aN')\n return newToken('numeric', NaN)\n }\n\n throw invalidChar(read())\n },\n\n zero () {\n switch (c) {\n case '.':\n buffer += read()\n lexState = 'decimalPoint'\n return\n\n case 'e':\n case 'E':\n buffer += read()\n lexState = 'decimalExponent'\n return\n\n case 'x':\n case 'X':\n buffer += read()\n lexState = 'hexadecimal'\n return\n }\n\n return newToken('numeric', sign * 0)\n },\n\n decimalInteger () {\n switch (c) {\n case '.':\n buffer += read()\n lexState = 'decimalPoint'\n return\n\n case 'e':\n case 'E':\n buffer += read()\n lexState = 'decimalExponent'\n return\n }\n\n if (util.isDigit(c)) {\n buffer += read()\n return\n }\n\n return newToken('numeric', sign * Number(buffer))\n },\n\n decimalPointLeading () {\n if (util.isDigit(c)) {\n buffer += read()\n lexState = 'decimalFraction'\n return\n }\n\n throw invalidChar(read())\n },\n\n decimalPoint () {\n switch (c) {\n case 'e':\n case 'E':\n buffer += read()\n lexState = 'decimalExponent'\n return\n }\n\n if (util.isDigit(c)) {\n buffer += read()\n lexState = 'decimalFraction'\n return\n }\n\n return newToken('numeric', sign * Number(buffer))\n },\n\n decimalFraction () {\n switch (c) {\n case 'e':\n case 'E':\n buffer += read()\n lexState = 'decimalExponent'\n return\n }\n\n if (util.isDigit(c)) {\n buffer += read()\n return\n }\n\n return newToken('numeric', sign * Number(buffer))\n },\n\n decimalExponent () {\n switch (c) {\n case '+':\n case '-':\n buffer += read()\n lexState = 'decimalExponentSign'\n return\n }\n\n if (util.isDigit(c)) {\n buffer += read()\n lexState = 'decimalExponentInteger'\n return\n }\n\n throw invalidChar(read())\n },\n\n decimalExponentSign () {\n if (util.isDigit(c)) {\n buffer += read()\n lexState = 'decimalExponentInteger'\n return\n }\n\n throw invalidChar(read())\n },\n\n decimalExponentInteger () {\n if (util.isDigit(c)) {\n buffer += read()\n return\n }\n\n return newToken('numeric', sign * Number(buffer))\n },\n\n hexadecimal () {\n if (util.isHexDigit(c)) {\n buffer += read()\n lexState = 'hexadecimalInteger'\n return\n }\n\n throw invalidChar(read())\n },\n\n hexadecimalInteger () {\n if (util.isHexDigit(c)) {\n buffer += read()\n return\n }\n\n return newToken('numeric', sign * Number(buffer))\n },\n\n string () {\n switch (c) {\n case '\\\\':\n read()\n buffer += escape()\n return\n\n case '\"':\n if (doubleQuote) {\n read()\n return newToken('string', buffer)\n }\n\n buffer += read()\n return\n\n case \"'\":\n if (!doubleQuote) {\n read()\n return newToken('string', buffer)\n }\n\n buffer += read()\n return\n\n case '\\n':\n case '\\r':\n throw invalidChar(read())\n\n case '\\u2028':\n case '\\u2029':\n separatorChar(c)\n break\n\n case undefined:\n throw invalidChar(read())\n }\n\n buffer += read()\n },\n\n start () {\n switch (c) {\n case '{':\n case '[':\n return newToken('punctuator', read())\n\n // This code is unreachable since the default lexState handles eof.\n // case undefined:\n // return newToken('eof')\n }\n\n lexState = 'value'\n },\n\n beforePropertyName () {\n switch (c) {\n case '$':\n case '_':\n buffer = read()\n lexState = 'identifierName'\n return\n\n case '\\\\':\n read()\n lexState = 'identifierNameStartEscape'\n return\n\n case '}':\n return newToken('punctuator', read())\n\n case '\"':\n case \"'\":\n doubleQuote = (read() === '\"')\n lexState = 'string'\n return\n }\n\n if (util.isIdStartChar(c)) {\n buffer += read()\n lexState = 'identifierName'\n return\n }\n\n throw invalidChar(read())\n },\n\n afterPropertyName () {\n if (c === ':') {\n return newToken('punctuator', read())\n }\n\n throw invalidChar(read())\n },\n\n beforePropertyValue () {\n lexState = 'value'\n },\n\n afterPropertyValue () {\n switch (c) {\n case ',':\n case '}':\n return newToken('punctuator', read())\n }\n\n throw invalidChar(read())\n },\n\n beforeArrayValue () {\n if (c === ']') {\n return newToken('punctuator', read())\n }\n\n lexState = 'value'\n },\n\n afterArrayValue () {\n switch (c) {\n case ',':\n case ']':\n return newToken('punctuator', read())\n }\n\n throw invalidChar(read())\n },\n\n end () {\n // This code is unreachable since it's handled by the default lexState.\n // if (c === undefined) {\n // read()\n // return newToken('eof')\n // }\n\n throw invalidChar(read())\n },\n}\n\nfunction newToken (type, value) {\n return {\n type,\n value,\n line,\n column,\n }\n}\n\nfunction literal (s) {\n for (const c of s) {\n const p = peek()\n\n if (p !== c) {\n throw invalidChar(read())\n }\n\n read()\n }\n}\n\nfunction escape () {\n const c = peek()\n switch (c) {\n case 'b':\n read()\n return '\\b'\n\n case 'f':\n read()\n return '\\f'\n\n case 'n':\n read()\n return '\\n'\n\n case 'r':\n read()\n return '\\r'\n\n case 't':\n read()\n return '\\t'\n\n case 'v':\n read()\n return '\\v'\n\n case '0':\n read()\n if (util.isDigit(peek())) {\n throw invalidChar(read())\n }\n\n return '\\0'\n\n case 'x':\n read()\n return hexEscape()\n\n case 'u':\n read()\n return unicodeEscape()\n\n case '\\n':\n case '\\u2028':\n case '\\u2029':\n read()\n return ''\n\n case '\\r':\n read()\n if (peek() === '\\n') {\n read()\n }\n\n return ''\n\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9':\n throw invalidChar(read())\n\n case undefined:\n throw invalidChar(read())\n }\n\n return read()\n}\n\nfunction hexEscape () {\n let buffer = ''\n let c = peek()\n\n if (!util.isHexDigit(c)) {\n throw invalidChar(read())\n }\n\n buffer += read()\n\n c = peek()\n if (!util.isHexDigit(c)) {\n throw invalidChar(read())\n }\n\n buffer += read()\n\n return String.fromCodePoint(parseInt(buffer, 16))\n}\n\nfunction unicodeEscape () {\n let buffer = ''\n let count = 4\n\n while (count-- > 0) {\n const c = peek()\n if (!util.isHexDigit(c)) {\n throw invalidChar(read())\n }\n\n buffer += read()\n }\n\n return String.fromCodePoint(parseInt(buffer, 16))\n}\n\nconst parseStates = {\n start () {\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n push()\n },\n\n beforePropertyName () {\n switch (token.type) {\n case 'identifier':\n case 'string':\n key = token.value\n parseState = 'afterPropertyName'\n return\n\n case 'punctuator':\n // This code is unreachable since it's handled by the lexState.\n // if (token.value !== '}') {\n // throw invalidToken()\n // }\n\n pop()\n return\n\n case 'eof':\n throw invalidEOF()\n }\n\n // This code is unreachable since it's handled by the lexState.\n // throw invalidToken()\n },\n\n afterPropertyName () {\n // This code is unreachable since it's handled by the lexState.\n // if (token.type !== 'punctuator' || token.value !== ':') {\n // throw invalidToken()\n // }\n\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n parseState = 'beforePropertyValue'\n },\n\n beforePropertyValue () {\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n push()\n },\n\n beforeArrayValue () {\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n if (token.type === 'punctuator' && token.value === ']') {\n pop()\n return\n }\n\n push()\n },\n\n afterPropertyValue () {\n // This code is unreachable since it's handled by the lexState.\n // if (token.type !== 'punctuator') {\n // throw invalidToken()\n // }\n\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n switch (token.value) {\n case ',':\n parseState = 'beforePropertyName'\n return\n\n case '}':\n pop()\n }\n\n // This code is unreachable since it's handled by the lexState.\n // throw invalidToken()\n },\n\n afterArrayValue () {\n // This code is unreachable since it's handled by the lexState.\n // if (token.type !== 'punctuator') {\n // throw invalidToken()\n // }\n\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n switch (token.value) {\n case ',':\n parseState = 'beforeArrayValue'\n return\n\n case ']':\n pop()\n }\n\n // This code is unreachable since it's handled by the lexState.\n // throw invalidToken()\n },\n\n end () {\n // This code is unreachable since it's handled by the lexState.\n // if (token.type !== 'eof') {\n // throw invalidToken()\n // }\n },\n}\n\nfunction push () {\n let value\n\n switch (token.type) {\n case 'punctuator':\n switch (token.value) {\n case '{':\n value = {}\n break\n\n case '[':\n value = []\n break\n }\n\n break\n\n case 'null':\n case 'boolean':\n case 'numeric':\n case 'string':\n value = token.value\n break\n\n // This code is unreachable.\n // default:\n // throw invalidToken()\n }\n\n if (root === undefined) {\n root = value\n } else {\n const parent = stack[stack.length - 1]\n if (Array.isArray(parent)) {\n parent.push(value)\n } else {\n Object.defineProperty(parent, key, {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n })\n }\n }\n\n if (value !== null && typeof value === 'object') {\n stack.push(value)\n\n if (Array.isArray(value)) {\n parseState = 'beforeArrayValue'\n } else {\n parseState = 'beforePropertyName'\n }\n } else {\n const current = stack[stack.length - 1]\n if (current == null) {\n parseState = 'end'\n } else if (Array.isArray(current)) {\n parseState = 'afterArrayValue'\n } else {\n parseState = 'afterPropertyValue'\n }\n }\n}\n\nfunction pop () {\n stack.pop()\n\n const current = stack[stack.length - 1]\n if (current == null) {\n parseState = 'end'\n } else if (Array.isArray(current)) {\n parseState = 'afterArrayValue'\n } else {\n parseState = 'afterPropertyValue'\n }\n}\n\n// This code is unreachable.\n// function invalidParseState () {\n// return new Error(`JSON5: invalid parse state '${parseState}'`)\n// }\n\n// This code is unreachable.\n// function invalidLexState (state) {\n// return new Error(`JSON5: invalid lex state '${state}'`)\n// }\n\nfunction invalidChar (c) {\n if (c === undefined) {\n return syntaxError(`JSON5: invalid end of input at ${line}:${column}`)\n }\n\n return syntaxError(`JSON5: invalid character '${formatChar(c)}' at ${line}:${column}`)\n}\n\nfunction invalidEOF () {\n return syntaxError(`JSON5: invalid end of input at ${line}:${column}`)\n}\n\n// This code is unreachable.\n// function invalidToken () {\n// if (token.type === 'eof') {\n// return syntaxError(`JSON5: invalid end of input at ${line}:${column}`)\n// }\n\n// const c = String.fromCodePoint(token.value.codePointAt(0))\n// return syntaxError(`JSON5: invalid character '${formatChar(c)}' at ${line}:${column}`)\n// }\n\nfunction invalidIdentifier () {\n column -= 5\n return syntaxError(`JSON5: invalid identifier character at ${line}:${column}`)\n}\n\nfunction separatorChar (c) {\n console.warn(`JSON5: '${formatChar(c)}' in strings is not valid ECMAScript; consider escaping`)\n}\n\nfunction formatChar (c) {\n const replacements = {\n \"'\": \"\\\\'\",\n '\"': '\\\\\"',\n '\\\\': '\\\\\\\\',\n '\\b': '\\\\b',\n '\\f': '\\\\f',\n '\\n': '\\\\n',\n '\\r': '\\\\r',\n '\\t': '\\\\t',\n '\\v': '\\\\v',\n '\\0': '\\\\0',\n '\\u2028': '\\\\u2028',\n '\\u2029': '\\\\u2029',\n }\n\n if (replacements[c]) {\n return replacements[c]\n }\n\n if (c < ' ') {\n const hexString = c.charCodeAt(0).toString(16)\n return '\\\\x' + ('00' + hexString).substring(hexString.length)\n }\n\n return c\n}\n\nfunction syntaxError (message) {\n const err = new SyntaxError(message)\n err.lineNumber = line\n err.columnNumber = column\n return err\n}\n", "const util = require('./util')\n\nmodule.exports = function stringify (value, replacer, space) {\n const stack = []\n let indent = ''\n let propertyList\n let replacerFunc\n let gap = ''\n let quote\n\n if (\n replacer != null &&\n typeof replacer === 'object' &&\n !Array.isArray(replacer)\n ) {\n space = replacer.space\n quote = replacer.quote\n replacer = replacer.replacer\n }\n\n if (typeof replacer === 'function') {\n replacerFunc = replacer\n } else if (Array.isArray(replacer)) {\n propertyList = []\n for (const v of replacer) {\n let item\n\n if (typeof v === 'string') {\n item = v\n } else if (\n typeof v === 'number' ||\n v instanceof String ||\n v instanceof Number\n ) {\n item = String(v)\n }\n\n if (item !== undefined && propertyList.indexOf(item) < 0) {\n propertyList.push(item)\n }\n }\n }\n\n if (space instanceof Number) {\n space = Number(space)\n } else if (space instanceof String) {\n space = String(space)\n }\n\n if (typeof space === 'number') {\n if (space > 0) {\n space = Math.min(10, Math.floor(space))\n gap = ' '.substr(0, space)\n }\n } else if (typeof space === 'string') {\n gap = space.substr(0, 10)\n }\n\n return serializeProperty('', {'': value})\n\n function serializeProperty (key, holder) {\n let value = holder[key]\n if (value != null) {\n if (typeof value.toJSON5 === 'function') {\n value = value.toJSON5(key)\n } else if (typeof value.toJSON === 'function') {\n value = value.toJSON(key)\n }\n }\n\n if (replacerFunc) {\n value = replacerFunc.call(holder, key, value)\n }\n\n if (value instanceof Number) {\n value = Number(value)\n } else if (value instanceof String) {\n value = String(value)\n } else if (value instanceof Boolean) {\n value = value.valueOf()\n }\n\n switch (value) {\n case null: return 'null'\n case true: return 'true'\n case false: return 'false'\n }\n\n if (typeof value === 'string') {\n return quoteString(value, false)\n }\n\n if (typeof value === 'number') {\n return String(value)\n }\n\n if (typeof value === 'object') {\n return Array.isArray(value) ? serializeArray(value) : serializeObject(value)\n }\n\n return undefined\n }\n\n function quoteString (value) {\n const quotes = {\n \"'\": 0.1,\n '\"': 0.2,\n }\n\n const replacements = {\n \"'\": \"\\\\'\",\n '\"': '\\\\\"',\n '\\\\': '\\\\\\\\',\n '\\b': '\\\\b',\n '\\f': '\\\\f',\n '\\n': '\\\\n',\n '\\r': '\\\\r',\n '\\t': '\\\\t',\n '\\v': '\\\\v',\n '\\0': '\\\\0',\n '\\u2028': '\\\\u2028',\n '\\u2029': '\\\\u2029',\n }\n\n let product = ''\n\n for (let i = 0; i < value.length; i++) {\n const c = value[i]\n switch (c) {\n case \"'\":\n case '\"':\n quotes[c]++\n product += c\n continue\n\n case '\\0':\n if (util.isDigit(value[i + 1])) {\n product += '\\\\x00'\n continue\n }\n }\n\n if (replacements[c]) {\n product += replacements[c]\n continue\n }\n\n if (c < ' ') {\n let hexString = c.charCodeAt(0).toString(16)\n product += '\\\\x' + ('00' + hexString).substring(hexString.length)\n continue\n }\n\n product += c\n }\n\n const quoteChar = quote || Object.keys(quotes).reduce((a, b) => (quotes[a] < quotes[b]) ? a : b)\n\n product = product.replace(new RegExp(quoteChar, 'g'), replacements[quoteChar])\n\n return quoteChar + product + quoteChar\n }\n\n function serializeObject (value) {\n if (stack.indexOf(value) >= 0) {\n throw TypeError('Converting circular structure to JSON5')\n }\n\n stack.push(value)\n\n let stepback = indent\n indent = indent + gap\n\n let keys = propertyList || Object.keys(value)\n let partial = []\n for (const key of keys) {\n const propertyString = serializeProperty(key, value)\n if (propertyString !== undefined) {\n let member = serializeKey(key) + ':'\n if (gap !== '') {\n member += ' '\n }\n member += propertyString\n partial.push(member)\n }\n }\n\n let final\n if (partial.length === 0) {\n final = '{}'\n } else {\n let properties\n if (gap === '') {\n properties = partial.join(',')\n final = '{' + properties + '}'\n } else {\n let separator = ',\\n' + indent\n properties = partial.join(separator)\n final = '{\\n' + indent + properties + ',\\n' + stepback + '}'\n }\n }\n\n stack.pop()\n indent = stepback\n return final\n }\n\n function serializeKey (key) {\n if (key.length === 0) {\n return quoteString(key, true)\n }\n\n const firstChar = String.fromCodePoint(key.codePointAt(0))\n if (!util.isIdStartChar(firstChar)) {\n return quoteString(key, true)\n }\n\n for (let i = firstChar.length; i < key.length; i++) {\n if (!util.isIdContinueChar(String.fromCodePoint(key.codePointAt(i)))) {\n return quoteString(key, true)\n }\n }\n\n return key\n }\n\n function serializeArray (value) {\n if (stack.indexOf(value) >= 0) {\n throw TypeError('Converting circular structure to JSON5')\n }\n\n stack.push(value)\n\n let stepback = indent\n indent = indent + gap\n\n let partial = []\n for (let i = 0; i < value.length; i++) {\n const propertyString = serializeProperty(String(i), value)\n partial.push((propertyString !== undefined) ? propertyString : 'null')\n }\n\n let final\n if (partial.length === 0) {\n final = '[]'\n } else {\n if (gap === '') {\n let properties = partial.join(',')\n final = '[' + properties + ']'\n } else {\n let separator = ',\\n' + indent\n let properties = partial.join(separator)\n final = '[\\n' + indent + properties + ',\\n' + stepback + ']'\n }\n }\n\n stack.pop()\n indent = stepback\n return final\n }\n}\n", "const parse = require('./parse')\nconst stringify = require('./stringify')\n\nconst JSON5 = {\n parse,\n stringify,\n}\n\nmodule.exports = JSON5\n", "'use strict';\nmodule.exports = x => {\n\tif (typeof x !== 'string') {\n\t\tthrow new TypeError('Expected a string, got ' + typeof x);\n\t}\n\n\t// Catches EFBBBF (UTF-8 BOM) because the buffer-to-string\n\t// conversion translates it to FEFF (UTF-16 BOM)\n\tif (x.charCodeAt(0) === 0xFEFF) {\n\t\treturn x.slice(1);\n\t}\n\n\treturn x;\n};\n", "import * as path from \"path\";\nimport * as fs from \"fs\";\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nimport JSON5 = require(\"json5\");\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nimport StripBom = require(\"strip-bom\");\n\n/**\n * Typing for the parts of tsconfig that we care about\n */\nexport interface Tsconfig {\n extends?: string | string[];\n compilerOptions?: {\n baseUrl?: string;\n paths?: { [key: string]: Array<string> };\n strict?: boolean;\n };\n}\n\nexport interface TsConfigLoaderResult {\n tsConfigPath: string | undefined;\n baseUrl: string | undefined;\n paths: { [key: string]: Array<string> } | undefined;\n}\n\nexport interface TsConfigLoaderParams {\n getEnv: (key: string) => string | undefined;\n cwd: string;\n loadSync?(\n cwd: string,\n filename?: string,\n baseUrl?: string\n ): TsConfigLoaderResult;\n}\n\nexport function tsConfigLoader({\n getEnv,\n cwd,\n loadSync = loadSyncDefault,\n}: TsConfigLoaderParams): TsConfigLoaderResult {\n const TS_NODE_PROJECT = getEnv(\"TS_NODE_PROJECT\");\n const TS_NODE_BASEURL = getEnv(\"TS_NODE_BASEURL\");\n\n // tsconfig.loadSync handles if TS_NODE_PROJECT is a file or directory\n // and also overrides baseURL if TS_NODE_BASEURL is available.\n const loadResult = loadSync(cwd, TS_NODE_PROJECT, TS_NODE_BASEURL);\n return loadResult;\n}\n\nfunction loadSyncDefault(\n cwd: string,\n filename?: string,\n baseUrl?: string\n): TsConfigLoaderResult {\n // Tsconfig.loadSync uses path.resolve. This is why we can use an absolute path as filename\n\n const configPath = resolveConfigPath(cwd, filename);\n\n if (!configPath) {\n return {\n tsConfigPath: undefined,\n baseUrl: undefined,\n paths: undefined,\n };\n }\n const config = loadTsconfig(configPath);\n\n return {\n tsConfigPath: configPath,\n baseUrl:\n baseUrl ||\n (config && config.compilerOptions && config.compilerOptions.baseUrl),\n paths: config && config.compilerOptions && config.compilerOptions.paths,\n };\n}\n\nfunction resolveConfigPath(cwd: string, filename?: string): string | undefined {\n if (filename) {\n const absolutePath = fs.lstatSync(filename).isDirectory()\n ? path.resolve(filename, \"./tsconfig.json\")\n : path.resolve(cwd, filename);\n\n return absolutePath;\n }\n\n if (fs.statSync(cwd).isFile()) {\n return path.resolve(cwd);\n }\n\n const configAbsolutePath = walkForTsConfig(cwd);\n return configAbsolutePath ? path.resolve(configAbsolutePath) : undefined;\n}\nexport function walkForTsConfig(\n directory: string,\n readdirSync: (path: string) => string[] = fs.readdirSync\n): string | undefined {\n const files = readdirSync(directory);\n const filesToCheck = [\"tsconfig.json\", \"jsconfig.json\"];\n for (const fileToCheck of filesToCheck) {\n if (files.indexOf(fileToCheck) !== -1) {\n return path.join(directory, fileToCheck);\n }\n }\n\n const parentDirectory = path.dirname(directory);\n\n // If we reached the top\n if (directory === parentDirectory) {\n return undefined;\n }\n\n return walkForTsConfig(parentDirectory, readdirSync);\n}\n\nexport function loadTsconfig(\n configFilePath: string,\n // eslint-disable-next-line no-shadow\n existsSync: (path: string) => boolean = fs.existsSync,\n readFileSync: (filename: string) => string = (filename: string) =>\n fs.readFileSync(filename, \"utf8\")\n): Tsconfig | undefined {\n if (!existsSync(configFilePath)) {\n return undefined;\n }\n\n const configString = readFileSync(configFilePath);\n const cleanedJson = StripBom(configString);\n let config: Tsconfig;\n try {\n config = JSON5.parse(cleanedJson);\n } catch (e) {\n throw new Error(`${configFilePath} is malformed ${e.message}`);\n }\n\n let extendedConfig = config.extends;\n if (extendedConfig) {\n let base: Tsconfig;\n\n if (Array.isArray(extendedConfig)) {\n base = extendedConfig.reduce(\n (currBase, extendedConfigElement) =>\n mergeTsconfigs(\n currBase,\n loadTsconfigFromExtends(\n configFilePath,\n extendedConfigElement,\n existsSync,\n readFileSync\n )\n ),\n {}\n );\n } else {\n base = loadTsconfigFromExtends(\n configFilePath,\n extendedConfig,\n existsSync,\n readFileSync\n );\n }\n\n return mergeTsconfigs(base, config);\n }\n return config;\n}\n\n/**\n * Intended to be called only from loadTsconfig.\n * Parameters don't have defaults because they should use the same as loadTsconfig.\n */\nfunction loadTsconfigFromExtends(\n configFilePath: string,\n extendedConfigValue: string,\n // eslint-disable-next-line no-shadow\n existsSync: (path: string) => boolean,\n readFileSync: (filename: string) => string\n): Tsconfig {\n if (\n typeof extendedConfigValue === \"string\" &&\n extendedConfigValue.indexOf(\".json\") === -1\n ) {\n extendedConfigValue += \".json\";\n }\n const currentDir = path.dirname(configFilePath);\n let extendedConfigPath = path.join(currentDir, extendedConfigValue);\n if (\n extendedConfigValue.indexOf(\"/\") !== -1 &&\n extendedConfigValue.indexOf(\".\") !== -1 &&\n !existsSync(extendedConfigPath)\n ) {\n extendedConfigPath = path.join(\n currentDir,\n \"node_modules\",\n extendedConfigValue\n );\n }\n\n const config =\n loadTsconfig(extendedConfigPath, existsSync, readFileSync) || {};\n\n // baseUrl should be interpreted as relative to extendedConfigPath,\n // but we need to update it so it is relative to the original tsconfig being loaded\n if (config.compilerOptions?.baseUrl) {\n const extendsDir = path.dirname(extendedConfigValue);\n config.compilerOptions.baseUrl = path.join(\n extendsDir,\n config.compilerOptions.baseUrl\n );\n }\n\n return config;\n}\n\nfunction mergeTsconfigs(\n base: Tsconfig | undefined,\n config: Tsconfig | undefined\n): Tsconfig {\n base = base || {};\n config = config || {};\n\n return {\n ...base,\n ...config,\n compilerOptions: {\n ...base.compilerOptions,\n ...config.compilerOptions,\n },\n };\n}\n", "import * as TsConfigLoader2 from \"./tsconfig-loader\";\nimport * as path from \"path\";\n\nexport interface ExplicitParams {\n baseUrl: string;\n paths: { [key: string]: Array<string> };\n mainFields?: (string | string[])[];\n addMatchAll?: boolean;\n}\n\nexport type TsConfigLoader = (\n params: TsConfigLoader2.TsConfigLoaderParams\n) => TsConfigLoader2.TsConfigLoaderResult;\n\nexport interface ConfigLoaderParams {\n cwd: string;\n explicitParams?: ExplicitParams;\n tsConfigLoader?: TsConfigLoader;\n}\n\nexport interface ConfigLoaderSuccessResult {\n resultType: \"success\";\n configFileAbsolutePath: string;\n baseUrl?: string;\n absoluteBaseUrl: string;\n paths: { [key: string]: Array<string> };\n mainFields?: (string | string[])[];\n addMatchAll?: boolean;\n}\n\nexport interface ConfigLoaderFailResult {\n resultType: \"failed\";\n message: string;\n}\n\nexport type ConfigLoaderResult =\n | ConfigLoaderSuccessResult\n | ConfigLoaderFailResult;\n\nexport function loadConfig(cwd: string = process.cwd()): ConfigLoaderResult {\n return configLoader({ cwd });\n}\n\nexport function configLoader({\n cwd,\n explicitParams,\n tsConfigLoader = TsConfigLoader2.tsConfigLoader,\n}: ConfigLoaderParams): ConfigLoaderResult {\n if (explicitParams) {\n const absoluteBaseUrl = path.isAbsolute(explicitParams.baseUrl)\n ? explicitParams.baseUrl\n : path.join(cwd, explicitParams.baseUrl);\n\n return {\n resultType: \"success\",\n configFileAbsolutePath: \"\",\n baseUrl: explicitParams.baseUrl,\n absoluteBaseUrl,\n paths: explicitParams.paths,\n mainFields: explicitParams.mainFields,\n addMatchAll: explicitParams.addMatchAll,\n };\n }\n\n // Load tsconfig and create path matching function\n const loadResult = tsConfigLoader({\n cwd,\n getEnv: (key: string) => process.env[key],\n });\n\n if (!loadResult.tsConfigPath) {\n return {\n resultType: \"failed\",\n message: \"Couldn't find tsconfig.json\",\n };\n }\n\n return {\n resultType: \"success\",\n configFileAbsolutePath: loadResult.tsConfigPath,\n baseUrl: loadResult.baseUrl,\n absoluteBaseUrl: path.resolve(\n path.dirname(loadResult.tsConfigPath),\n loadResult.baseUrl || \"\"\n ),\n paths: loadResult.paths || {},\n addMatchAll: loadResult.baseUrl !== undefined,\n };\n}\n", "'use strict';\n\nfunction hasKey(obj, keys) {\n\tvar o = obj;\n\tkeys.slice(0, -1).forEach(function (key) {\n\t\to = o[key] || {};\n\t});\n\n\tvar key = keys[keys.length - 1];\n\treturn key in o;\n}\n\nfunction isNumber(x) {\n\tif (typeof x === 'number') { return true; }\n\tif ((/^0x[0-9a-f]+$/i).test(x)) { return true; }\n\treturn (/^[-+]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(e[-+]?\\d+)?$/).test(x);\n}\n\nfunction isConstructorOrProto(obj, key) {\n\treturn (key === 'constructor' && typeof obj[key] === 'function') || key === '__proto__';\n}\n\nmodule.exports = function (args, opts) {\n\tif (!opts) { opts = {}; }\n\n\tvar flags = {\n\t\tbools: {},\n\t\tstrings: {},\n\t\tunknownFn: null,\n\t};\n\n\tif (typeof opts.unknown === 'function') {\n\t\tflags.unknownFn = opts.unknown;\n\t}\n\n\tif (typeof opts.boolean === 'boolean' && opts.boolean) {\n\t\tflags.allBools = true;\n\t} else {\n\t\t[].concat(opts.boolean).filter(Boolean).forEach(function (key) {\n\t\t\tflags.bools[key] = true;\n\t\t});\n\t}\n\n\tvar aliases = {};\n\n\tfunction aliasIsBoolean(key) {\n\t\treturn aliases[key].some(function (x) {\n\t\t\treturn flags.bools[x];\n\t\t});\n\t}\n\n\tObject.keys(opts.alias || {}).forEach(function (key) {\n\t\taliases[key] = [].concat(opts.alias[key]);\n\t\taliases[key].forEach(function (x) {\n\t\t\taliases[x] = [key].concat(aliases[key].filter(function (y) {\n\t\t\t\treturn x !== y;\n\t\t\t}));\n\t\t});\n\t});\n\n\t[].concat(opts.string).filter(Boolean).forEach(function (key) {\n\t\tflags.strings[key] = true;\n\t\tif (aliases[key]) {\n\t\t\t[].concat(aliases[key]).forEach(function (k) {\n\t\t\t\tflags.strings[k] = true;\n\t\t\t});\n\t\t}\n\t});\n\n\tvar defaults = opts.default || {};\n\n\tvar argv = { _: [] };\n\n\tfunction argDefined(key, arg) {\n\t\treturn (flags.allBools && (/^--[^=]+$/).test(arg))\n\t\t\t|| flags.strings[key]\n\t\t\t|| flags.bools[key]\n\t\t\t|| aliases[key];\n\t}\n\n\tfunction setKey(obj, keys, value) {\n\t\tvar o = obj;\n\t\tfor (var i = 0; i < keys.length - 1; i++) {\n\t\t\tvar key = keys[i];\n\t\t\tif (isConstructorOrProto(o, key)) { return; }\n\t\t\tif (o[key] === undefined) { o[key] = {}; }\n\t\t\tif (\n\t\t\t\to[key] === Object.prototype\n\t\t\t\t|| o[key] === Number.prototype\n\t\t\t\t|| o[key] === String.prototype\n\t\t\t) {\n\t\t\t\to[key] = {};\n\t\t\t}\n\t\t\tif (o[key] === Array.prototype) { o[key] = []; }\n\t\t\to = o[key];\n\t\t}\n\n\t\tvar lastKey = keys[keys.length - 1];\n\t\tif (isConstructorOrProto(o, lastKey)) { return; }\n\t\tif (\n\t\t\to === Object.prototype\n\t\t\t|| o === Number.prototype\n\t\t\t|| o === String.prototype\n\t\t) {\n\t\t\to = {};\n\t\t}\n\t\tif (o === Array.prototype) { o = []; }\n\t\tif (o[lastKey] === undefined || flags.bools[lastKey] || typeof o[lastKey] === 'boolean') {\n\t\t\to[lastKey] = value;\n\t\t} else if (Array.isArray(o[lastKey])) {\n\t\t\to[lastKey].push(value);\n\t\t} else {\n\t\t\to[lastKey] = [o[lastKey], value];\n\t\t}\n\t}\n\n\tfunction setArg(key, val, arg) {\n\t\tif (arg && flags.unknownFn && !argDefined(key, arg)) {\n\t\t\tif (flags.unknownFn(arg) === false) { return; }\n\t\t}\n\n\t\tvar value = !flags.strings[key] && isNumber(val)\n\t\t\t? Number(val)\n\t\t\t: val;\n\t\tsetKey(argv, key.split('.'), value);\n\n\t\t(aliases[key] || []).forEach(function (x) {\n\t\t\tsetKey(argv, x.split('.'), value);\n\t\t});\n\t}\n\n\tObject.keys(flags.bools).forEach(function (key) {\n\t\tsetArg(key, defaults[key] === undefined ? false : defaults[key]);\n\t});\n\n\tvar notFlags = [];\n\n\tif (args.indexOf('--') !== -1) {\n\t\tnotFlags = args.slice(args.indexOf('--') + 1);\n\t\targs = args.slice(0, args.indexOf('--'));\n\t}\n\n\tfor (var i = 0; i < args.length; i++) {\n\t\tvar arg = args[i];\n\t\tvar key;\n\t\tvar next;\n\n\t\tif ((/^--.+=/).test(arg)) {\n\t\t\t// Using [\\s\\S] instead of . because js doesn't support the\n\t\t\t// 'dotall' regex modifier. See:\n\t\t\t// http://stackoverflow.com/a/1068308/13216\n\t\t\tvar m = arg.match(/^--([^=]+)=([\\s\\S]*)$/);\n\t\t\tkey = m[1];\n\t\t\tvar value = m[2];\n\t\t\tif (flags.bools[key]) {\n\t\t\t\tvalue = value !== 'false';\n\t\t\t}\n\t\t\tsetArg(key, value, arg);\n\t\t} else if ((/^--no-.+/).test(arg)) {\n\t\t\tkey = arg.match(/^--no-(.+)/)[1];\n\t\t\tsetArg(key, false, arg);\n\t\t} else if ((/^--.+/).test(arg)) {\n\t\t\tkey = arg.match(/^--(.+)/)[1];\n\t\t\tnext = args[i + 1];\n\t\t\tif (\n\t\t\t\tnext !== undefined\n\t\t\t\t&& !(/^(-|--)[^-]/).test(next)\n\t\t\t\t&& !flags.bools[key]\n\t\t\t\t&& !flags.allBools\n\t\t\t\t&& (aliases[key] ? !aliasIsBoolean(key) : true)\n\t\t\t) {\n\t\t\t\tsetArg(key, next, arg);\n\t\t\t\ti += 1;\n\t\t\t} else if ((/^(true|false)$/).test(next)) {\n\t\t\t\tsetArg(key, next === 'true', arg);\n\t\t\t\ti += 1;\n\t\t\t} else {\n\t\t\t\tsetArg(key, flags.strings[key] ? '' : true, arg);\n\t\t\t}\n\t\t} else if ((/^-[^-]+/).test(arg)) {\n\t\t\tvar letters = arg.slice(1, -1).split('');\n\n\t\t\tvar broken = false;\n\t\t\tfor (var j = 0; j < letters.length; j++) {\n\t\t\t\tnext = arg.slice(j + 2);\n\n\t\t\t\tif (next === '-') {\n\t\t\t\t\tsetArg(letters[j], next, arg);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif ((/[A-Za-z]/).test(letters[j]) && next[0] === '=') {\n\t\t\t\t\tsetArg(letters[j], next.slice(1), arg);\n\t\t\t\t\tbroken = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(/[A-Za-z]/).test(letters[j])\n\t\t\t\t\t&& (/-?\\d+(\\.\\d*)?(e-?\\d+)?$/).test(next)\n\t\t\t\t) {\n\t\t\t\t\tsetArg(letters[j], next, arg);\n\t\t\t\t\tbroken = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (letters[j + 1] && letters[j + 1].match(/\\W/)) {\n\t\t\t\t\tsetArg(letters[j], arg.slice(j + 2), arg);\n\t\t\t\t\tbroken = true;\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\tsetArg(letters[j], flags.strings[letters[j]] ? '' : true, arg);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tkey = arg.slice(-1)[0];\n\t\t\tif (!broken && key !== '-') {\n\t\t\t\tif (\n\t\t\t\t\targs[i + 1]\n\t\t\t\t\t&& !(/^(-|--)[^-]/).test(args[i + 1])\n\t\t\t\t\t&& !flags.bools[key]\n\t\t\t\t\t&& (aliases[key] ? !aliasIsBoolean(key) : true)\n\t\t\t\t) {\n\t\t\t\t\tsetArg(key, args[i + 1], arg);\n\t\t\t\t\ti += 1;\n\t\t\t\t} else if (args[i + 1] && (/^(true|false)$/).test(args[i + 1])) {\n\t\t\t\t\tsetArg(key, args[i + 1] === 'true', arg);\n\t\t\t\t\ti += 1;\n\t\t\t\t} else {\n\t\t\t\t\tsetArg(key, flags.strings[key] ? '' : true, arg);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (!flags.unknownFn || flags.unknownFn(arg) !== false) {\n\t\t\t\targv._.push(flags.strings._ || !isNumber(arg) ? arg : Number(arg));\n\t\t\t}\n\t\t\tif (opts.stopEarly) {\n\t\t\t\targv._.push.apply(argv._, args.slice(i + 1));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tObject.keys(defaults).forEach(function (k) {\n\t\tif (!hasKey(argv, k.split('.'))) {\n\t\t\tsetKey(argv, k.split('.'), defaults[k]);\n\n\t\t\t(aliases[k] || []).forEach(function (x) {\n\t\t\t\tsetKey(argv, x.split('.'), defaults[k]);\n\t\t\t});\n\t\t}\n\t});\n\n\tif (opts['--']) {\n\t\targv['--'] = notFlags.slice();\n\t} else {\n\t\tnotFlags.forEach(function (k) {\n\t\t\targv._.push(k);\n\t\t});\n\t}\n\n\treturn argv;\n};\n", "import { createMatchPath } from \"./match-path-sync\";\nimport { configLoader, ExplicitParams } from \"./config-loader\";\n\nconst noOp = (): void => void 0;\n\nfunction getCoreModules(\n builtinModules: string[] | undefined\n): { [key: string]: boolean } {\n builtinModules = builtinModules || [\n \"assert\",\n \"buffer\",\n \"child_process\",\n \"cluster\",\n \"crypto\",\n \"dgram\",\n \"dns\",\n \"domain\",\n \"events\",\n \"fs\",\n \"http\",\n \"https\",\n \"net\",\n \"os\",\n \"path\",\n \"punycode\",\n \"querystring\",\n \"readline\",\n \"stream\",\n \"string_decoder\",\n \"tls\",\n \"tty\",\n \"url\",\n \"util\",\n \"v8\",\n \"vm\",\n \"zlib\",\n ];\n\n const coreModules: { [key: string]: boolean } = {};\n for (let module of builtinModules) {\n coreModules[module] = true;\n }\n\n return coreModules;\n}\n\nexport interface RegisterParams extends ExplicitParams {\n /**\n * Defaults to `--project` CLI flag or `process.cwd()`\n */\n cwd?: string;\n}\n\n/**\n * Installs a custom module load function that can adhere to paths in tsconfig.\n * Returns a function to undo paths registration.\n */\nexport function register(params?: RegisterParams): () => void {\n let cwd: string | undefined;\n let explicitParams: ExplicitParams | undefined;\n if (params) {\n cwd = params.cwd;\n if (params.baseUrl || params.paths) {\n explicitParams = params;\n }\n } else {\n // eslint-disable-next-line\n const minimist = require(\"minimist\");\n const argv = minimist(process.argv.slice(2), {\n // eslint-disable-next-line id-denylist\n string: [\"project\"],\n alias: {\n project: [\"P\"],\n },\n });\n cwd = argv.project;\n }\n\n const configLoaderResult = configLoader({\n cwd: cwd ?? process.cwd(),\n explicitParams,\n });\n\n if (configLoaderResult.resultType === \"failed\") {\n console.warn(\n `${configLoaderResult.message}. tsconfig-paths will be skipped`\n );\n\n return noOp;\n }\n\n const matchPath = createMatchPath(\n configLoaderResult.absoluteBaseUrl,\n configLoaderResult.paths,\n configLoaderResult.mainFields,\n configLoaderResult.addMatchAll\n );\n\n // Patch node's module loading\n // eslint-disable-next-line @typescript-eslint/no-require-imports,@typescript-eslint/no-var-requires\n const Module = require(\"module\");\n // eslint-disable-next-line no-underscore-dangle\n const originalResolveFilename = Module._resolveFilename;\n const coreModules = getCoreModules(Module.builtinModules);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any,no-underscore-dangle\n Module._resolveFilename = function (request: string, _parent: any): string {\n const isCoreModule = coreModules.hasOwnProperty(request);\n if (!isCoreModule) {\n const found = matchPath(request);\n if (found) {\n const modifiedArguments = [found, ...[].slice.call(arguments, 1)]; // Passes all arguments. Even those that is not specified above.\n return originalResolveFilename.apply(this, modifiedArguments);\n }\n }\n return originalResolveFilename.apply(this, arguments);\n };\n\n return () => {\n // Return node's module loading to original state.\n // eslint-disable-next-line no-underscore-dangle\n Module._resolveFilename = originalResolveFilename;\n };\n}\n", "// register is used from register.js in root dir\nexport {\n createMatchPath,\n matchFromAbsolutePaths,\n MatchPath,\n} from \"./match-path-sync\";\nexport {\n createMatchPathAsync,\n matchFromAbsolutePathsAsync,\n MatchPathAsync,\n} from \"./match-path-async\";\nexport { register } from \"./register\";\nexport {\n loadConfig,\n ConfigLoaderResult,\n ConfigLoaderSuccessResult,\n ConfigLoaderFailResult,\n} from \"./config-loader\";\nexport {\n ReadJsonSync,\n ReadJsonAsync,\n FileExistsSync,\n FileExistsAsync,\n} from \"./filesystem\";\n", "#!/usr/bin/env node\nimport { Command } from \"commander\";\nimport { select } from \"@inquirer/prompts\";\n\nimport pkg from \"../../package.json\";\nimport { generate } from \"commands/generate\";\nimport { init } from \"commands/init\";\nimport { handleError } from \"utils/handle-error\";\n\nconst program = new Command();\n\nprogram.name(\"hyper-fetch\").description(\"CLI for Hyper Fetch\").version(pkg.version);\n\nconst commands = {\n init,\n // add,\n generate,\n};\n\nObject.values(commands).forEach((command) => {\n program.addCommand(command);\n});\n\nconst main = async () => {\n try {\n let chosenCommand: string | undefined;\n\n if (process.argv[2] && Object.keys(commands).includes(process.argv[2])) {\n const command = commands[process.argv[2] as keyof typeof commands]!;\n chosenCommand = command.name();\n }\n\n if (!chosenCommand) {\n chosenCommand = await select({\n message: \"What do you want to do?\",\n choices: program.commands.map((cmd) => ({\n name: cmd.name(),\n value: cmd.name(),\n description: cmd.description(),\n })),\n });\n await program.parseAsync([process.argv[0], process.argv[1], chosenCommand]);\n } else {\n await program.parseAsync(process.argv);\n }\n } catch (e) {\n handleError(e);\n if (e instanceof Error) {\n if (e.message.includes(\"User force closed the prompt\")) {\n process.exit(0);\n }\n }\n process.exit(1);\n }\n};\n\nmain();\n", "{\n \"name\": \"@hyper-fetch/cli\",\n \"version\": \"0.0.0\",\n \"description\": \"Hyper Fetch cli for code generation and utilities\",\n \"author\": \"Maciej Pyrc <maciekpyrc@gmail.com>, Kacper Skawina <kacper.skawina@gmail.com>\",\n \"homepage\": \"https://hyperfetch.bettertyped.com/\",\n \"license\": \"Apache-2.0\",\n \"main\": \"dist/index.js\",\n \"module\": \"dist/index.js\",\n \"types\": \"dist/index.d.ts\",\n \"source\": \"src/index.ts\",\n \"cli\": \"src/cli/index.ts\",\n \"climain\": \"dist/index.js\",\n \"bin\": \"dist/index.js\",\n \"scripts\": {\n \"clean\": \"npx rimraf dist\",\n \"test\": \"node --experimental-vm-modules ../../node_modules/jest/bin/jest --watchAll --maxWorkers=3 --forceExit\",\n \"test:pipeline\": \"node --experimental-vm-modules ../../node_modules/jest/bin/jest --watchAll=false --maxWorkers=1 --no-cache --forceExit\",\n \"dev\": \"npx tsx ./src/cli/index.ts\",\n \"prebuild\": \"yarn update:version\",\n \"build\": \"yarn clean && node ../../scripts/build.js\",\n \"postbuild\": \"yarn rollup -c ../../rollup.config.js\",\n \"update:version\": \"node ../../scripts/update-package-version.js --prefix hyper-fetch-cli-v\",\n \"lint\": \"eslint . --ext .js,.jsx,.tsx,.ts --fix\",\n \"format\": \"prettier --write .\",\n \"typescheck\": \"tsc --noEmit --emitDeclarationOnly false\",\n \"tests\": \"yarn lint-staged\",\n \"release\": \"yarn semantic-release --extends ../../release.config.js -t 'hyper-fetch-cli-v${version}'\"\n },\n \"publishConfig\": {\n \"access\": \"public\",\n \"registry\": \"https://registry.npmjs.com/\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/BetterTyped/hyper-fetch.git\",\n \"directory\": \"packages/cli\"\n },\n \"bugs\": {\n \"url\": \"https://github.com/BetterTyped/hyper-fetch/issues\"\n },\n \"dependencies\": {\n \"@anttiviljami/dtsgenerator\": \"^3.20.0\",\n \"@apidevtools/json-schema-ref-parser\": \"^11.9.3\",\n \"@hyper-fetch/core\": \"*\",\n \"@inquirer/prompts\": \"^7.6.0\",\n \"chalk\": \"^5.4.1\",\n \"cli-table3\": \"^0.6.5\",\n \"commander\": \"^11.0.0\",\n \"execa\": \"^8.0.1\",\n \"fs-extra\": \"^11.3.0\",\n \"lodash\": \"^4.17.21\",\n \"openapi-types\": \"^12.1.3\",\n \"ora\": \"^8.2.0\",\n \"prettier\": \"^3.6.2\",\n \"react\": \"^19.1.0\",\n \"react-dom\": \"^19.1.0\",\n \"zod\": \"^4.0.2\"\n },\n \"devDependencies\": {\n \"@types/fs-extra\": \"^11.0.4\",\n \"abortcontroller-polyfill\": \"^1.7.5\"\n },\n \"lint-staged\": {\n \"*.{js,jsx,ts,tsx}\": [\n \"yarn jest --passWithNoTests\"\n ]\n },\n \"keywords\": [\n \"codegen\",\n \"openapi\",\n \"hyper fetch\",\n \"swagger\",\n \"openapi schema\",\n \"code generator\"\n ]\n}\n", "/* eslint-disable no-param-reassign */\nimport { Command } from \"commander\";\nimport { z } from \"zod\";\nimport * as path from \"node:path\";\nimport * as fs from \"fs-extra\";\nimport { input, select, confirm } from \"@inquirer/prompts\";\n\nimport { handleError } from \"utils/handle-error\";\nimport { preFlightGenerate } from \"preflights/preflight-generate\";\nimport { OpenapiRequestGenerator } from \"codegen/openapi/generator\";\nimport { spinner } from \"utils/spinner\";\nimport { logger } from \"utils/logger\";\nimport { showHelp } from \"utils/show-help\";\n\nexport const generateOptionsSchema = z.object({\n template: z.enum([\"openapi\", \"swagger\"]).describe(\"API provider template to use\"),\n url: z.string().describe(\"The URL to generate the schema from\"),\n fileName: z.string().describe(\"The output file for the SDK.\"),\n cwd: z.string().describe(\"The working directory. defaults to the current directory.\"),\n overwrite: z.boolean().optional().describe(\"Overwrite existing files.\"),\n});\n\nexport const generate = new Command()\n .name(\"Generate\")\n .description(\"Generate SDK from a schema, url or service\")\n .option(\"-t, --template <template>\", \"API provider template to use\")\n .option(\"-u, --url <url>\", \"The URL to generate the schema from\")\n .option(\"-f, --fileName <fileName>\", \"The output file for the SDK.\")\n .option(\"-o, --overwrite\", \"overwrite existing files.\")\n .option(\"-c, --cwd <cwd>\", \"the working directory. defaults to the current directory.\", process.cwd())\n .option(\"-h, --help <help>\", \"display help for command\")\n .action(async (opts: z.infer<typeof generateOptionsSchema>) => {\n try {\n const help = process.argv.includes(\"--help\") || process.argv.includes(\"-h\");\n\n if (help) {\n return showHelp(generateOptionsSchema);\n }\n const { config } = await preFlightGenerate(opts);\n\n if (!opts.template) {\n opts.template = await select({\n message: \"What source we want to use?\",\n choices: [\n { name: \"OpenAPI (v3)\", value: \"openapi\" },\n { name: \"Swagger\", value: \"swagger\" },\n ],\n });\n }\n\n if (!opts.url) {\n opts.url = await input({\n message: \"Enter the URL to generate the schema from:\",\n validate: (value) => {\n const result = z.url(\"Please enter a valid URL.\").safeParse(value);\n if (result.success) return true;\n return result.error.message;\n },\n });\n }\n\n if (!opts.fileName) {\n opts.fileName = await input({\n message: \"Enter the file name for the SDK:\",\n default: `api-${opts.template}.sdk.ts`,\n });\n }\n\n const fileExists = fs.existsSync(path.join(opts.cwd, opts.fileName));\n if (opts.overwrite === undefined && fileExists) {\n opts.overwrite = await confirm({ message: \"Overwrite existing files?\" });\n }\n\n if (opts.overwrite === false && fileExists) {\n return logger.info(`File ${opts.fileName} already exists. Use --overwrite to overwrite.`);\n }\n\n const options = generateOptionsSchema.parse(opts);\n\n const componentSpinner = spinner(`Writing ${options.fileName}...`).start();\n switch (options.template) {\n case \"openapi\": {\n const openapiSchema = await OpenapiRequestGenerator.getSchemaFromUrl({ url: options.url!, config });\n const generator = new OpenapiRequestGenerator(openapiSchema);\n await generator.generateFile({ fileName: options.fileName, config });\n componentSpinner.succeed();\n return process.exit(0);\n }\n case \"swagger\": {\n const openapiSchema = await OpenapiRequestGenerator.getSchemaFromUrl({ url: options.url!, config });\n const generator = new OpenapiRequestGenerator(openapiSchema);\n await generator.generateFile({ fileName: options.fileName, config });\n componentSpinner.succeed();\n return process.exit(0);\n }\n default: {\n componentSpinner.fail();\n throw new Error(`Invalid template: ${options.template}`);\n }\n }\n } catch (err) {\n handleError(err);\n }\n });\n", "import chalk from \"chalk\";\nimport { z } from \"zod\";\n\nimport { logger } from \"utils/logger\";\n\nexport function handleError(error: unknown) {\n logger.break();\n logger.error(`Something went wrong. Please check the error below for more details.`);\n logger.error(`If the problem persists, please open an issue on GitHub.`);\n logger.break();\n if (typeof error === \"string\") {\n logger.error(error);\n logger.break();\n process.exit(1);\n }\n\n if (error instanceof z.ZodError) {\n logger.error(\"Validation failed:\");\n // eslint-disable-next-line no-restricted-syntax\n for (const [key, value] of Object.entries(error.flatten().fieldErrors)) {\n logger.error(`- ${chalk.cyan(key)}: ${value}`);\n }\n logger.break();\n process.exit(1);\n }\n\n if (error instanceof Error) {\n logger.error(error.message);\n logger.break();\n process.exit(1);\n }\n\n logger.error(JSON.stringify({ error }));\n\n logger.break();\n process.exit(1);\n}\n", "/* eslint-disable no-console */\nimport chalk from \"chalk\";\n\nexport const logger = {\n info(...args: unknown[]) {\n console.log(chalk.cyan(\"\u2139\"), chalk.blue.bold(\"info\"), ...args);\n },\n warn(...args: unknown[]) {\n console.log(chalk.yellow(\"\u26A0\"), chalk.yellow.bold(\"warn\"), ...args);\n },\n error(...args: unknown[]) {\n console.log(chalk.red(\"\u2716\"), chalk.red.bold(\"error\"), ...args);\n },\n success(...args: unknown[]) {\n console.log(chalk.green(\"\u2714\"), chalk.green.bold(\"success\"), ...args);\n },\n break() {\n console.log(\"\");\n },\n};\n", "import * as path from \"node:path\";\nimport * as fs from \"fs-extra\";\nimport { z } from \"zod\";\n\nimport { generateOptionsSchema } from \"commands/generate\";\nimport * as ERRORS from \"utils/errors\";\nimport { getConfig } from \"config/get-config\";\nimport { Config } from \"config/schema\";\nimport { highlighter } from \"utils/highlighter\";\nimport { logger } from \"utils/logger\";\nimport { handleError } from \"utils/handle-error\";\n\nexport async function preFlightGenerate(options: z.infer<typeof generateOptionsSchema>): Promise<{\n errors: Record<string, boolean>;\n config: Config;\n}> {\n const errors: Record<string, boolean> = {};\n\n // Ensure target directory exists.\n // Check for empty project. We assume if no package.json exists, the project is empty.\n if (!fs.existsSync(options.cwd) || !fs.existsSync(path.resolve(options.cwd, \"package.json\"))) {\n errors[ERRORS.MISSING_DIR_OR_EMPTY_PROJECT] = true;\n\n handleError(errors);\n }\n\n try {\n const config = await getConfig(options.cwd);\n\n return {\n errors,\n config: config!,\n };\n } catch (error) {\n logger.break();\n logger.error(\n `An invalid ${highlighter.info(\"api.json\")} file was found at ${highlighter.info(\n options.cwd,\n )}.\\nBefore you can add SDKs, you must create a valid ${highlighter.info(\n \"api.json\",\n )} file by running the ${highlighter.info(\"init\")} command.`,\n );\n logger.break();\n process.exit(1);\n }\n}\n", "export const MISSING_DIR_OR_EMPTY_PROJECT = \"1\";\nexport const EXISTING_CONFIG = \"2\";\nexport const MISSING_CONFIG = \"3\";\nexport const FAILED_CONFIG_READ = \"4\";\nexport const TAILWIND_NOT_CONFIGURED = \"5\";\nexport const IMPORT_ALIAS_MISSING = \"6\";\nexport const UNSUPPORTED_FRAMEWORK = \"7\";\nexport const COMPONENT_URL_NOT_FOUND = \"8\";\nexport const COMPONENT_URL_UNAUTHORIZED = \"9\";\nexport const COMPONENT_URL_FORBIDDEN = \"10\";\nexport const COMPONENT_URL_BAD_REQUEST = \"11\";\nexport const COMPONENT_URL_INTERNAL_SERVER_ERROR = \"12\";\nexport const BUILD_MISSING_REGISTRY_FILE = \"13\";\n", "import * as path from \"node:path\";\nimport * as fs from \"fs-extra\";\nimport { loadConfig } from \"tsconfig-paths\";\n\nimport { highlighter } from \"utils/highlighter\";\nimport { resolveImport } from \"utils/resolve-import\";\nimport { logger } from \"../utils/logger\";\nimport { handleError } from \"../utils/handle-error\";\nimport { configSchema, Config } from \"config/schema\";\n\nexport async function resolveConfigPaths(cwd: string, config: Omit<Config, \"resolvedPaths\">): Promise<Config> {\n // Read tsconfig.json.\n const tsConfig = await loadConfig(cwd);\n\n if (tsConfig.resultType === \"failed\") {\n throw new Error(`Failed to load ${config.tsx ? \"tsconfig\" : \"jsconfig\"}.json. ${tsConfig.message ?? \"\"}`.trim());\n }\n\n return configSchema.parse({\n ...config,\n resolvedPaths: {\n cwd,\n api: await resolveImport(config.aliases.api, tsConfig),\n components: await resolveImport(config.aliases.components, tsConfig),\n lib: await resolveImport(config.aliases.lib, tsConfig),\n hooks: await resolveImport(config.aliases.hooks, tsConfig),\n ui: await resolveImport(config.aliases.ui, tsConfig),\n },\n });\n}\n\nexport async function getConfig(cwd: string): Promise<Config | null> {\n // Check for existing api.json file.\n if (!fs.existsSync(path.resolve(cwd, \"api.json\"))) {\n logger.break();\n logger.error(\n `An invalid ${highlighter.info(\"api.json\")} file was found at ${highlighter.info(\n cwd,\n )}.\\nBefore you can add or generate SDKs, you must create a valid ${highlighter.info(\n \"api.json\",\n )} file by running the ${highlighter.info(\"init\")} command.`,\n );\n logger.break();\n process.exit(1);\n }\n const { data, error } = await configSchema\n .omit({ resolvedPaths: true }) // We enrich it later\n .safeParseAsync(JSON.parse(fs.readFileSync(path.resolve(cwd, \"api.json\"), \"utf8\")));\n\n if (error) {\n handleError(error);\n }\n\n if (!data) {\n throw new Error(`Invalid configuration found in ${highlighter.info(cwd)}.`);\n }\n\n return resolveConfigPaths(cwd, data);\n}\n", "let FORCE_COLOR, NODE_DISABLE_COLORS, NO_COLOR, TERM, isTTY=true;\nif (typeof process !== 'undefined') {\n\t({ FORCE_COLOR, NODE_DISABLE_COLORS, NO_COLOR, TERM } = process.env || {});\n\tisTTY = process.stdout && process.stdout.isTTY;\n}\n\nexport const $ = {\n\tenabled: !NODE_DISABLE_COLORS && NO_COLOR == null && TERM !== 'dumb' && (\n\t\tFORCE_COLOR != null && FORCE_COLOR !== '0' || isTTY\n\t)\n}\n\nfunction init(x, y) {\n\tlet rgx = new RegExp(`\\\\x1b\\\\[${y}m`, 'g');\n\tlet open = `\\x1b[${x}m`, close = `\\x1b[${y}m`;\n\n\treturn function (txt) {\n\t\tif (!$.enabled || txt == null) return txt;\n\t\treturn open + (!!~(''+txt).indexOf(close) ? txt.replace(rgx, close + open) : txt) + close;\n\t};\n}\n\n// modifiers\nexport const reset = init(0, 0);\nexport const bold = init(1, 22);\nexport const dim = init(2, 22);\nexport const italic = init(3, 23);\nexport const underline = init(4, 24);\nexport const inverse = init(7, 27);\nexport const hidden = init(8, 28);\nexport const strikethrough = init(9, 29);\n\n// colors\nexport const black = init(30, 39);\nexport const red = init(31, 39);\nexport const green = init(32, 39);\nexport const yellow = init(33, 39);\nexport const blue = init(34, 39);\nexport const magenta = init(35, 39);\nexport const cyan = init(36, 39);\nexport const white = init(37, 39);\nexport const gray = init(90, 39);\nexport const grey = init(90, 39);\n\n// background colors\nexport const bgBlack = init(40, 49);\nexport const bgRed = init(41, 49);\nexport const bgGreen = init(42, 49);\nexport const bgYellow = init(43, 49);\nexport const bgBlue = init(44, 49);\nexport const bgMagenta = init(45, 49);\nexport const bgCyan = init(46, 49);\nexport const bgWhite = init(47, 49);\n", "import { cyan, green, red, yellow } from \"kleur/colors\";\n\nexport const highlighter = {\n error: red,\n warn: yellow,\n info: cyan,\n success: green,\n};\n", "import { createMatchPath, type ConfigLoaderSuccessResult } from \"tsconfig-paths\";\n\nexport async function resolveImport(\n importPath: string,\n config: Pick<ConfigLoaderSuccessResult, \"absoluteBaseUrl\" | \"paths\">,\n) {\n return createMatchPath(config.absoluteBaseUrl, config.paths)(importPath, undefined, () => true, [\n \".ts\",\n \".tsx\",\n \".jsx\",\n \".js\",\n \".css\",\n ]);\n}\n", "import { z } from \"zod\";\n\nexport const configSchema = z.object({\n tsx: z.boolean(),\n aliases: z.object({\n api: z.string(),\n hooks: z.string(),\n ui: z.string(),\n components: z.string(),\n lib: z.string(),\n }),\n resolvedPaths: z.object({\n cwd: z.string(),\n api: z.string(),\n hooks: z.string(),\n ui: z.string(),\n components: z.string(),\n lib: z.string(),\n }),\n});\n\nexport type Config = z.infer<typeof configSchema>;\n", "import DtsGenerator, { ExportedType } from \"@anttiviljami/dtsgenerator/dist/core/dtsGenerator\";\nimport RefParser from \"@apidevtools/json-schema-ref-parser\";\nimport { parseSchema } from \"@anttiviljami/dtsgenerator/dist/core/type\";\nimport * as lodash from \"lodash\";\nimport * as prettier from \"prettier\";\nimport * as fs from \"fs-extra\";\nimport * as path from \"node:path\";\nimport { createClient } from \"@hyper-fetch/core\";\n\nimport { Document, Operation, GeneratedTypes } from \"./openapi.types\";\nimport { getAvailableOperations } from \"./operations\";\nimport { adjustPathParamsFormat, normalizeOperationId, createTypeBaseName, isUrl } from \"./utils\";\nimport { HttpMethod } from \"./http-methods.enum\";\nimport { Config } from \"config/schema\";\n\ninterface RefError {\n path: string;\n ref: string;\n message: string;\n}\n\nconst formatSchema = (obj: any, indent = 1): string => {\n const indentation = \" \".repeat(indent);\n const entries = Object.entries(obj)\n .map(([key, value]) => {\n const formattedKey = key.includes(\"-\") ? `\"${key}\"` : key;\n if (typeof value === \"string\") {\n return `${indentation}${formattedKey}: ${value};`;\n }\n if (typeof value === \"object\" && value !== null) {\n return `${indentation}${formattedKey}: {\\n${formatSchema(value, indent + 1)}\\n${indentation}};`;\n }\n return \"\";\n })\n .join(\"\\n\");\n return entries;\n};\n\nexport class OpenapiRequestGenerator {\n protected openapiDocument: Document;\n constructor(openapiDocument: any) {\n this.openapiDocument = openapiDocument as Document;\n }\n\n async generateFile({ config, fileName }: { config: Config; fileName: string }) {\n const defaultFileName = \"openapi.client\";\n const { schemaTypes, generatedTypes, sdkSchema, createSdkFn } = await this.generateRequestsFromSchema();\n const contents = [\n `import { createSdk as coreCreateSdk, ClientInstance, Request } from \"@hyper-fetch/core\";`,\n \"\\n\\n\",\n schemaTypes,\n \"\\n\\n\",\n generatedTypes.join(\"\\n\\n\"),\n \"\\n\\n\",\n sdkSchema,\n \"\\n\\n\",\n createSdkFn,\n ].join(\"\");\n const prettierOpts = {\n printWidth: 120,\n tabWidth: 2,\n useTabs: false,\n semi: true,\n singleQuote: false,\n trailingComma: \"all\" as const,\n bracketSpacing: true,\n bracketSameLine: false,\n proseWrap: \"always\" as const,\n arrowParens: \"always\" as const,\n parser: \"typescript\" as const,\n };\n\n const fName = fileName || defaultFileName;\n const extension = config.tsx ? \".ts\" : \".js\";\n const hasExtension = [\".ts\", \".js\", \".tsx\", \".jsx\"].some((ext) => fName.endsWith(ext));\n const generatedPath = path.join(config.resolvedPaths.api, `${fName}${hasExtension ? \"\" : extension}`);\n\n const file = await prettier.format(contents, prettierOpts);\n await fs.writeFile(generatedPath, file, {\n flag: \"w\",\n });\n\n return generatedPath;\n }\n\n static getSchemaFromUrl = async ({ url, config }: { url: string; config: Config }) => {\n if (isUrl(url)) {\n const client = createClient({ url });\n const getSchema = client.createRequest<{ response: Document }>()({ endpoint: \"\" });\n const { data, error } = await getSchema.send();\n if (data) {\n return data;\n }\n throw error || new Error(\"Failed to fetch schema\");\n }\n\n const schema = fs.readFileSync(path.join(config.resolvedPaths.cwd, url), \"utf-8\");\n return JSON.parse(schema);\n };\n\n generateRequestsFromSchema = async () => {\n const { schemaTypes, exportedTypes } = await OpenapiRequestGenerator.prepareSchema(this.openapiDocument);\n\n const generatedTypes: string[] = [];\n const schemaTree: Record<string, any> = {};\n\n getAvailableOperations(this.openapiDocument).forEach((operation) => {\n const meta = OpenapiRequestGenerator.generateMethodMetadata(operation, exportedTypes);\n const operationTypes = OpenapiRequestGenerator.generateTypes(meta);\n const requestInstanceType = OpenapiRequestGenerator.generateRequestInstanceType(meta, operationTypes);\n\n generatedTypes.push(Object.values(operationTypes).join(\"\\n\"));\n\n const { path: relPath, method } = meta;\n const segments = relPath.split(\"/\").filter(Boolean);\n\n let currentLevel = schemaTree;\n // eslint-disable-next-line no-restricted-syntax\n for (const segment of segments) {\n let key: string;\n if (segment.startsWith(\":\")) {\n // Parameter segment - keep the $ prefix\n key = `$${segment.slice(1)}`;\n } else if (segment.includes(\"-\")) {\n // Convert kebab-case to camelCase for path segments\n key = segment.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());\n } else {\n key = segment;\n }\n\n if (!currentLevel[key]) {\n currentLevel[key] = {};\n }\n currentLevel = currentLevel[key];\n }\n // Prefix method names with $\n currentLevel[`$${method.toLowerCase()}`] = requestInstanceType;\n });\n\n const sdkSchema = `export type SdkSchema<Client extends ClientInstance> = {\\n${formatSchema(schemaTree)}\\n}`;\n\n const createSdkFn = `\n\nexport type { Components };\n\nexport const createSdk = <Client extends ClientInstance>(client: Client, options?: Parameters<typeof coreCreateSdk>[1] | undefined) => {\n return coreCreateSdk<Client, SdkSchema<Client>>(client, options);\n};\n`;\n\n return { schemaTypes, generatedTypes, sdkSchema, createSdkFn };\n };\n\n static generateRequestInstanceType(\n { id, path: endpoint, queryParamsRequired }: { id: string; path: string; queryParamsRequired?: boolean },\n types: Record<string, string>,\n ) {\n const Response = types[`${createTypeBaseName(id)}ResponseType`]\n ? `${createTypeBaseName(id)}ResponseType`\n : undefined;\n const Payload = types[`${createTypeBaseName(id)}RequestBody`] ? `${createTypeBaseName(id)}RequestBody` : undefined;\n const LocalError = types[`${createTypeBaseName(id)}ErrorType`] ? `${createTypeBaseName(id)}ErrorType` : undefined;\n const QueryParams = types[`${createTypeBaseName(id)}QueryParams`]\n ? `${createTypeBaseName(id)}QueryParams`\n : undefined;\n\n const QueryParamsGeneric = QueryParams && !queryParamsRequired ? `${QueryParams} | undefined` : QueryParams;\n\n return `Request<${Response}, ${Payload}, ${QueryParamsGeneric}, ${LocalError}, \"${endpoint}\", Client>`;\n }\n\n static generateHyperFetchRequest(\n {\n id,\n path: relPath,\n method,\n queryParamsRequired,\n }: { id: string; path: string; method: string; queryParamsRequired?: boolean },\n types: Record<string, string>,\n ) {\n const Response = types[`${createTypeBaseName(id)}ResponseType`]\n ? `${createTypeBaseName(id)}ResponseType`\n : undefined;\n const Payload = types[`${createTypeBaseName(id)}RequestBody`] ? `${createTypeBaseName(id)}RequestBody` : undefined;\n const LocalError = types[`${createTypeBaseName(id)}ErrorType`] ? `${createTypeBaseName(id)}ErrorType` : undefined;\n const QueryParams = types[`${createTypeBaseName(id)}QueryParams`]\n ? `${createTypeBaseName(id)}QueryParams`\n : undefined;\n const getVariableName = (str: string) => str.charAt(0).toLowerCase() + str.slice(1);\n\n let genericType = \"\";\n\n const addToGenericType = (key: string, value: string) => {\n if (genericType) {\n genericType += \",\";\n }\n genericType += `${key}:${value}`;\n };\n\n if (Response) {\n addToGenericType(\"response\", Response);\n }\n if (Payload) {\n addToGenericType(\"payload\", Payload);\n }\n if (LocalError) {\n addToGenericType(\"error\", LocalError);\n }\n if (QueryParams) {\n const key = !queryParamsRequired ? \"queryParams?\" : \"queryParams\";\n addToGenericType(key, QueryParams);\n }\n\n if (genericType) {\n genericType = `<{${genericType}}>`;\n }\n\n return `export const ${getVariableName(\n createTypeBaseName(id),\n )} = client.createRequest${genericType}()({method: \"${method}\", endpoint: \"${relPath}\"})`;\n }\n\n static generateTypes({\n id,\n pathParametersType,\n queryParametersType,\n requestBodyType,\n errorType,\n responseType,\n }: {\n id: string;\n pathParametersType: string | undefined;\n queryParametersType: string | undefined;\n requestBodyType: string | undefined;\n errorType: string;\n responseType: string;\n }) {\n const typeName = createTypeBaseName(id);\n const types: GeneratedTypes<typeof typeName> = {};\n if (pathParametersType) {\n types[`${typeName}PathParams`] = `export type ${typeName}PathParams = ${pathParametersType}`;\n }\n if (queryParametersType) {\n types[`${typeName}QueryParams`] = `export type ${typeName}QueryParams = ${queryParametersType}`;\n }\n if (requestBodyType) {\n types[`${typeName}RequestBody`] = `export type ${typeName}RequestBody = ${requestBodyType}`;\n }\n if (errorType) {\n types[`${typeName}ErrorType`] = `export type ${typeName}ErrorType = ${errorType}`;\n }\n if (responseType) {\n types[`${typeName}ResponseType`] = `export type ${typeName}ResponseType = ${responseType}`;\n }\n return types;\n }\n\n static generateMethodMetadata(\n operation: { operationId: string; path: string; method: string } & Partial<Operation>,\n exportTypes: ExportedType[],\n ) {\n const { operationId, method, path: relPath } = operation;\n const normalizedOperationId = normalizeOperationId(operationId);\n const pathParametersType = lodash.find(exportTypes, {\n schemaRef: `#/paths/${normalizedOperationId}/pathParameters`,\n })?.path;\n const queryParametersType = lodash.find(exportTypes, {\n schemaRef: `#/paths/${normalizedOperationId}/queryParameters`,\n })?.path;\n const requestBodyType = lodash.find(exportTypes, {\n schemaRef: `#/paths/${normalizedOperationId}/requestBody`,\n })?.path;\n const responseTypePaths = lodash\n .chain(exportTypes)\n .filter(({ schemaRef }) => schemaRef.startsWith(`#/paths/${normalizedOperationId}/responses/2`))\n .map(({ path: responsePath }) => responsePath)\n .value();\n const errorTypePaths = lodash\n .chain(exportTypes)\n .filter(\n ({ schemaRef }) =>\n schemaRef.startsWith(`#/paths/${normalizedOperationId}/responses/4`) ||\n schemaRef.startsWith(`#/paths/${normalizedOperationId}/responses/5`),\n )\n .map(({ path: errorPath }) => errorPath)\n .value();\n\n const responseType = !lodash.isEmpty(responseTypePaths) ? responseTypePaths.join(\" | \") : \"any\";\n const errorType = !lodash.isEmpty(errorTypePaths) ? errorTypePaths.join(\" | \") : \"undefined\";\n const queryParamsRequired = Array.isArray(operation.parameters)\n ? operation.parameters.some((p) => {\n return \"in\" in p && p.in === \"query\" && p.required === true;\n })\n : false;\n\n return {\n id: normalizedOperationId,\n pathParametersType,\n queryParametersType,\n requestBodyType,\n errorType,\n responseType,\n path: adjustPathParamsFormat(relPath),\n method: method ? method.toUpperCase() : HttpMethod.GET,\n queryParamsRequired,\n };\n }\n\n static validateSchema(openapiDocument: Document) {\n // Validate refs before processing\n const errors: RefError[] = [];\n\n function validateRefs(obj: any, refPath = \"\") {\n if (!obj || typeof obj !== \"object\") return;\n\n // Check if current object has $ref\n if (obj.$ref && typeof obj.$ref === \"string\" && obj.$ref.endsWith(\"/\")) {\n errors.push({\n path: refPath,\n ref: obj.$ref,\n message: `Invalid reference \"${obj.$ref}\" - reference path cannot end with '/'`,\n });\n }\n\n // Recursively check all object properties\n Object.entries(obj).forEach(([key, value]) => {\n const newPath = refPath ? `${refPath}.${key}` : key;\n validateRefs(value, newPath);\n });\n }\n\n validateRefs(openapiDocument);\n\n // If there are validation errors, throw them with details\n if (errors.length > 0) {\n const errorMessages = errors.map((err) => `Invalid reference at ${err.path}: ${err.message}`);\n throw new Error(`Schema validation failed. The following errors were found:\\n${errorMessages.join(\"\\n\")}`);\n }\n }\n\n static async prepareSchema(openapiDocument: Document) {\n OpenapiRequestGenerator.validateSchema(openapiDocument);\n\n const rootSchema = await RefParser.bundle(openapiDocument);\n const schema = parseSchema(rootSchema as any);\n const generator = new DtsGenerator([schema]);\n const schemaTypes = await generator.generate();\n const exportedTypes = generator.getExports();\n\n return { schemaTypes, exportedTypes };\n }\n}\n", "export enum HttpMethod {\n GET = \"get\",\n PUT = \"put\",\n POST = \"post\",\n PATCH = \"patch\",\n DELETE = \"delete\",\n OPTIONS = \"options\",\n HEAD = \"head\",\n TRACE = \"trace\",\n}\n", "import type { OpenAPIV3, OpenAPIV3_1 } from \"openapi-types\";\n\nimport { HttpMethod } from \"./http-methods.enum\";\nimport { Operation } from \"./openapi.types\";\n\nexport function getAvailableOperations(openApiJson: OpenAPIV3.Document | OpenAPIV3_1.Document) {\n const paths = openApiJson.paths || {};\n return Object.entries(paths).flatMap(([path, pathObject]) => {\n return Object.values(HttpMethod)\n .map((method) => ({ path, method, operation: pathObject?.[method] }))\n .filter(({ operation }) => operation?.operationId)\n .map(({ operation, method }) => {\n const op: { operationId: string; path: string; method: string } & Partial<Operation> = {\n ...operation,\n operationId: operation!.operationId as string,\n path,\n method,\n };\n return op;\n });\n }) as ({ operationId: string } & Operation)[];\n}\n", "import { OpenAPIV3, OpenAPIV3_1 } from \"openapi-types\";\n\nexport function adjustPathParamsFormat(path: string) {\n // Naive implementation for now:\n return path.replace(/}/g, \"\").replace(/{/g, \":\");\n}\nexport function createTypeBaseName(str: string) {\n const capitalizeFirstLetter = (s: string) => {\n return s.charAt(0).toUpperCase() + s.slice(1);\n };\n return str.split(\"_\").map(capitalizeFirstLetter).join(\"\");\n}\n\nexport function normalizeOperationId(key: string): string {\n return key\n .replace(/\\/(.)/g, (_match: string, p1: string) => {\n return p1.toUpperCase();\n })\n .replace(/}/g, \"\")\n .replace(/{/g, \"$\")\n .replace(/^\\//, \"\")\n .replace(/[^0-9A-Za-z_$]+/g, \"_\");\n}\nexport const isUrl = (schemaPath: string) => {\n try {\n return Boolean(new URL(schemaPath));\n } catch (e) {\n return false;\n }\n};\n\nexport function getBaseUrl(openApiJson: OpenAPIV3.Document | OpenAPIV3_1.Document): string {\n return openApiJson.servers?.[0]?.url ?? \"\";\n}\n", "import ora, { type Options } from \"ora\";\n\nexport function spinner(\n text: Options[\"text\"],\n options?: {\n silent?: boolean;\n },\n) {\n return ora({\n text,\n isSilent: options?.silent,\n });\n}\n", "import { z } from \"zod\";\nimport Table from \"cli-table3\";\n\nimport { zodToTable } from \"./zod-to-table\";\n\nexport const showHelp = (schema: z.ZodType) => {\n const rows = zodToTable(schema).map(({ name, description }) => [`--${name}`, description || \"\"]);\n\n const maxOptionLength = rows.reduce((max, row) => Math.max(max, row[0].length), 0);\n const terminalWidth = process.stdout.columns;\n\n const tableOptions: Table.TableConstructorOptions = {\n head: [\"Option\", \"Description\"],\n style: {\n head: [\"blue\"],\n },\n wordWrap: true,\n };\n\n if (terminalWidth) {\n // Accounting for borders and padding.\n const tableOverhead = 7;\n const optionColWidth = maxOptionLength + 2;\n const descriptionColWidth = terminalWidth - optionColWidth - tableOverhead;\n\n if (descriptionColWidth > 10) {\n tableOptions.colWidths = [optionColWidth, descriptionColWidth];\n }\n }\n\n const table = new Table(tableOptions);\n\n table.push(...rows);\n\n // eslint-disable-next-line no-console\n console.log(table.toString());\n};\n", "import { z } from \"zod\";\n\nexport const zodToTable = (schema: z.ZodType): { name: string; description: string | undefined }[] => {\n if (schema instanceof z.ZodObject) {\n const { shape } = schema;\n return Object.keys(shape).map((key) => {\n const fieldSchema = shape[key];\n\n return {\n name: key,\n description: fieldSchema.description,\n };\n });\n }\n return [];\n};\n", "import { Command } from \"commander\";\nimport { input, select } from \"@inquirer/prompts\";\nimport { z } from \"zod\";\nimport * as path from \"node:path\";\nimport * as fs from \"fs-extra\";\n\nimport { handleError } from \"../utils/handle-error\";\nimport { spinner } from \"../utils/spinner\";\nimport { configSchema, Config } from \"config/schema\";\nimport { logger } from \"utils/logger\";\nimport { getTsConfigAliasPrefix } from \"config/get-ts-alias\";\nimport { showHelp } from \"utils/show-help\";\n\nconst initOptionsSchema = z.object({\n yes: z.boolean().optional().describe(\"skip confirmation prompt.\"),\n cwd: z.string().describe(\"the working directory. defaults to the current directory.\"),\n});\n\ntype Step = {\n name: string;\n action: (config: Partial<Config>) => Promise<Partial<Config> | void>;\n};\n\nexport const init = new Command()\n .name(\"Init\")\n .description(\"Initialize HyperFetch Client configuration.\")\n .option(\"-y, --yes\", \"skip confirmation prompt.\", false)\n .option(\"-c, --cwd <cwd>\", \"the working directory. defaults to the current directory.\", process.cwd())\n .option(\"-h, --help <help>\", \"display help for command\")\n .action(async (opts) => {\n try {\n const help = process.argv.includes(\"--help\") || process.argv.includes(\"-h\");\n\n if (help) {\n return showHelp(initOptionsSchema);\n }\n\n const { cwd, yes } = initOptionsSchema.parse(opts);\n\n let config: Partial<Config> = {};\n\n let mainPath: string;\n let apiDir: string;\n\n if (yes) {\n mainPath = \"src\";\n apiDir = \"api\";\n } else {\n // 1. ask for the path to the main directory\n mainPath = await select({\n message: \"Select the main directory for your project:\",\n choices: [\n { name: \"src\", value: \"src\" },\n { name: \"app\", value: \"app\" },\n { name: \"other\", value: \"other\" },\n ],\n });\n\n if (mainPath === \"other\") {\n mainPath = await input({\n message: \"Enter the path to the main directory:\",\n validate: (value) => {\n if (!value) return \"Path cannot be empty.\";\n return true;\n },\n });\n }\n\n // 2. text field - asking for the directory of api\n apiDir = await input({\n message: \"Enter the name of the API directory:\",\n default: \"api\",\n validate: (value) => {\n if (!value) return \"Directory name cannot be empty.\";\n return true;\n },\n });\n }\n\n const fullPath = path.join(cwd, mainPath, apiDir);\n const relativePath = path.join(mainPath, apiDir);\n const configPath = path.join(cwd, \"api.json\");\n\n const aliasPrefix = (await getTsConfigAliasPrefix(cwd)) || \"\";\n const alias = aliasPrefix ? `${aliasPrefix}/` : \"\";\n\n const defaultAliases: Config[\"aliases\"] = {\n api: `${alias}${apiDir}`,\n hooks: `${alias}hooks`,\n ui: `${alias}components/ui`,\n components: `${alias}components`,\n lib: `${alias}lib`,\n };\n\n const defaultConfig: Omit<Config, \"resolvedPaths\"> = {\n tsx: true,\n aliases: defaultAliases,\n };\n\n logger.break();\n\n const steps: Step[] = [\n {\n name: `Initialize API directory at ${relativePath}`,\n action: async () => {\n if (!fs.existsSync(fullPath)) {\n await fs.mkdir(fullPath, { recursive: true });\n }\n },\n },\n {\n name: \"Setup configuration\",\n action: async (currentConfig) => {\n if (fs.existsSync(configPath)) {\n const existingConfig = JSON.parse(fs.readFileSync(configPath, \"utf8\"));\n const { success, error, data } = configSchema.omit({ resolvedPaths: true }).safeParse({\n ...defaultConfig,\n ...existingConfig,\n aliases: {\n ...defaultConfig.aliases,\n ...existingConfig.aliases,\n },\n });\n\n if (error) {\n logger.break();\n logger.error(`Invalid configuration found in ${configPath}.`);\n handleError(error);\n logger.break();\n }\n\n if (success) {\n return data;\n }\n }\n return currentConfig;\n },\n },\n {\n name: \"Setup Aliases\",\n action: async (currentConfig) => {\n if (currentConfig.aliases) {\n return currentConfig;\n }\n\n return {\n ...currentConfig,\n aliases: defaultAliases,\n };\n },\n },\n {\n name: `Create api.json configuration file`,\n action: async (currentConfig) => {\n const finalConfig = {\n ...defaultConfig,\n ...currentConfig,\n aliases: {\n ...defaultConfig.aliases,\n ...currentConfig.aliases,\n },\n };\n\n configSchema.omit({ resolvedPaths: true }).parse(finalConfig);\n\n await fs.writeFile(configPath, JSON.stringify(finalConfig, null, 2));\n },\n },\n ];\n\n logger.break();\n logger.info(\"Starting HyperFetch CLI initialization...\");\n\n // eslint-disable-next-line no-restricted-syntax\n for (const step of steps) {\n const s = spinner(step.name).start();\n // eslint-disable-next-line no-await-in-loop\n const result = await step.action(config);\n if (result) {\n config = result;\n }\n s.succeed();\n }\n\n logger.break();\n logger.info(\"Configuration has been generated successfully! \uD83C\uDF89\");\n logger.info(`You can now find your configuration at ${configPath}`);\n } catch (err) {\n handleError(err);\n }\n });\n", "import { loadConfig } from \"tsconfig-paths\";\n\nexport async function getTsConfigAliasPrefix(cwd: string) {\n const tsConfig = await loadConfig(cwd);\n\n if (tsConfig?.resultType === \"failed\" || !Object.entries(tsConfig?.paths).length) {\n return null;\n }\n\n // This assume that the first alias is the prefix.\n // eslint-disable-next-line no-restricted-syntax\n for (const [alias, paths] of Object.entries(tsConfig.paths)) {\n if (\n paths.includes(\"./*\") ||\n paths.includes(\"./src/*\") ||\n paths.includes(\"./app/*\") ||\n paths.includes(\"./resources/js/*\") // Laravel.\n ) {\n return alias.replace(/\\/\\*$/, \"\") ?? null;\n }\n }\n\n // Use the first alias as the prefix.\n return Object.keys(tsConfig?.paths)?.[0].replace(/\\/\\*$/, \"\") ?? null;\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["fs", "path", "exports", "path2", "path", "exports", "path", "physicalPathPattern", "exports", "path", "createMatchPath", "exports", "path", "exports", "exports", "module", "exports", "module", "exports", "module", "key", "token", "c", "buffer", "exports", "module", "value", "exports", "module", "exports", "module", "path", "fs", "exports", "existsSync", "readFileSync", "path", "loadConfig", "exports", "exports", "module", "key", "arg", "value", "i", "exports", "exports", "import_commander", "import_prompts", "import_zod", "path", "fs", "import_chalk", "chalk", "chalk", "path", "fs", "import_tsconfig_paths", "import_zod", "fs", "path", "HttpMethod", "path", "path", "RefParser", "DtsGenerator", "ora", "import_zod", "Table", "import_commander", "import_prompts", "import_zod", "path", "fs", "import_tsconfig_paths", "init", "init"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyper-fetch/cli",
3
- "version": "7.3.0",
3
+ "version": "7.4.0",
4
4
  "description": "Hyper Fetch cli for code generation and utilities",
5
5
  "author": "Maciej Pyrc <maciekpyrc@gmail.com>, Kacper Skawina <kacper.skawina@gmail.com>",
6
6
  "homepage": "https://hyperfetch.bettertyped.com/",
package/src/cli/index.ts CHANGED
@@ -39,9 +39,10 @@ const main = async () => {
39
39
  description: cmd.description(),
40
40
  })),
41
41
  });
42
+ await program.parseAsync([process.argv[0], process.argv[1], chosenCommand]);
43
+ } else {
44
+ await program.parseAsync(process.argv);
42
45
  }
43
-
44
- await program.parseAsync([process.argv[0], process.argv[1], chosenCommand]);
45
46
  } catch (e) {
46
47
  handleError(e);
47
48
  if (e instanceof Error) {
@@ -117,20 +117,34 @@ export class OpenapiRequestGenerator {
117
117
  let currentLevel = schemaTree;
118
118
  // eslint-disable-next-line no-restricted-syntax
119
119
  for (const segment of segments) {
120
- const key = segment.startsWith(":") ? `$${segment.slice(1)}` : segment;
120
+ let key: string;
121
+ if (segment.startsWith(":")) {
122
+ // Parameter segment - keep the $ prefix
123
+ key = `$${segment.slice(1)}`;
124
+ } else if (segment.includes("-")) {
125
+ // Convert kebab-case to camelCase for path segments
126
+ key = segment.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());
127
+ } else {
128
+ key = segment;
129
+ }
130
+
121
131
  if (!currentLevel[key]) {
122
132
  currentLevel[key] = {};
123
133
  }
124
134
  currentLevel = currentLevel[key];
125
135
  }
126
- currentLevel[method.toLowerCase()] = requestInstanceType;
136
+ // Prefix method names with $
137
+ currentLevel[`$${method.toLowerCase()}`] = requestInstanceType;
127
138
  });
128
139
 
129
140
  const sdkSchema = `export type SdkSchema<Client extends ClientInstance> = {\n${formatSchema(schemaTree)}\n}`;
130
141
 
131
142
  const createSdkFn = `
132
- export const createSdk = <Client extends ClientInstance>(client: Client) => {
133
- return coreCreateSdk<Client, SdkSchema<Client>>(client);
143
+
144
+ export type { Components };
145
+
146
+ export const createSdk = <Client extends ClientInstance>(client: Client, options?: Parameters<typeof coreCreateSdk>[1] | undefined) => {
147
+ return coreCreateSdk<Client, SdkSchema<Client>>(client, options);
134
148
  };
135
149
  `;
136
150
 
@@ -150,8 +164,7 @@ export const createSdk = <Client extends ClientInstance>(client: Client) => {
150
164
  ? `${createTypeBaseName(id)}QueryParams`
151
165
  : undefined;
152
166
 
153
- const QueryParamsGeneric =
154
- QueryParams && queryParamsRequired === false ? `${QueryParams} | undefined` : QueryParams;
167
+ const QueryParamsGeneric = QueryParams && !queryParamsRequired ? `${QueryParams} | undefined` : QueryParams;
155
168
 
156
169
  return `Request<${Response}, ${Payload}, ${QueryParamsGeneric}, ${LocalError}, "${endpoint}", Client>`;
157
170
  }
@@ -194,7 +207,7 @@ export const createSdk = <Client extends ClientInstance>(client: Client) => {
194
207
  addToGenericType("error", LocalError);
195
208
  }
196
209
  if (QueryParams) {
197
- const key = queryParamsRequired === false ? "queryParams?" : "queryParams";
210
+ const key = !queryParamsRequired ? "queryParams?" : "queryParams";
198
211
  addToGenericType(key, QueryParams);
199
212
  }
200
213
 
@@ -275,13 +288,10 @@ export const createSdk = <Client extends ClientInstance>(client: Client) => {
275
288
  const responseType = !lodash.isEmpty(responseTypePaths) ? responseTypePaths.join(" | ") : "any";
276
289
  const errorType = !lodash.isEmpty(errorTypePaths) ? errorTypePaths.join(" | ") : "undefined";
277
290
  const queryParamsRequired = Array.isArray(operation.parameters)
278
- ? operation.parameters.every((p) => {
279
- if ("in" in p && p.in === "query" && p.required === false) {
280
- return true;
281
- }
282
- return false;
291
+ ? operation.parameters.some((p) => {
292
+ return "in" in p && p.in === "query" && p.required === true;
283
293
  })
284
- : undefined;
294
+ : false;
285
295
 
286
296
  return {
287
297
  id: normalizedOperationId,