{"version":3,"sources":["../src/cli/index.ts","../src/cli/constants/cliBanner.ts","../src/cli/constants/common.ts","../src/cli/tasks/index.ts","../src/cli/tasks/generateSubgraphConfig.ts","../src/cli/templates/index.ts","../src/cli/tasks/generateSubgraphSchema.ts","../src/cli/utils/buildFileWatcher.ts","../src/cli/utils/logPrefix.ts","../src/cli/utils/parseGlobPatterns.ts","../src/cli/utils/generateSubgraphSchema.ts","../src/cli/utils/loadSchema.ts","../src/cli/utils/resolveModule.ts","../src/cli/utils/loadChokidar.ts","../src/cli/utils/getSubgraphArgsFromCosmicConfigFile.ts","../src/cli/utils/getPackageJson.ts","../src/cli/utils/findFilesByFileName.ts","../src/cli/utils/isGitRepo.ts","../src/cli/tasks/checkSubgraphSchema.ts","../src/cli/tasks/updatePackageJSON.ts","../src/cli/tasks/addFilesToGitIndex.ts","../src/cli/prompts/index.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport { Command } from 'commander';\nimport { cliBanner, commands } from './constants';\nimport { tasks } from './tasks';\nimport {\n  getOutputPath,\n  getPrintScriptName,\n  getCheckScriptName,\n  getSchemaPaths,\n  confirmAddFilesToGitStaging,\n} from './prompts';\nimport {\n  buildFileWatcher,\n  generateSubgraphSchema,\n  getSubgraphArgsFromCosmicConfigFile,\n} from './utils';\n\n(async () => {\n  const packageJSON = await fs.readJson('./package.json');\n\n  // Main command\n  const subgraph = new Command('subgraph')\n    .description('A CLI for federated subgraph management')\n    .version(packageJSON.version);\n\n  // Schema command\n  const schema = new Command('schema').description(\n    'Helpful commands for managing your subgraph schema'\n  );\n\n  schema\n    .command(commands.check)\n    .option('-c, --config <path-to-subgraph-config>', 'The path to your subgraph config file')\n    .option('-s, --schema <schema-location...>', \"Location of your subgraph's typeDefs\")\n    .action(async (options) => {\n      cliBanner.header('schema check');\n\n      const config = await getSubgraphArgsFromCosmicConfigFile(options.config);\n      const gqlSchemaPath = options.schema ?? config?.schema ?? (await getSchemaPaths());\n\n      try {\n        await tasks.check.run({\n          schema: { paths: gqlSchemaPath },\n        });\n\n        cliBanner.footer();\n      } catch (e) {\n        console.error(e);\n        process.exit(1);\n      }\n    });\n\n  schema\n    .command(commands.print)\n    .option('-c, --config <path-to-subgraph-config>', 'The path to your subgraph config file')\n    .option('-s, --schema <schema-location...>', \"Location of your subgraph's typeDefs\")\n    .option('-o, --output <output-path>', 'The path to the printed schema file')\n    .option('-w, --watch', 'Watch for file changes and print the resulting schema file')\n    .action(async (options) => {\n      const config = await getSubgraphArgsFromCosmicConfigFile(options.config);\n      const gqlSchemaPath =\n        (options.schema as string[]) ?? config?.schema ?? (await getSchemaPaths());\n      const outputPath = (options.output as string) ?? config?.output ?? (await getOutputPath());\n\n      if (options.watch) {\n        try {\n          await generateSubgraphSchema({ paths: gqlSchemaPath, output: outputPath });\n        } catch (e) {\n          if (e instanceof Error) {\n            console.error(e.message);\n          }\n        }\n\n        await buildFileWatcher(gqlSchemaPath, outputPath);\n      } else {\n        cliBanner.header('schema print');\n\n        try {\n          await tasks.print.run({\n            schema: {\n              paths: gqlSchemaPath,\n              output: outputPath,\n            },\n          });\n\n          cliBanner.footer();\n        } catch (e) {\n          console.error(e);\n          process.exit(1);\n        }\n      }\n    });\n\n  schema.command(commands.init).action(async () => {\n    cliBanner.header('schema init');\n    console.log(\"Let's get started by answering a few questions about your service.\\n\");\n\n    const schemaPaths = await getSchemaPaths();\n    const outputPath = await getOutputPath();\n    const printScriptName = await getPrintScriptName();\n    const checkScriptName = await getCheckScriptName();\n    const git = await confirmAddFilesToGitStaging();\n\n    console.log('\\n');\n\n    try {\n      await tasks.init.run({\n        git,\n        printScriptName,\n        checkScriptName,\n        schema: {\n          paths: schemaPaths,\n          output: outputPath,\n        },\n      });\n\n      cliBanner.footer();\n    } catch (e) {\n      process.exit(1);\n    }\n  });\n\n  subgraph.addCommand(schema);\n  subgraph.parse();\n})();\n","import boxen from 'boxen';\nimport chalk from 'chalk';\n\nexport const cliBanner = {\n  header: (command: string) => {\n    console.log(\n      boxen(chalk.blueBright(`subgraph: ${chalk.green(command)}`), {\n        borderStyle: 'round',\n        textAlignment: 'center',\n        width: 40,\n      })\n    );\n  },\n  footer: () => {\n    console.log(chalk.green('\\nTasks completed successfully. Happy coding!'));\n  },\n};\n","export const commands = {\n  init: 'init',\n  print: 'print',\n  check: 'check',\n} as const;\n\nexport const scripts = {\n  print: `subgraph schema ${commands.print} --config subgraph.config.ts`,\n  check: `subgraph schema ${commands.check} --config subgraph.config.ts`,\n} as const;\n\nexport const commonIgnoreDirs = new Set([\n  'node_modules',\n  '.git',\n  'dist',\n  'build',\n  'out',\n  'bin',\n  'obj',\n  '.cache',\n  'tmp',\n  'temp',\n  '.idea',\n  '.vscode',\n  '__pycache__',\n  '.venv',\n  'coverage',\n  'logs',\n  'test-output',\n  '.gradle',\n  'target',\n  'vendor',\n  'migrations',\n]);\n","import { Listr, type ListrBaseClassOptions } from 'listr2';\nimport type { ListrContext, ListrInitContext } from '../types';\nimport { generateSubgraphConfig } from './generateSubgraphConfig';\nimport { generateSubgraphSchema } from './generateSubgraphSchema';\nimport { checkSubgraphSchema } from './checkSubgraphSchema';\nimport { updatePackageJSON } from './updatePackageJSON';\nimport { addFilesToGitIndex } from './addFilesToGitIndex';\n\nconst listrOptions: ListrBaseClassOptions = {\n  concurrent: false,\n  rendererOptions: { collapseSkips: false },\n};\n\nexport const tasks = {\n  init: new Listr<ListrInitContext>(\n    [generateSubgraphConfig, generateSubgraphSchema, updatePackageJSON, addFilesToGitIndex],\n    listrOptions\n  ),\n  print: new Listr<ListrContext>([generateSubgraphSchema], listrOptions),\n  check: new Listr([checkSubgraphSchema], listrOptions),\n};\n","import { join } from 'node:path';\nimport { writeFileSync } from 'node:fs';\nimport type { ListrTask } from 'listr2';\nimport type { ListrContext } from '../types';\nimport { subgraphConfigTemplate } from '../templates';\n\nconst subTaskOptions = {\n  concurrent: false,\n  rendererOptions: { collapse: true },\n};\n\nexport const generateSubgraphConfig: ListrTask<ListrContext> = {\n  title: 'Generate subgraph config file',\n  task: (_, task) =>\n    task.newListr<ListrContext>(\n      [\n        {\n          title: 'Writing subgraph config to project root...',\n          task: async ({ schema: { paths, output } }) => {\n            try {\n              const configFilePath = join(process.cwd(), 'subgraph.config.ts');\n              const configContent = subgraphConfigTemplate(paths, output);\n              writeFileSync(configFilePath, configContent);\n            } catch (e) {\n              throw new Error(`Error generating subgraph config file: ${(e as Error).message}`);\n            }\n          },\n        },\n      ],\n      subTaskOptions\n    ),\n};\n","export const esBuildESMTemplate = `\nconst require = (await import(\"node:module\")).createRequire(import.meta.url);\nconst __filename = (await import(\"node:url\")).fileURLToPath(import.meta.url);\nconst __dirname = (await import(\"node:path\")).dirname(__filename);\n`;\n\nexport const subgraphConfigTemplate = (\n  schemaPaths: string[],\n  outputPath: string\n  // moduleName?: string\n) => {\n  return `import type { SubgraphConfig } from 'apollo-subgraph-cli'\n\n/**\n * @property schema - The location of your subgraph's typeDefs\n * @property output - The path to the printed schema file\n */\n\nconst config: SubgraphConfig = {\n  schema: [${schemaPaths.map((path) => `'${path}'`).join(', ')}],\n  output: '${outputPath}'\n}\n\nexport default config\n`;\n};\n","import { join, parse } from 'node:path';\nimport { writeFileSync } from 'node:fs';\nimport fs from 'fs-extra';\nimport type { ListrTask } from 'listr2';\nimport { printSubgraphSchema } from '@apollo/subgraph';\nimport type { ListrContext } from '../types';\nimport { loadSchema } from '../utils';\n\nconst { pathExists, mkdir } = fs;\n\nconst subTaskOptions = {\n  concurrent: false,\n  rendererOptions: { collapse: true },\n};\n\nexport const generateSubgraphSchema: ListrTask<ListrContext> = {\n  title: 'Generate subgraph schema file',\n  task: (_, task) =>\n    task.newListr<ListrContext>(\n      [\n        {\n          title: 'Printing schema file output...',\n          task: async ({ schema: { paths, output } }) => {\n            try {\n              const schemaPaths = paths.map((path) => join(process.cwd(), path));\n              const loadedSchema = await loadSchema(schemaPaths);\n\n              const schemaFilePath = join(process.cwd(), output);\n              const { dir } = parse(schemaFilePath);\n              const exists = await pathExists(dir);\n\n              if (!exists) {\n                await mkdir(dir, { recursive: true });\n              }\n\n              writeFileSync(schemaFilePath, printSubgraphSchema(loadedSchema));\n            } catch (e) {\n              throw new Error(`Error generating subgraph schema file: ${(e as Error).message}`);\n            }\n          },\n        },\n      ],\n      subTaskOptions\n    ),\n};\n","import { parse } from 'path';\nimport chalk from 'chalk';\nimport { logPrefix } from './logPrefix';\nimport { parseGlobPatterns } from './parseGlobPatterns';\nimport { generateSubgraphSchema } from './generateSubgraphSchema';\nimport { loadChokidar } from './loadChokidar';\n\nexport const buildFileWatcher = async (gqlSchemaPath: string[], outputPath: string) => {\n  const schemaPaths = await parseGlobPatterns(gqlSchemaPath, 'file');\n  const chokidar = await loadChokidar();\n  const watcher = chokidar.watch(schemaPaths, { persistent: true });\n\n  const printedPaths = schemaPaths\n    .map((path) => {\n      const { name, ext } = parse(path);\n      return ` - ${chalk.green(name + ext)}`;\n    })\n    .join('\\n');\n  console.log(`${logPrefix('info', 'INFO')}: Watching for schema changes in`);\n  console.log(printedPaths);\n\n  watcher.on('change', async (filePath) => {\n    const { name, ext } = parse(filePath);\n    try {\n      await generateSubgraphSchema({ paths: gqlSchemaPath, output: outputPath });\n      console.info(\n        `${logPrefix('success', 'CHANGE DETECTED')}:${logPrefix('success', name + ext)} Writing changes to ${chalk.green(outputPath)}`\n      );\n    } catch (e) {\n      if (e instanceof Error) {\n        console.error(e.message);\n      }\n    }\n  });\n\n  watcher.on('error', async (e) => {\n    await watcher?.close();\n    console.error(e);\n  });\n};\n","import chalk from 'chalk';\n\nconst colorMap = {\n  error: chalk.red,\n  info: chalk.blue,\n  success: chalk.green,\n} as const;\n\nexport const logPrefix = (type: 'info' | 'success' | 'error', message: string) =>\n  `[${colorMap[type].bold(message)}]`;\n","import { resolve } from 'node:path';\nimport fg from 'fast-glob';\n\ntype PathType = 'file' | 'directory';\n\nexport async function parseGlobPatterns(\n  patterns: string[],\n  type: PathType = 'file'\n): Promise<string[]> {\n  const entries = await fg(patterns, {\n    dot: true,\n    onlyFiles: type === 'file',\n    onlyDirectories: type === 'directory',\n  });\n  return entries.map((entry) => resolve(process.cwd(), entry));\n}\n","import { join, parse } from 'node:path';\nimport { mkdirSync, writeFileSync } from 'node:fs';\nimport fs from 'fs-extra';\nimport { printSubgraphSchema } from '@apollo/subgraph';\nimport { loadSchema } from './loadSchema';\nimport { logPrefix } from './logPrefix';\nimport type { ListrContext } from '../types';\n\nconst { pathExists } = fs;\n\nexport const generateSubgraphSchema = async ({ paths, output }: ListrContext['schema']) => {\n  let loadedSchema;\n  let schemaFilePath;\n  try {\n    const schemaPaths = paths.map((path) => join(process.cwd(), path));\n    loadedSchema = await loadSchema(schemaPaths);\n    schemaFilePath = join(process.cwd(), output);\n\n    const { dir } = parse(schemaFilePath);\n    const exists = await pathExists(dir);\n    if (!exists) {\n      mkdirSync(dir, { recursive: true });\n    }\n  } catch (e: any) {\n    throw new Error(`${logPrefix('error', 'ERROR DETECTED')}: ${e.message}`);\n  }\n\n  let schema;\n  try {\n    schema = printSubgraphSchema(loadedSchema);\n  } catch (e: any) {\n    throw new Error(`${logPrefix('error', 'SCHEMA ERROR DETECTED')}: ${e.message}`);\n  }\n\n  try {\n    writeFileSync(schemaFilePath, schema);\n  } catch (e: any) {\n    throw new Error(`${logPrefix('error', 'ERROR DETECTED')}: ${e.message}`);\n  }\n};\n","import type { GraphQLSchema } from 'graphql';\nimport { CodeFileLoader } from '@graphql-tools/code-file-loader';\nimport { GraphQLFileLoader } from '@graphql-tools/graphql-file-loader';\nimport type { LoadSchemaOptions } from '@graphql-tools/load/typings/schema';\nimport {\n  loadSchema as loadSchemaToolkit,\n  type UnnormalizedTypeDefPointer,\n} from '@graphql-tools/load';\n\nexport const defaultSchemaLoadOptions = {\n  assumeValidSDL: true,\n  sort: true,\n  convertExtensions: true,\n  includeSources: true,\n};\n\nexport async function loadSchema(\n  schemaPointers: UnnormalizedTypeDefPointer | UnnormalizedTypeDefPointer[],\n  config: Partial<LoadSchemaOptions> = {}\n): Promise<GraphQLSchema> {\n  try {\n    const loaders = [new CodeFileLoader(), new GraphQLFileLoader()];\n\n    const schema = await loadSchemaToolkit(schemaPointers, {\n      ...defaultSchemaLoadOptions,\n      loaders,\n      ...config,\n      ...config.config,\n    });\n    return schema;\n  } catch (e: any) {\n    throw new Error(\n      `\n        Failed to load schema from ${Object.keys(schemaPointers).join(',')}:\n\n        ${e.message || e}\n        ${e.stack || ''}\n\n        Apollo Subgraph CLI supports all extensions for:\n          - GraphQL files\n          - TS/JS files\n\n        Try to use one of above options and run codegen again.\n\n      `\n    );\n  }\n}\n","import { dirname, join } from 'node:path';\nimport { access } from 'node:fs/promises';\n\nexport const resolveModule = async (moduleName: string, startDir: string): Promise<string> => {\n  const modulePath = join(startDir, 'node_modules', moduleName);\n  try {\n    await access(modulePath);\n    return modulePath;\n  } catch {\n    const parentDir = dirname(startDir);\n    if (parentDir === startDir) {\n      throw new Error(`Cannot find module '${moduleName}'`);\n    }\n    return resolveModule(moduleName, parentDir);\n  }\n};\n","import { resolveModule } from './resolveModule';\n\nexport const loadChokidar = async () => {\n  try {\n    await resolveModule('chokidar', process.cwd());\n    return await import('chokidar');\n  } catch (e) {\n    throw new Error(\n      'The \"chokidar\" package is required and needs to be installed if watching for file changes.'\n    );\n  }\n};\n","import { cosmiconfig } from 'cosmiconfig';\nimport { TypeScriptLoader } from 'cosmiconfig-typescript-loader';\nimport type { SubgraphConfig } from '../../typings';\n\nexport const getSubgraphArgsFromCosmicConfigFile = async (\n  search?: string\n): Promise<SubgraphConfig | undefined> => {\n  const moduleName = 'subgraph';\n  const searchPlaces = search\n    ? [search]\n    : [\n        'package.json',\n        `.${moduleName}rc`,\n        `.${moduleName}rc.json`,\n        `.${moduleName}rc.yaml`,\n        `.${moduleName}rc.yml`,\n        `.${moduleName}rc.js`,\n        `.${moduleName}rc.ts`,\n        `${moduleName}.config.js`,\n        `${moduleName}.config.ts`,\n      ];\n\n  const result = await cosmiconfig(moduleName, {\n    searchPlaces,\n    loaders: { '.ts': TypeScriptLoader() },\n  }).search();\n\n  return result?.config;\n};\n","import { join } from 'node:path';\nimport fs from 'fs-extra';\n\nconst { readJsonSync } = fs;\n\nexport const getPackageJson = () => {\n  const packageJsonPath = join(process.cwd(), 'package.json');\n  const packageJson = readJsonSync(packageJsonPath);\n  return { output: packageJson, path: packageJsonPath };\n};\n","import { readdirSync } from 'node:fs';\nimport { join, relative } from 'node:path';\nimport type { Ignore } from 'ignore';\n\nexport const findFilesByFileName = (dir: string, fileNames: string[], ig: Ignore): string[] => {\n  const results: string[] = [];\n\n  function searchDir(currentDir: string) {\n    const entries = readdirSync(currentDir, { withFileTypes: true });\n\n    for (const entry of entries) {\n      const relativePath = relative(process.cwd(), join(currentDir, entry.name));\n      if (ig.ignores(relativePath)) continue;\n\n      const entryPath = join(currentDir, entry.name);\n      if (entry.isDirectory()) {\n        searchDir(entryPath);\n      } else if (fileNames.includes(entry.name)) {\n        results.push(entryPath);\n      }\n    }\n  }\n\n  searchDir(dir);\n  return results;\n};\n","import { execSync } from 'child_process';\n\nexport const isGitRepo = () => {\n  try {\n    execSync('git rev-parse --is-inside-work-tree', { stdio: 'ignore' });\n    return true;\n  } catch (e) {\n    return false;\n  }\n};\n","import { join } from 'node:path';\nimport { printSubgraphSchema } from '@apollo/subgraph';\nimport type { ListrTask } from 'listr2';\nimport type { ListrContextCheckSchema } from '../types';\nimport { loadSchema } from '../utils';\n\nconst subTaskOptions = {\n  concurrent: false,\n  rendererOptions: { collapse: true },\n};\n\nexport const checkSubgraphSchema: ListrTask<ListrContextCheckSchema> = {\n  title: 'Check subgraph schema',\n  task: (_, task) =>\n    task.newListr<ListrContextCheckSchema>(\n      [\n        {\n          title: 'Checking schema file output...',\n          task: async ({ schema: { paths } }, task) => {\n            try {\n              const schemaPaths = paths.map((path) => join(process.cwd(), path));\n              const loadedSchema = await loadSchema(schemaPaths);\n              printSubgraphSchema(loadedSchema);\n\n              task.output = 'No issues found with federated schema';\n            } catch (e) {\n              throw new Error(`Error found with federated schema: ${(e as Error).message}`);\n            }\n          },\n        },\n      ],\n      subTaskOptions\n    ),\n};\n","import fs from 'fs-extra';\nimport type { ListrTask } from 'listr2';\nimport type { ListrContext } from '../types';\nimport { scripts } from '../constants';\nimport { getPackageJson } from '../utils';\n\nconst { writeJSONSync } = fs;\n\nconst subTaskOptions = {\n  concurrent: false,\n  rendererOptions: { collapse: true },\n};\n\nexport const updatePackageJSON: ListrTask<ListrContext> = {\n  title: 'Update package.json',\n  task: (_, task) =>\n    task.newListr<ListrContext>(\n      [\n        {\n          title: 'Adding and updating npm scripts',\n          task: async ({ printScriptName, checkScriptName }) => {\n            try {\n              const { output, path } = getPackageJson();\n\n              output.scripts = {\n                ...(output.scripts ?? {}),\n                [printScriptName ?? 'schema:print']: scripts.print,\n                [checkScriptName ?? 'schema:check']: scripts.check,\n              };\n\n              writeJSONSync(path, output, { spaces: 2 });\n            } catch (e) {\n              throw new Error(`Error writing to package.json: ${(e as Error).message}`);\n            }\n          },\n        },\n      ],\n      subTaskOptions\n    ),\n};\n","import { join, parse } from 'node:path';\nimport { execSync } from 'node:child_process';\nimport type { ListrTask } from 'listr2';\nimport type { ListrInitContext } from '../types';\nimport { findFilesByFileName, isGitRepo } from '../utils';\nimport { existsSync, readFileSync } from 'node:fs';\nimport { commonIgnoreDirs } from '../constants';\nimport ignore from 'ignore';\n\nconst subTaskOptions = {\n  concurrent: false,\n  rendererOptions: { collapse: true },\n};\n\nexport const addFilesToGitIndex: ListrTask<ListrInitContext> = {\n  title: 'Add files to git',\n  skip: ({ git = false }) => (!git ? 'Skipping add files to git' : false),\n  task: ({ schema: { output } }, task) =>\n    task.newListr(\n      [\n        {\n          title: 'Performing git add...',\n          task: (_, task) => {\n            const gitRepo = isGitRepo();\n            if (!gitRepo) {\n              task.output = 'No git repo found.';\n              return;\n            }\n\n            const { name, ext } = parse(output);\n            const generatedSchemaFileName = `${name}.${ext}`;\n            const fileNames = ['subgraph.config.ts', 'package.json', generatedSchemaFileName];\n\n            const gitignorePath = join(process.cwd(), '.gitignore');\n            const ig = ignore();\n\n            if (existsSync(gitignorePath)) {\n              const gitignoreContent = readFileSync(gitignorePath, 'utf-8');\n              ig.add(gitignoreContent);\n            } else {\n              // If there's no `.gitignore`, use the common list of ignored directories\n              ig.add([...commonIgnoreDirs].map((dir) => `/${dir}/`));\n            }\n\n            try {\n              const filesPaths = findFilesByFileName(process.cwd(), fileNames, ig);\n              if (!filesPaths.length) {\n                task.output = 'No files found to add to git staging.';\n                return;\n              } else {\n                execSync(`git add ${filesPaths.map((file) => `${file}`).join(' ')}`);\n              }\n            } catch (e) {\n              throw new Error(`Error adding files to git: ${(e as Error).message}`);\n            }\n          },\n        },\n      ],\n      subTaskOptions\n    ),\n};\n","import { confirm, input } from '@inquirer/prompts';\n\nexport const getSchemaPaths = async (paths: string[] = []): Promise<string[]> => {\n  const path = await input({\n    message: 'Enter schema path:',\n    default: './src/gql/typeDefs/*.ts',\n  });\n\n  paths.push(path);\n\n  const additionalInput = await confirm({ message: 'Do you have another path to provide?' });\n  if (additionalInput) {\n    await getSchemaPaths(paths);\n  }\n\n  return paths;\n};\n\nexport const getOutputPath = async (): Promise<string> =>\n  input({\n    message: 'Where would you like to write the output?',\n    default: './schema.graphql',\n    validate: (val) => {\n      return val?.includes('.graphql') || 'The output has to use the .graphql file extension';\n    },\n  });\n\nexport const getPrintScriptName = async (): Promise<string> =>\n  input({\n    message: 'What would you like to name the npm script to print your schema?',\n    default: 'schema:print',\n    validate: (val) => !!val?.length,\n  });\n\nexport const getCheckScriptName = async (): Promise<string> =>\n  input({\n    message: 'What would you like to name the npm script to check your schema?',\n    default: 'schema:check',\n    validate: (val) => !!val?.length,\n  });\n\nexport const confirmAddFilesToGitStaging = async (): Promise<boolean> =>\n  confirm({ message: 'Do you want to add the new files to the git staging area?' });\n"],"mappings":"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","names":["import_fs_extra","boxen","chalk","import_node_path","import_node_fs","import_fs_extra","import_subgraph","import_chalk","import_chalk","chalk","import_node_path","fg","import_node_path","import_node_fs","loadSchemaToolkit","fs","import_node_path","chalk","import_node_path","import_fs_extra","fs","import_node_fs","import_node_path","pathExists","fs","subTaskOptions","generateSubgraphSchema","import_node_path","import_subgraph","subTaskOptions","task","import_fs_extra","fs","subTaskOptions","import_node_path","import_node_fs","subTaskOptions","task","ignore","generateSubgraphSchema","fs"]}