{"version":3,"file":"cli.mjs","sources":["../package.json","../lib/vitePluginLibra.ts","../lib/vitePluginHtml.ts","../lib/makeViteConfig.ts","../lib/commands.ts","../lib/makeLibraConfig.ts","../lib/index.ts"],"sourcesContent":["{\n  \"name\": \"@sweatpants/libra\",\n  \"version\": \"0.0.40\",\n  \"description\": \"\",\n  \"type\": \"module\",\n  \"publishConfig\": {\n    \"access\": \"public\"\n  },\n  \"exports\": {\n    \".\": {\n      \"types\": \"./api/index.d.ts\",\n      \"default\": \"./api/index.ts\"\n    },\n    \"./config\": {\n      \"types\": \"./api/config.d.ts\",\n      \"default\": \"./api/config.ts\"\n    }\n  },\n  \"typesVersions\": {\n    \"*\": {\n      \"config\": [\n        \"./api/config.d.ts\"\n      ],\n      \"*\": [\n        \"./api/index.d.ts\"\n      ]\n    }\n  },\n  \"bin\": {\n    \"libra\": \"dist/cli.mjs\"\n  },\n  \"files\": [\n    \"assets\",\n    \"api\",\n    \"dist\",\n    \"lib\",\n    \"src\",\n    \"types\",\n    \"index.html\",\n    \"preview.html\",\n    \"styled-system\"\n  ],\n  \"scripts\": {\n    \"build\": \"rimraf dist && rollup -c && npm run prepare:panda\",\n    \"build:w\": \"rimraf dist && rollup -c -w\",\n    \"lint\": \"eslint .\",\n    \"prepare:panda\": \"panda codegen && panda cssgen\",\n    \"lint:ci\": \"npm run prepare:panda && eslint . --max-warnings 0\",\n    \"prepare:test\": \"npm run prepare:panda && npm run build && cd tests/react-18 && npm ci\",\n    \"dev\": \"npm run prepare:test && cd tests/react-18 && npm start\",\n    \"test\": \"cd tests/react-18 && npm run preview & cypress open\",\n    \"test:ci\": \"cd tests/react-18 && npm run preview & wait-on http://localhost:9001 && cypress run\"\n  },\n  \"keywords\": [\n    \"react\"\n  ],\n  \"author\": \"Jon Ambas <jon@jonambas.com>\",\n  \"license\": \"MIT\",\n  \"dependencies\": {\n    \"@sweatpants/react\": \"0.8.2\",\n    \"@vitejs/plugin-react\": \"4.2.1\",\n    \"classnames\": \"2.3.2\",\n    \"commander\": \"11.0.0\",\n    \"esbuild\": \"0.19.10\",\n    \"fast-glob\": \"3.3.2\",\n    \"framecast\": \"0.0.5\",\n    \"picocolors\": \"1.0.0\",\n    \"react-error-boundary\": \"3.1.4\",\n    \"react-router-dom\": \"6.16.0\",\n    \"vite\": \"5.2.4\",\n    \"vite-plugin-inspect\": \"0.8.3\"\n  },\n  \"devDependencies\": {\n    \"@pandacss/dev\": \"0.36.1\",\n    \"@rollup/plugin-commonjs\": \"25.0.7\",\n    \"@sweatpants/panda-preset\": \"0.8.1\",\n    \"@testing-library/cypress\": \"10.0.1\",\n    \"@types/node\": \"20.11.30\",\n    \"@types/react\": \"18.2.69\",\n    \"@types/react-dom\": \"18.2.22\",\n    \"@typescript-eslint/eslint-plugin\": \"6.15.0\",\n    \"@typescript-eslint/parser\": \"6.15.0\",\n    \"cypress\": \"12.17.4\",\n    \"eslint-config-prettier\": \"9.1.0\",\n    \"eslint-import-resolver-typescript\": \"3.6.1\",\n    \"eslint-plugin-import\": \"2.29.1\",\n    \"eslint-plugin-react\": \"7.33.2\",\n    \"eslint-plugin-react-hooks\": \"4.6.0\",\n    \"react\": \"18.2.0\",\n    \"react-dom\": \"18.2.0\",\n    \"rimraf\": \"5.0.5\",\n    \"rollup\": \"4.9.5\",\n    \"rollup-plugin-esbuild\": \"6.1.1\",\n    \"typescript\": \"5.2.2\",\n    \"wait-on\": \"7.2.0\"\n  }\n}\n","import type { Plugin } from 'vite';\nimport fg from 'fast-glob';\n\nexport const libraPlugin = async (): Promise<Plugin> => {\n  const virtualId = 'virtual:libra-entries';\n  const resolvedVirtualId = '\\0' + virtualId;\n\n  const entryPaths = await fg([\n    `${process.cwd()}/**/*.libra.{ts,tsx,js,jsx}`,\n    '!**/node_modules/**'\n  ]);\n\n  const entryFsPaths = entryPaths.map((e) => `/@fs${e}`);\n  const entryImports = entryFsPaths.map((e) => `await import('${e}');`);\n\n  return {\n    name: 'vite-plugin-react-libra-entries',\n    resolveId(id: string) {\n      if (id === virtualId) {\n        return resolvedVirtualId;\n      }\n    },\n    load(id: string) {\n      if (id === resolvedVirtualId) {\n        return `\n        import { instance } from '@sweatpants/libra';\n\n        const run = async () => {\n          ${entryImports.join('\\n')}\n        }\n\n        const init = async () => {\n          await run();\n          instance.load();\n        }\n\n        init();\n\n        if (import.meta.hot) {\n          import.meta.hot.accept();\n        }\n        `;\n      }\n    }\n  };\n};\n","import type { Plugin } from 'vite';\n\n/**\n * Renames page titles in the html templates\n */\n\nexport const htmlPlugin = (title?: string): Plugin => {\n  return {\n    name: 'vite-plugin-html-title',\n    transformIndexHtml: (html, ctx) => {\n      const indexRegex = /libra\\/index.html$/;\n      const previewRegex = /libra\\/preview.html$/;\n      const titleRegex = /<title>(.*?)<\\/title>/;\n\n      if (ctx.filename.match(indexRegex)) {\n        return html.replace(titleRegex, `<title>${title}</title>`);\n      }\n\n      if (ctx.filename.match(previewRegex)) {\n        return html.replace(titleRegex, `<title>${title} | Preview</title>`);\n      }\n    }\n  };\n};\n","import { resolve } from 'path';\nimport { mergeConfig, InlineConfig } from 'vite';\nimport inspect from 'vite-plugin-inspect';\nimport react from '@vitejs/plugin-react';\nimport fg from 'fast-glob';\nimport { libraPlugin } from './vitePluginLibra';\nimport { htmlPlugin } from './vitePluginHtml';\nimport type { LibraConfig } from './makeLibraConfig';\n\nexport const makeViteConfig = async (\n  config: LibraConfig\n): Promise<Record<string, any>> => {\n  const {\n    cwd,\n    dirname,\n    inspect: inspectEnabled,\n    layout,\n    mode,\n    open,\n    outDir,\n    port,\n    title,\n    viteConfig\n  } = config;\n\n  const entryPaths = await fg([\n    `${cwd}/**/*.libra.{ts,tsx,js,jsx}`,\n    '!**/node_modules/**'\n  ]);\n\n  const inspectPlugin = inspectEnabled ? [inspect()] : [];\n\n  const defaultConfig: InlineConfig = {\n    mode,\n    configFile: false,\n    root: dirname,\n    logLevel: 'info',\n    server: {\n      port,\n      open,\n      host: true,\n      fs: {\n        allow: [cwd, dirname]\n      }\n    },\n    preview: {\n      port,\n      open\n    },\n    build: {\n      outDir: resolve(cwd, outDir),\n      // Suppresses warning \"outDir is not inside project root and will not be emptied.\"\n      emptyOutDir: true,\n      rollupOptions: {\n        input: {\n          main: resolve(dirname, 'index.html'),\n          preview: resolve(dirname, 'preview.html')\n        },\n        // Supresses module directive warning\n        // See https://github.com/rollup/rollup/issues/4699\n        onwarn: (warning, warn) => {\n          if (warning.code === 'THIS_IS_UNDEFINED') {\n            return;\n          }\n          return warn;\n        }\n      }\n    },\n    plugins: [libraPlugin(), react(), htmlPlugin(title), ...inspectPlugin],\n    optimizeDeps: {\n      esbuildOptions: {\n        target: 'ES2020'\n      },\n      force: true,\n      exclude: [\n        ...entryPaths,\n        '@sweatpants/libra',\n        resolve(dirname, 'src/preview/defaultLayout.tsx')\n      ],\n      include: ['react-dom']\n    },\n    resolve: {\n      preserveSymlinks: true,\n      alias: {\n        '@sweatpants/libra': resolve(dirname, 'api'),\n        react: resolve(cwd, 'node_modules/react'),\n        __LIBRA_LAYOUT__: layout\n          ? resolve(cwd, layout)\n          : resolve(dirname, 'src/preview/defaultLayout.tsx')\n      }\n    },\n    define: {\n      __LIBRA__: JSON.stringify({ title, debug: inspectEnabled }),\n      'process.env.NODE_ENV': JSON.stringify(mode)\n    }\n  };\n\n  const userConfig = viteConfig ? viteConfig() : {};\n  const finalConfig = mergeConfig(defaultConfig, userConfig);\n  return finalConfig;\n};\n","import { createServer, build as viteBuild, preview as vitePreview } from 'vite';\nimport { makeViteConfig } from './makeViteConfig';\nimport type { LibraConfig } from './makeLibraConfig';\n\nexport const build = async (config: LibraConfig): Promise<void> => {\n  const finalConfig = await makeViteConfig(config);\n  await viteBuild(finalConfig);\n};\n\nexport const start = async (config: LibraConfig): Promise<void> => {\n  const finalConfig = await makeViteConfig(config);\n  const server = await createServer(finalConfig);\n  await server.listen();\n  server.printUrls();\n};\n\nexport const preview = async (config: LibraConfig): Promise<void> => {\n  const finalConfig = await makeViteConfig(config);\n  await viteBuild(finalConfig);\n  const server = await vitePreview(finalConfig);\n  server.printUrls();\n};\n","import { pathToFileURL } from 'url';\nimport { resolve } from 'path';\nimport fs from 'fs';\nimport pc from 'picocolors';\nimport { build } from 'esbuild';\nimport fg from 'fast-glob';\nimport type { Config } from '../api/types';\n\nexport interface LibraConfig extends Partial<Config> {\n  cwd: string;\n  dirname: string;\n  mode: 'production' | 'development';\n  outDir: string;\n}\n\nconst dynamicImport = new Function('file', 'return import(file)');\n\n/**\n * Finds, builds, and returns user config file\n */\nexport const resolveConfig = async (cwd: string): Promise<Partial<LibraConfig>> => {\n  try {\n    const configPaths = await fg(resolve(cwd, 'libra.config.{ts,js,mjs,cjs}'));\n    const configPath = configPaths[0];\n\n    if (!fs.existsSync(configPath)) {\n      console.log(\n        pc.red('\\nLibra config file not found. Using default Libra settings\\n')\n      );\n      return {};\n    }\n\n    const result = await build({\n      absWorkingDir: process.cwd(),\n      entryPoints: [configPath],\n      outfile: 'out.js',\n      write: false,\n      platform: 'node',\n      bundle: true,\n      format: 'cjs',\n      sourcemap: 'inline'\n    });\n\n    const text = result.outputFiles[0].text;\n    const fileUrl = pathToFileURL(configPath);\n\n    // Write bundles config into a file, read it, then delete it\n    fs.writeFileSync(configPath + '.bundled.js', text);\n    const userConfig = (await dynamicImport(`${fileUrl}.bundled.js`)).default;\n    fs.unlinkSync(configPath + '.bundled.js');\n\n    return userConfig.default;\n  } catch (e) {\n    console.error(e);\n    process.exit(1);\n  }\n};\n\nexport const makeLibraConfig = async (cliConfig: LibraConfig): Promise<LibraConfig> => {\n  const defaults: Config = {\n    port: 9000,\n    open: false,\n    outDir: 'dist/libra',\n    title: 'Libra'\n  };\n\n  const resolvedUserConfig = await resolveConfig(cliConfig.cwd);\n\n  return {\n    ...defaults,\n    ...resolvedUserConfig,\n    ...cliConfig\n  };\n};\n","import { fileURLToPath } from 'url';\nimport { Command } from 'commander';\nimport pkg from '../package.json';\nimport { start, build, preview } from './commands';\nimport { makeLibraConfig, LibraConfig } from './makeLibraConfig';\n\nconst program = new Command();\nconst dirname = fileURLToPath(new URL('..', import.meta.url));\nconst cwd = process.cwd();\n\nconst enrichConfig = async (options: any = {}): Promise<LibraConfig> => {\n  return await makeLibraConfig({\n    cwd,\n    dirname,\n    ...options\n  });\n};\n\nprogram\n  .name('libra')\n  .description('A React component dev environment')\n  .version(pkg.version);\n\nprogram\n  .command('start')\n  .option('-o, --open', 'opens the browser')\n  .option('-p, --port <port>', 'specifies a port')\n  .option('-i, --inspect', 'enables vite plugin inspect')\n  .description('starts the Libra app locally')\n  .action(async (options) => {\n    const config = await enrichConfig(options);\n    await start(config);\n  });\n\nprogram\n  .command('preview')\n  .option('-o, --open', 'opens the browser')\n  .option('-p, --port <port>', 'specifies a port')\n  .description('preview a production build locally')\n  .action(async (options) => {\n    const config = await enrichConfig(options);\n    await preview(config);\n  });\n\nprogram\n  .command('build')\n  .option('-o, --out', 'specifies output directory')\n  .description('creates a production build')\n  .action(async (options) => {\n    const config = await enrichConfig(options);\n    await build(config);\n  });\n\nprogram.parse();\n"],"names":["viteBuild","vitePreview","build","pkg"],"mappings":"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"}