@farris/cli 2.0.0 → 2.0.2-ba-beta1
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/bin/index.js +2 -2
 - package/lib/commands/build-components.js +40 -0
 - package/lib/commands/build-components.js.map +1 -0
 - package/lib/commands/build-css.js +39 -0
 - package/lib/commands/build-css.js.map +1 -0
 - package/lib/commands/build-lib.js +26 -0
 - package/lib/commands/build-lib.js.map +1 -0
 - package/lib/commands/build.js +16 -0
 - package/lib/commands/build.js.map +1 -0
 - package/lib/commands/create-app.js +55 -0
 - package/lib/commands/create-app.js.map +1 -0
 - package/lib/commands/dev-serve.js +19 -0
 - package/lib/commands/dev-serve.js.map +1 -0
 - package/lib/commands/extract-i18n.js +75 -0
 - package/lib/commands/extract-i18n.js.map +1 -0
 - package/lib/commands/preview-serve.js +17 -0
 - package/lib/commands/preview-serve.js.map +1 -0
 - package/lib/common/constant.js +23 -0
 - package/lib/common/constant.js.map +1 -0
 - package/lib/common/generate-app.js +45 -0
 - package/lib/common/generate-app.js.map +1 -0
 - package/lib/common/get-dependencies.js +10 -0
 - package/lib/common/get-dependencies.js.map +1 -0
 - package/lib/common/get-farris-config.js +12 -0
 - package/lib/common/get-farris-config.js.map +1 -0
 - package/lib/common/get-version.js +7 -0
 - package/lib/common/get-version.js.map +1 -0
 - package/lib/common/get-vite-config.js +51 -0
 - package/lib/common/get-vite-config.js.map +1 -0
 - package/lib/config/vite-app.js +14 -0
 - package/lib/config/vite-app.js.map +1 -0
 - package/lib/config/vite-common.js +21 -0
 - package/lib/config/vite-common.js.map +1 -0
 - package/lib/config/vite-component.js +31 -0
 - package/lib/config/vite-component.js.map +1 -0
 - package/lib/config/vite-lib.js +27 -0
 - package/lib/config/vite-lib.js.map +1 -0
 - package/lib/index.js +84 -0
 - package/lib/index.js.map +1 -0
 - package/lib/plugins/create-component-style.js +46 -0
 - package/lib/plugins/create-component-style.js.map +1 -0
 - package/lib/plugins/create-package-json.js +34 -0
 - package/lib/plugins/create-package-json.js.map +1 -0
 - package/lib/plugins/dts.js +9 -0
 - package/lib/plugins/dts.js.map +1 -0
 - package/lib/plugins/html-system.js +12 -0
 - package/lib/plugins/html-system.js.map +1 -0
 - package/lib/plugins/replace.js +18 -0
 - package/lib/plugins/replace.js.map +1 -0
 - package/lib/plugins/systemjs-bundle.js +16 -0
 - package/lib/plugins/systemjs-bundle.js.map +1 -0
 - package/package.json +42 -40
 - package/templates/mobile/.eslintrc.cjs +15 -15
 - package/templates/mobile/.prettierrc.json +7 -7
 - package/templates/mobile/farris.config.mjs +24 -24
 - package/templates/mobile/index.html +12 -12
 - package/templates/mobile/package.json +28 -28
 - package/templates/mobile/src/App.vue +80 -80
 - package/templates/mobile/src/components/TheButton.vue +3 -3
 - package/templates/mobile/src/main.ts +12 -12
 - package/templates/mobile/src/router/index.ts +23 -23
 - package/templates/mobile/src/views/AboutView.vue +15 -15
 - package/templates/mobile/src/views/HomeView.vue +9 -9
 - package/templates/mobile/tsconfig.json +17 -17
 - package/templates/web/.eslintrc.cjs +15 -15
 - package/templates/web/.prettierrc.json +7 -7
 - package/templates/web/farris.config.mjs +24 -24
 - package/templates/web/index.html +12 -12
 - package/templates/web/package.json +28 -28
 - package/templates/web/src/App.vue +80 -80
 - package/templates/web/src/components/TheButton.vue +3 -3
 - package/templates/web/src/main.ts +10 -10
 - package/templates/web/src/router/index.ts +23 -23
 - package/templates/web/src/views/AboutView.vue +15 -15
 - package/templates/web/src/views/HomeView.vue +9 -9
 - package/templates/web/tsconfig.json +17 -17
 
    
        package/bin/index.js
    CHANGED
    
    | 
         @@ -1,2 +1,2 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            #!/usr/bin/env node
         
     | 
| 
       2 
     | 
    
         
            -
            import '../lib/index.js';
         
     | 
| 
      
 1 
     | 
    
         
            +
            #!/usr/bin/env node
         
     | 
| 
      
 2 
     | 
    
         
            +
            import '../lib/index.js';
         
     | 
| 
         @@ -0,0 +1,40 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import { readdirSync, lstatSync, existsSync } from "node:fs";
         
     | 
| 
      
 2 
     | 
    
         
            +
            import { resolve } from "node:path";
         
     | 
| 
      
 3 
     | 
    
         
            +
            import ora from 'ora';
         
     | 
| 
      
 4 
     | 
    
         
            +
            import { buildCommon } from "./build.js";
         
     | 
| 
      
 5 
     | 
    
         
            +
            import { buildCss } from "./build-css.js";
         
     | 
| 
      
 6 
     | 
    
         
            +
            import { CWD } from "../common/constant.js";
         
     | 
| 
      
 7 
     | 
    
         
            +
            const excludeComponents = ['property-panel', 'dynamic-resolver', 'dynamic-view'];
         
     | 
| 
      
 8 
     | 
    
         
            +
            const BaseEntry = './components';
         
     | 
| 
      
 9 
     | 
    
         
            +
            const BaseOutDir = './package/components';
         
     | 
| 
      
 10 
     | 
    
         
            +
            export async function buildComponents(options) {
         
     | 
| 
      
 11 
     | 
    
         
            +
                const components = readdirSync("./components").filter((name) => {
         
     | 
| 
      
 12 
     | 
    
         
            +
                    const componentDir = resolve(CWD, `./components`, name);
         
     | 
| 
      
 13 
     | 
    
         
            +
                    const isDir = lstatSync(componentDir).isDirectory();
         
     | 
| 
      
 14 
     | 
    
         
            +
                    return isDir && readdirSync(componentDir).includes("index.ts");
         
     | 
| 
      
 15 
     | 
    
         
            +
                }).filter(name => !excludeComponents.includes(name));
         
     | 
| 
      
 16 
     | 
    
         
            +
                const spinner = ora(`build components begin`).start();
         
     | 
| 
      
 17 
     | 
    
         
            +
                components.forEach(async (component) => {
         
     | 
| 
      
 18 
     | 
    
         
            +
                    const entry = resolve(CWD, `${BaseEntry}/${component}/index.ts`);
         
     | 
| 
      
 19 
     | 
    
         
            +
                    const outDir = resolve(CWD, `${BaseOutDir}/${component}`);
         
     | 
| 
      
 20 
     | 
    
         
            +
                    const config = {
         
     | 
| 
      
 21 
     | 
    
         
            +
                        publicDir: '',
         
     | 
| 
      
 22 
     | 
    
         
            +
                        build: {
         
     | 
| 
      
 23 
     | 
    
         
            +
                            lib: {
         
     | 
| 
      
 24 
     | 
    
         
            +
                                entry
         
     | 
| 
      
 25 
     | 
    
         
            +
                            },
         
     | 
| 
      
 26 
     | 
    
         
            +
                            outDir
         
     | 
| 
      
 27 
     | 
    
         
            +
                        }
         
     | 
| 
      
 28 
     | 
    
         
            +
                    };
         
     | 
| 
      
 29 
     | 
    
         
            +
                    spinner.text = `building ${component}`;
         
     | 
| 
      
 30 
     | 
    
         
            +
                    await buildCommon({ ...options, config, type: 'component' });
         
     | 
| 
      
 31 
     | 
    
         
            +
                    spinner.succeed(`build ${component} success`);
         
     | 
| 
      
 32 
     | 
    
         
            +
                    const cssEntry = `${BaseEntry}/${component}/src/${component}.scss`;
         
     | 
| 
      
 33 
     | 
    
         
            +
                    if (!existsSync(cssEntry)) {
         
     | 
| 
      
 34 
     | 
    
         
            +
                        return;
         
     | 
| 
      
 35 
     | 
    
         
            +
                    }
         
     | 
| 
      
 36 
     | 
    
         
            +
                    await buildCss({ ...options, entry: cssEntry, outfile: `${BaseOutDir}/${component}/index.css`, showSpinner: false });
         
     | 
| 
      
 37 
     | 
    
         
            +
                });
         
     | 
| 
      
 38 
     | 
    
         
            +
            }
         
     | 
| 
      
 39 
     | 
    
         
            +
            ;
         
     | 
| 
      
 40 
     | 
    
         
            +
            //# sourceMappingURL=build-components.js.map
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"build-components.js","sourceRoot":"","sources":["../../src/commands/build-components.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAsB,WAAW,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,MAAM,iBAAiB,GAAG,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,cAAc,CAAC,CAAC;AAEjF,MAAM,SAAS,GAAG,cAAc,CAAC;AACjC,MAAM,UAAU,GAAG,sBAAsB,CAAC;AAE1C,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAA2B;IAE/D,MAAM,UAAU,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QAC7D,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;QAEpD,OAAO,KAAK,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAA,EAAE,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAEpD,MAAM,OAAO,GAAG,GAAG,CAAC,wBAAwB,CAAC,CAAC,KAAK,EAAE,CAAC;IAEtD,UAAU,CAAC,OAAO,CAAC,KAAK,EAAC,SAAS,EAAA,EAAE;QAClC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,SAAS,IAAI,SAAS,WAAW,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,UAAU,IAAI,SAAS,EAAE,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG;YACb,SAAS,EAAE,EAAE;YACb,KAAK,EAAE;gBACL,GAAG,EAAC;oBACF,KAAK;iBACN;gBACD,MAAM;aACP;SACF,CAAC;QAEF,OAAO,CAAC,IAAI,GAAG,YAAY,SAAS,EAAE,CAAC;QAEvC,MAAM,WAAW,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAG,CAAC,CAAC;QAE9D,OAAO,CAAC,OAAO,CAAC,SAAS,SAAS,UAAU,CAAC,CAAC;QAE9C,MAAM,QAAQ,GAAG,GAAG,SAAS,IAAI,SAAS,QAAQ,SAAS,OAAO,CAAC;QACnE,IAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;YACxB,OAAO;SACR;QACD,MAAM,QAAQ,CAAC,EAAC,GAAG,OAAO,EAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,UAAU,IAAI,SAAS,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;IACrH,CAAC,CAAC,CAAC;AAEL,CAAC;AAAA,CAAC"}
         
     | 
| 
         @@ -0,0 +1,39 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import { build } from "esbuild";
         
     | 
| 
      
 2 
     | 
    
         
            +
            import { sassPlugin } from 'esbuild-sass-plugin';
         
     | 
| 
      
 3 
     | 
    
         
            +
            import path from 'node:path';
         
     | 
| 
      
 4 
     | 
    
         
            +
            import { CWD } from "../common/constant.js";
         
     | 
| 
      
 5 
     | 
    
         
            +
            import ora from "ora";
         
     | 
| 
      
 6 
     | 
    
         
            +
            const replaceUrl = (source, pathname, entry) => {
         
     | 
| 
      
 7 
     | 
    
         
            +
                const basedir = path.dirname(pathname);
         
     | 
| 
      
 8 
     | 
    
         
            +
                const entrydir = path.resolve(CWD, path.dirname(entry));
         
     | 
| 
      
 9 
     | 
    
         
            +
                const relativedir = path.relative(entrydir, basedir);
         
     | 
| 
      
 10 
     | 
    
         
            +
                const regExp = /(url\(['"]?)(\.\.?\/[^'")]+['"]?)(\))/g;
         
     | 
| 
      
 11 
     | 
    
         
            +
                return source.replace(regExp, (substring, ...args) => `url(./${path.join(relativedir, args[1]).replaceAll('\\', '/')})`);
         
     | 
| 
      
 12 
     | 
    
         
            +
            };
         
     | 
| 
      
 13 
     | 
    
         
            +
            export async function buildCss(options) {
         
     | 
| 
      
 14 
     | 
    
         
            +
                const { entry, outfile, minify = false, showSpinner = true } = options;
         
     | 
| 
      
 15 
     | 
    
         
            +
                const spinner = ora(`build css begin`).start();
         
     | 
| 
      
 16 
     | 
    
         
            +
                spinner.text = `building css`;
         
     | 
| 
      
 17 
     | 
    
         
            +
                if (!showSpinner) {
         
     | 
| 
      
 18 
     | 
    
         
            +
                    spinner.stop();
         
     | 
| 
      
 19 
     | 
    
         
            +
                }
         
     | 
| 
      
 20 
     | 
    
         
            +
                await build({
         
     | 
| 
      
 21 
     | 
    
         
            +
                    entryPoints: [entry],
         
     | 
| 
      
 22 
     | 
    
         
            +
                    outfile,
         
     | 
| 
      
 23 
     | 
    
         
            +
                    minify,
         
     | 
| 
      
 24 
     | 
    
         
            +
                    bundle: true,
         
     | 
| 
      
 25 
     | 
    
         
            +
                    logLevel: 'error',
         
     | 
| 
      
 26 
     | 
    
         
            +
                    plugins: [sassPlugin({
         
     | 
| 
      
 27 
     | 
    
         
            +
                            precompile(source, pathname) {
         
     | 
| 
      
 28 
     | 
    
         
            +
                                return replaceUrl(source, pathname, entry);
         
     | 
| 
      
 29 
     | 
    
         
            +
                            }
         
     | 
| 
      
 30 
     | 
    
         
            +
                        })],
         
     | 
| 
      
 31 
     | 
    
         
            +
                    loader: {
         
     | 
| 
      
 32 
     | 
    
         
            +
                        '.ttf': 'dataurl'
         
     | 
| 
      
 33 
     | 
    
         
            +
                    }
         
     | 
| 
      
 34 
     | 
    
         
            +
                });
         
     | 
| 
      
 35 
     | 
    
         
            +
                if (showSpinner) {
         
     | 
| 
      
 36 
     | 
    
         
            +
                    spinner.succeed(`build css success`);
         
     | 
| 
      
 37 
     | 
    
         
            +
                }
         
     | 
| 
      
 38 
     | 
    
         
            +
            }
         
     | 
| 
      
 39 
     | 
    
         
            +
            //# sourceMappingURL=build-css.js.map
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"build-css.js","sourceRoot":"","sources":["../../src/commands/build-css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,MAAM,UAAU,GAAG,CAAC,MAAc,EAAE,QAAgB,EAAE,KAAa,EAAC,EAAE;IACpE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,wCAAwC,CAAC;IACxD,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,GAAG,IAAI,EAAC,EAAE,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AAC1H,CAAC,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAY;IACzC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,EAAE,WAAW,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAEvE,MAAM,OAAO,GAAG,GAAG,CAAC,iBAAiB,CAAC,CAAC,KAAK,EAAE,CAAC;IAC/C,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC;IAE9B,IAAG,CAAC,WAAW,EAAE;QACf,OAAO,CAAC,IAAI,EAAE,CAAC;KAChB;IAGD,MAAM,KAAK,CAAC;QACV,WAAW,EAAE,CAAC,KAAK,CAAC;QACpB,OAAO;QACP,MAAM;QACN,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,CAAC,UAAU,CAAC;gBACnB,UAAU,CAAC,MAAM,EAAE,QAAQ;oBACzB,OAAO,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAC7C,CAAC;aACF,CAAC,CAAC;QACH,MAAM,EAAE;YACN,MAAM,EAAE,SAAS;SAClB;KACF,CAAC,CAAC;IAEH,IAAG,WAAW,EAAE;QACd,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;KACtC;AACH,CAAC"}
         
     | 
| 
         @@ -0,0 +1,26 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import ora from 'ora';
         
     | 
| 
      
 2 
     | 
    
         
            +
            import { buildCommon } from "./build.js";
         
     | 
| 
      
 3 
     | 
    
         
            +
            import { generateTypes } from "../plugins/dts.js";
         
     | 
| 
      
 4 
     | 
    
         
            +
            // import { buildCss } from './build-css.js';
         
     | 
| 
      
 5 
     | 
    
         
            +
            import { createPackageJson } from '../plugins/create-package-json.js';
         
     | 
| 
      
 6 
     | 
    
         
            +
            export async function buildLib(options) {
         
     | 
| 
      
 7 
     | 
    
         
            +
                const { dts = true, emitPackage } = options;
         
     | 
| 
      
 8 
     | 
    
         
            +
                const config = {
         
     | 
| 
      
 9 
     | 
    
         
            +
                    publicDir: '',
         
     | 
| 
      
 10 
     | 
    
         
            +
                    plugins: [
         
     | 
| 
      
 11 
     | 
    
         
            +
                        dts && generateTypes("./components", "./package/types"),
         
     | 
| 
      
 12 
     | 
    
         
            +
                        emitPackage && createPackageJson()
         
     | 
| 
      
 13 
     | 
    
         
            +
                    ]
         
     | 
| 
      
 14 
     | 
    
         
            +
                };
         
     | 
| 
      
 15 
     | 
    
         
            +
                const spinner = ora(`build lib begin`).start();
         
     | 
| 
      
 16 
     | 
    
         
            +
                spinner.text = `building lib`;
         
     | 
| 
      
 17 
     | 
    
         
            +
                await buildCommon({ ...options, config, type: 'lib' });
         
     | 
| 
      
 18 
     | 
    
         
            +
                // const { css } = libConfig.build;
         
     | 
| 
      
 19 
     | 
    
         
            +
                // if (existsSync(css.entry)) {
         
     | 
| 
      
 20 
     | 
    
         
            +
                //   spinner.text = `building css`;
         
     | 
| 
      
 21 
     | 
    
         
            +
                //   await buildCss({ entry: css.entry, outfile: css.outfile });
         
     | 
| 
      
 22 
     | 
    
         
            +
                // }
         
     | 
| 
      
 23 
     | 
    
         
            +
                spinner.succeed(`build lib success`);
         
     | 
| 
      
 24 
     | 
    
         
            +
            }
         
     | 
| 
      
 25 
     | 
    
         
            +
            ;
         
     | 
| 
      
 26 
     | 
    
         
            +
            //# sourceMappingURL=build-lib.js.map
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"build-lib.js","sourceRoot":"","sources":["../../src/commands/build-lib.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,WAAW,EAAsB,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,6CAA6C;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAQtE,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAwB;IAErD,MAAM,EAAE,GAAG,GAAG,IAAI,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAC5C,MAAM,MAAM,GAAG;QACb,SAAS,EAAE,EAAE;QACb,OAAO,EAAE;YACP,GAAG,IAAI,aAAa,CAAC,cAAc,EAAE,iBAAiB,CAAC;YACvD,WAAW,IAAI,iBAAiB,EAAE;SACnC;KACF,CAAC;IACF,MAAM,OAAO,GAAG,GAAG,CAAC,iBAAiB,CAAC,CAAC,KAAK,EAAE,CAAC;IAE/C,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC;IAE9B,MAAM,WAAW,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAEvD,mCAAmC;IAEnC,+BAA+B;IAC/B,mCAAmC;IACnC,gEAAgE;IAChE,IAAI;IAEJ,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;AACvC,CAAC;AAAA,CAAC"}
         
     | 
| 
         @@ -0,0 +1,16 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import { build, mergeConfig, loadConfigFromFile } from 'vite';
         
     | 
| 
      
 2 
     | 
    
         
            +
            import { getViteConfig } from '../common/get-vite-config.js';
         
     | 
| 
      
 3 
     | 
    
         
            +
            export async function buildCommon(options, loadFile = true) {
         
     | 
| 
      
 4 
     | 
    
         
            +
                const { configFile, viteConfigFile, config = {}, type } = options;
         
     | 
| 
      
 5 
     | 
    
         
            +
                if (!loadFile) {
         
     | 
| 
      
 6 
     | 
    
         
            +
                    await build(config);
         
     | 
| 
      
 7 
     | 
    
         
            +
                    return config;
         
     | 
| 
      
 8 
     | 
    
         
            +
                }
         
     | 
| 
      
 9 
     | 
    
         
            +
                const viteConfig = await loadConfigFromFile({ command: 'build', mode: 'production' }, viteConfigFile);
         
     | 
| 
      
 10 
     | 
    
         
            +
                const defaultConfig = await getViteConfig(type, configFile);
         
     | 
| 
      
 11 
     | 
    
         
            +
                const libConfig = mergeConfig(mergeConfig(defaultConfig, viteConfigFile && viteConfig?.config ? viteConfig.config : {}), config);
         
     | 
| 
      
 12 
     | 
    
         
            +
                await build(libConfig);
         
     | 
| 
      
 13 
     | 
    
         
            +
                return libConfig;
         
     | 
| 
      
 14 
     | 
    
         
            +
            }
         
     | 
| 
      
 15 
     | 
    
         
            +
            ;
         
     | 
| 
      
 16 
     | 
    
         
            +
            //# sourceMappingURL=build.js.map
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAc,MAAM,MAAM,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAS7D,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAA2B,EAAE,QAAQ,GAAG,IAAI;IAC5E,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAElE,IAAG,CAAC,QAAQ,EAAE;QACZ,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;QACpB,OAAO,MAAM,CAAC;KACf;IAED,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,EAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAC,EAAE,cAAc,CAAC,CAAC;IAEpG,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAE5D,MAAM,SAAS,GAAE,WAAW,CAAC,WAAW,CAAC,aAAa,EAAE,cAAc,IAAI,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IAEhI,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC;IAEvB,OAAO,SAAS,CAAC;AACnB,CAAC;AAAA,CAAC"}
         
     | 
| 
         @@ -0,0 +1,55 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import { generateApp } from "../common/generate-app.js";
         
     | 
| 
      
 2 
     | 
    
         
            +
            import inquirer from "inquirer";
         
     | 
| 
      
 3 
     | 
    
         
            +
            const prompt = inquirer.createPromptModule();
         
     | 
| 
      
 4 
     | 
    
         
            +
            const questions = [
         
     | 
| 
      
 5 
     | 
    
         
            +
                {
         
     | 
| 
      
 6 
     | 
    
         
            +
                    type: "input",
         
     | 
| 
      
 7 
     | 
    
         
            +
                    name: "name",
         
     | 
| 
      
 8 
     | 
    
         
            +
                    message: "What is your project name?",
         
     | 
| 
      
 9 
     | 
    
         
            +
                    default: "my-project",
         
     | 
| 
      
 10 
     | 
    
         
            +
                },
         
     | 
| 
      
 11 
     | 
    
         
            +
                {
         
     | 
| 
      
 12 
     | 
    
         
            +
                    type: "list",
         
     | 
| 
      
 13 
     | 
    
         
            +
                    name: "type",
         
     | 
| 
      
 14 
     | 
    
         
            +
                    message: "What type of project is this?",
         
     | 
| 
      
 15 
     | 
    
         
            +
                    choices: ["app", "lib"],
         
     | 
| 
      
 16 
     | 
    
         
            +
                },
         
     | 
| 
      
 17 
     | 
    
         
            +
                {
         
     | 
| 
      
 18 
     | 
    
         
            +
                    type: "list",
         
     | 
| 
      
 19 
     | 
    
         
            +
                    name: "platform",
         
     | 
| 
      
 20 
     | 
    
         
            +
                    message: "What platform of project is this?",
         
     | 
| 
      
 21 
     | 
    
         
            +
                    choices: ["web", "mobile"],
         
     | 
| 
      
 22 
     | 
    
         
            +
                    when: (response) => {
         
     | 
| 
      
 23 
     | 
    
         
            +
                        const { type } = response;
         
     | 
| 
      
 24 
     | 
    
         
            +
                        return type === 'app';
         
     | 
| 
      
 25 
     | 
    
         
            +
                    }
         
     | 
| 
      
 26 
     | 
    
         
            +
                },
         
     | 
| 
      
 27 
     | 
    
         
            +
                {
         
     | 
| 
      
 28 
     | 
    
         
            +
                    type: "checkbox",
         
     | 
| 
      
 29 
     | 
    
         
            +
                    name: "formats",
         
     | 
| 
      
 30 
     | 
    
         
            +
                    message: "What output format of project is this?",
         
     | 
| 
      
 31 
     | 
    
         
            +
                    choices: ["es", "umd", "systemjs"],
         
     | 
| 
      
 32 
     | 
    
         
            +
                    default: ["es", "umd"],
         
     | 
| 
      
 33 
     | 
    
         
            +
                    when: (response) => {
         
     | 
| 
      
 34 
     | 
    
         
            +
                        const { type } = response;
         
     | 
| 
      
 35 
     | 
    
         
            +
                        return type === 'lib';
         
     | 
| 
      
 36 
     | 
    
         
            +
                    }
         
     | 
| 
      
 37 
     | 
    
         
            +
                },
         
     | 
| 
      
 38 
     | 
    
         
            +
                {
         
     | 
| 
      
 39 
     | 
    
         
            +
                    type: "list",
         
     | 
| 
      
 40 
     | 
    
         
            +
                    name: "format",
         
     | 
| 
      
 41 
     | 
    
         
            +
                    message: "What output format of project is this?",
         
     | 
| 
      
 42 
     | 
    
         
            +
                    choices: ["es", "umd", "systemjs"],
         
     | 
| 
      
 43 
     | 
    
         
            +
                    default: ["es"],
         
     | 
| 
      
 44 
     | 
    
         
            +
                    when: (response) => {
         
     | 
| 
      
 45 
     | 
    
         
            +
                        const { type } = response;
         
     | 
| 
      
 46 
     | 
    
         
            +
                        return type === 'app';
         
     | 
| 
      
 47 
     | 
    
         
            +
                    }
         
     | 
| 
      
 48 
     | 
    
         
            +
                }
         
     | 
| 
      
 49 
     | 
    
         
            +
            ];
         
     | 
| 
      
 50 
     | 
    
         
            +
            export async function createApp() {
         
     | 
| 
      
 51 
     | 
    
         
            +
                const response = await prompt(questions);
         
     | 
| 
      
 52 
     | 
    
         
            +
                generateApp(response);
         
     | 
| 
      
 53 
     | 
    
         
            +
            }
         
     | 
| 
      
 54 
     | 
    
         
            +
            ;
         
     | 
| 
      
 55 
     | 
    
         
            +
            //# sourceMappingURL=create-app.js.map
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"create-app.js","sourceRoot":"","sources":["../../src/commands/create-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,MAAM,MAAM,GAAG,QAAQ,CAAC,kBAAkB,EAAE,CAAC;AAE7C,MAAM,SAAS,GAAG;IAChB;QACE,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,4BAA4B;QACrC,OAAO,EAAE,YAAY;KACtB;IACD;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,+BAA+B;QACxC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;KACxB;IACD;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,mCAAmC;QAC5C,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;QAC1B,IAAI,EAAE,CAAC,QAAa,EAAE,EAAE;YACtB,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;YAC1B,OAAO,IAAI,KAAK,KAAK,CAAC;QACxB,CAAC;KACF;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,wCAAwC;QACjD,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC;QAClC,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;QACtB,IAAI,EAAE,CAAC,QAAa,EAAE,EAAE;YACtB,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;YAC1B,OAAO,IAAI,KAAK,KAAK,CAAC;QACxB,CAAC;KACF;IACD;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,wCAAwC;QACjD,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC;QAClC,OAAO,EAAE,CAAC,IAAI,CAAC;QACf,IAAI,EAAE,CAAC,QAAa,EAAE,EAAE;YACtB,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;YAC1B,OAAO,IAAI,KAAK,KAAK,CAAC;QACxB,CAAC;KACF;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IAEzC,WAAW,CAAC,QAAQ,CAAC,CAAC;AACxB,CAAC;AAAA,CAAC"}
         
     | 
| 
         @@ -0,0 +1,19 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import { createServer, mergeConfig } from 'vite';
         
     | 
| 
      
 2 
     | 
    
         
            +
            import { getViteConfig } from '../common/get-vite-config.js';
         
     | 
| 
      
 3 
     | 
    
         
            +
            export const devServe = async (options) => {
         
     | 
| 
      
 4 
     | 
    
         
            +
                const { port = 1337, host = true } = options;
         
     | 
| 
      
 5 
     | 
    
         
            +
                const config = await getViteConfig();
         
     | 
| 
      
 6 
     | 
    
         
            +
                const devConfig = mergeConfig(config, {
         
     | 
| 
      
 7 
     | 
    
         
            +
                    configFile: false,
         
     | 
| 
      
 8 
     | 
    
         
            +
                    mode: 'dev',
         
     | 
| 
      
 9 
     | 
    
         
            +
                    server: {
         
     | 
| 
      
 10 
     | 
    
         
            +
                        port,
         
     | 
| 
      
 11 
     | 
    
         
            +
                        host,
         
     | 
| 
      
 12 
     | 
    
         
            +
                        hmr: true
         
     | 
| 
      
 13 
     | 
    
         
            +
                    }
         
     | 
| 
      
 14 
     | 
    
         
            +
                });
         
     | 
| 
      
 15 
     | 
    
         
            +
                const server = await createServer(devConfig);
         
     | 
| 
      
 16 
     | 
    
         
            +
                await server.listen();
         
     | 
| 
      
 17 
     | 
    
         
            +
                server.printUrls();
         
     | 
| 
      
 18 
     | 
    
         
            +
            };
         
     | 
| 
      
 19 
     | 
    
         
            +
            //# sourceMappingURL=dev-serve.js.map
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"dev-serve.js","sourceRoot":"","sources":["../../src/commands/dev-serve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAO7D,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,OAAqB,EAAE,EAAE;IACtD,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAE7C,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,CAAC;IAErC,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,EAAE;QACpC,UAAU,EAAE,KAAK;QACjB,IAAI,EAAE,KAAK;QACX,MAAM,EAAE;YACN,IAAI;YACJ,IAAI;YACJ,GAAG,EAAE,IAAI;SACV;KACF,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;IAEtB,MAAM,CAAC,SAAS,EAAE,CAAC;AACrB,CAAC,CAAC"}
         
     | 
| 
         @@ -0,0 +1,75 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import { writeFileSync, mkdirSync, existsSync, readFileSync } from 'fs';
         
     | 
| 
      
 2 
     | 
    
         
            +
            import { join, basename, dirname, resolve } from 'path';
         
     | 
| 
      
 3 
     | 
    
         
            +
            import { sync } from 'glob';
         
     | 
| 
      
 4 
     | 
    
         
            +
            import { pathToFileURL } from 'url';
         
     | 
| 
      
 5 
     | 
    
         
            +
            /**
         
     | 
| 
      
 6 
     | 
    
         
            +
             * 抽取国际化资源到JSON文件
         
     | 
| 
      
 7 
     | 
    
         
            +
             */
         
     | 
| 
      
 8 
     | 
    
         
            +
            async function loadConfig(configPath) {
         
     | 
| 
      
 9 
     | 
    
         
            +
                const defaultConfigPath = resolve(process.cwd(), 'farris.i18n.mjs');
         
     | 
| 
      
 10 
     | 
    
         
            +
                const finalPath = configPath || defaultConfigPath;
         
     | 
| 
      
 11 
     | 
    
         
            +
                if (!existsSync(finalPath)) {
         
     | 
| 
      
 12 
     | 
    
         
            +
                    throw new Error(`配置文件不存在: ${finalPath}`);
         
     | 
| 
      
 13 
     | 
    
         
            +
                }
         
     | 
| 
      
 14 
     | 
    
         
            +
                const fileUrl = pathToFileURL(finalPath).href;
         
     | 
| 
      
 15 
     | 
    
         
            +
                const config = (await import(fileUrl)).default;
         
     | 
| 
      
 16 
     | 
    
         
            +
                return config;
         
     | 
| 
      
 17 
     | 
    
         
            +
            }
         
     | 
| 
      
 18 
     | 
    
         
            +
            async function extractByType(type, config, options) {
         
     | 
| 
      
 19 
     | 
    
         
            +
                console.log(`正在提取 ${type} 资源...`);
         
     | 
| 
      
 20 
     | 
    
         
            +
                const outputDir = options.outDir || config.outDir;
         
     | 
| 
      
 21 
     | 
    
         
            +
                const localeMap = {};
         
     | 
| 
      
 22 
     | 
    
         
            +
                // Process each include pattern
         
     | 
| 
      
 23 
     | 
    
         
            +
                for (const pattern of config.include) {
         
     | 
| 
      
 24 
     | 
    
         
            +
                    const localeFiles = sync(pattern, {
         
     | 
| 
      
 25 
     | 
    
         
            +
                        cwd: process.cwd(),
         
     | 
| 
      
 26 
     | 
    
         
            +
                        absolute: true,
         
     | 
| 
      
 27 
     | 
    
         
            +
                        ignore: config.exclude
         
     | 
| 
      
 28 
     | 
    
         
            +
                    });
         
     | 
| 
      
 29 
     | 
    
         
            +
                    // Process each locale file
         
     | 
| 
      
 30 
     | 
    
         
            +
                    localeFiles.forEach(file => {
         
     | 
| 
      
 31 
     | 
    
         
            +
                        const componentName = basename(dirname(dirname(dirname(dirname(file)))));
         
     | 
| 
      
 32 
     | 
    
         
            +
                        const localeName = basename(file, '.json');
         
     | 
| 
      
 33 
     | 
    
         
            +
                        const content = readFileSync(file, 'utf8');
         
     | 
| 
      
 34 
     | 
    
         
            +
                        if (!content) {
         
     | 
| 
      
 35 
     | 
    
         
            +
                            return;
         
     | 
| 
      
 36 
     | 
    
         
            +
                        }
         
     | 
| 
      
 37 
     | 
    
         
            +
                        const resources = JSON.parse(content);
         
     | 
| 
      
 38 
     | 
    
         
            +
                        if (!localeMap[localeName]) {
         
     | 
| 
      
 39 
     | 
    
         
            +
                            localeMap[localeName] = {};
         
     | 
| 
      
 40 
     | 
    
         
            +
                        }
         
     | 
| 
      
 41 
     | 
    
         
            +
                        // Add component translations under component namespace
         
     | 
| 
      
 42 
     | 
    
         
            +
                        Object.assign(localeMap[localeName], resources);
         
     | 
| 
      
 43 
     | 
    
         
            +
                    });
         
     | 
| 
      
 44 
     | 
    
         
            +
                }
         
     | 
| 
      
 45 
     | 
    
         
            +
                // Ensure output directory exists
         
     | 
| 
      
 46 
     | 
    
         
            +
                if (!existsSync(outputDir)) {
         
     | 
| 
      
 47 
     | 
    
         
            +
                    mkdirSync(outputDir, { recursive: true });
         
     | 
| 
      
 48 
     | 
    
         
            +
                }
         
     | 
| 
      
 49 
     | 
    
         
            +
                // Write each locale to a separate file
         
     | 
| 
      
 50 
     | 
    
         
            +
                Object.entries(localeMap).forEach(([locale, translations]) => {
         
     | 
| 
      
 51 
     | 
    
         
            +
                    const outputFile = join(outputDir, `${locale}.json`);
         
     | 
| 
      
 52 
     | 
    
         
            +
                    const content = config.minify
         
     | 
| 
      
 53 
     | 
    
         
            +
                        ? JSON.stringify(translations)
         
     | 
| 
      
 54 
     | 
    
         
            +
                        : JSON.stringify(translations, null, 2);
         
     | 
| 
      
 55 
     | 
    
         
            +
                    writeFileSync(outputFile, content);
         
     | 
| 
      
 56 
     | 
    
         
            +
                });
         
     | 
| 
      
 57 
     | 
    
         
            +
                console.log(`${type} 资源提取完成!`);
         
     | 
| 
      
 58 
     | 
    
         
            +
            }
         
     | 
| 
      
 59 
     | 
    
         
            +
            export async function extractI18n(options = {}) {
         
     | 
| 
      
 60 
     | 
    
         
            +
                console.log('正在抽取国际化资源...');
         
     | 
| 
      
 61 
     | 
    
         
            +
                try {
         
     | 
| 
      
 62 
     | 
    
         
            +
                    const config = await loadConfig(options.configFile);
         
     | 
| 
      
 63 
     | 
    
         
            +
                    // 否则提取所有配置的类型
         
     | 
| 
      
 64 
     | 
    
         
            +
                    for (const [type, typeConfig] of Object.entries(config.extract)) {
         
     | 
| 
      
 65 
     | 
    
         
            +
                        if (typeConfig) {
         
     | 
| 
      
 66 
     | 
    
         
            +
                            await extractByType(type, typeConfig, options);
         
     | 
| 
      
 67 
     | 
    
         
            +
                        }
         
     | 
| 
      
 68 
     | 
    
         
            +
                    }
         
     | 
| 
      
 69 
     | 
    
         
            +
                }
         
     | 
| 
      
 70 
     | 
    
         
            +
                catch (error) {
         
     | 
| 
      
 71 
     | 
    
         
            +
                    console.error(error);
         
     | 
| 
      
 72 
     | 
    
         
            +
                    process.exit(1);
         
     | 
| 
      
 73 
     | 
    
         
            +
                }
         
     | 
| 
      
 74 
     | 
    
         
            +
            }
         
     | 
| 
      
 75 
     | 
    
         
            +
            //# sourceMappingURL=extract-i18n.js.map
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"extract-i18n.js","sourceRoot":"","sources":["../../src/commands/extract-i18n.ts"],"names":[],"mappings":"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"}
         
     | 
| 
         @@ -0,0 +1,17 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import { preview, mergeConfig } from 'vite';
         
     | 
| 
      
 2 
     | 
    
         
            +
            import { getViteConfig } from '../common/get-vite-config.js';
         
     | 
| 
      
 3 
     | 
    
         
            +
            export const previewServe = async (options) => {
         
     | 
| 
      
 4 
     | 
    
         
            +
                const { port = 4137, host = true } = options;
         
     | 
| 
      
 5 
     | 
    
         
            +
                const config = await getViteConfig();
         
     | 
| 
      
 6 
     | 
    
         
            +
                const previewConfig = mergeConfig({
         
     | 
| 
      
 7 
     | 
    
         
            +
                    configFile: false,
         
     | 
| 
      
 8 
     | 
    
         
            +
                    preview: {
         
     | 
| 
      
 9 
     | 
    
         
            +
                        port,
         
     | 
| 
      
 10 
     | 
    
         
            +
                        host,
         
     | 
| 
      
 11 
     | 
    
         
            +
                        open: true
         
     | 
| 
      
 12 
     | 
    
         
            +
                    }
         
     | 
| 
      
 13 
     | 
    
         
            +
                }, config);
         
     | 
| 
      
 14 
     | 
    
         
            +
                const server = await preview(previewConfig);
         
     | 
| 
      
 15 
     | 
    
         
            +
                server.printUrls();
         
     | 
| 
      
 16 
     | 
    
         
            +
            };
         
     | 
| 
      
 17 
     | 
    
         
            +
            //# sourceMappingURL=preview-serve.js.map
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"preview-serve.js","sourceRoot":"","sources":["../../src/commands/preview-serve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAO7D,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,OAAuB,EAAE,EAAE;IAC5D,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAE7C,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,CAAC;IACrC,MAAM,aAAa,GAAG,WAAW,CAAC;QAChC,UAAU,EAAE,KAAK;QACjB,OAAO,EAAE;YACP,IAAI;YACJ,IAAI;YACJ,IAAI,EAAE,IAAI;SACX;KACF,EAAE,MAAM,CAAC,CAAC;IAEX,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;IAE5C,MAAM,CAAC,SAAS,EAAE,CAAC;AACrB,CAAC,CAAC"}
         
     | 
| 
         @@ -0,0 +1,23 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import { existsSync } from 'node:fs';
         
     | 
| 
      
 2 
     | 
    
         
            +
            import { fileURLToPath } from 'node:url';
         
     | 
| 
      
 3 
     | 
    
         
            +
            import { join, dirname } from 'node:path';
         
     | 
| 
      
 4 
     | 
    
         
            +
            function findRootDir(dir) {
         
     | 
| 
      
 5 
     | 
    
         
            +
                if (existsSync(join(dir, 'farris.config.js'))) {
         
     | 
| 
      
 6 
     | 
    
         
            +
                    return dir;
         
     | 
| 
      
 7 
     | 
    
         
            +
                }
         
     | 
| 
      
 8 
     | 
    
         
            +
                const parentDir = dirname(dir);
         
     | 
| 
      
 9 
     | 
    
         
            +
                if (dir === parentDir) {
         
     | 
| 
      
 10 
     | 
    
         
            +
                    return dir;
         
     | 
| 
      
 11 
     | 
    
         
            +
                }
         
     | 
| 
      
 12 
     | 
    
         
            +
                return findRootDir(parentDir);
         
     | 
| 
      
 13 
     | 
    
         
            +
            }
         
     | 
| 
      
 14 
     | 
    
         
            +
            export const getDirname = (url) => fileURLToPath(new URL('.', url));
         
     | 
| 
      
 15 
     | 
    
         
            +
            // Root paths
         
     | 
| 
      
 16 
     | 
    
         
            +
            export const CWD = process.cwd();
         
     | 
| 
      
 17 
     | 
    
         
            +
            export const ROOT = findRootDir(CWD);
         
     | 
| 
      
 18 
     | 
    
         
            +
            export const FAARIS_CONFIG_FILE = join(CWD, 'farris.config.mjs');
         
     | 
| 
      
 19 
     | 
    
         
            +
            export const getPackageName = () => {
         
     | 
| 
      
 20 
     | 
    
         
            +
                const { PackageName = '@components' } = process.env;
         
     | 
| 
      
 21 
     | 
    
         
            +
                return PackageName;
         
     | 
| 
      
 22 
     | 
    
         
            +
            };
         
     | 
| 
      
 23 
     | 
    
         
            +
            //# sourceMappingURL=constant.js.map
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"constant.js","sourceRoot":"","sources":["../../src/common/constant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1C,SAAS,WAAW,CAAC,GAAW;IAC9B,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,EAAE;QAC7C,OAAO,GAAG,CAAC;KACZ;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,GAAG,KAAK,SAAS,EAAE;QACrB,OAAO,GAAG,CAAC;KACZ;IAED,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC;AAChC,CAAC;AACD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAW,EAAC,EAAE,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAE3E,aAAa;AAEb,MAAM,CAAC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AACjC,MAAM,CAAC,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;AACrC,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;AAEjE,MAAM,CAAC,MAAM,cAAc,GAAG,GAAE,EAAE;IAChC,MAAM,EAAE,WAAW,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IACpD,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC"}
         
     | 
| 
         @@ -0,0 +1,45 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import { resolve } from 'path';
         
     | 
| 
      
 2 
     | 
    
         
            +
            import { createRequire } from "node:module";
         
     | 
| 
      
 3 
     | 
    
         
            +
            import { CWD, getDirname } from './constant.js';
         
     | 
| 
      
 4 
     | 
    
         
            +
            import { getVersion } from "./get-version.js";
         
     | 
| 
      
 5 
     | 
    
         
            +
            const require = createRequire(import.meta.url);
         
     | 
| 
      
 6 
     | 
    
         
            +
            const { copySync, readFileSync, writeFileSync } = require("fs-extra");
         
     | 
| 
      
 7 
     | 
    
         
            +
            const Array2String = (arr) => {
         
     | 
| 
      
 8 
     | 
    
         
            +
                return `[${arr.reduce((acc, cur, index) => {
         
     | 
| 
      
 9 
     | 
    
         
            +
                    acc = index === 1 ? "'" + acc + "'" : acc;
         
     | 
| 
      
 10 
     | 
    
         
            +
                    acc += `,'${cur}'`;
         
     | 
| 
      
 11 
     | 
    
         
            +
                    return acc;
         
     | 
| 
      
 12 
     | 
    
         
            +
                })}]`;
         
     | 
| 
      
 13 
     | 
    
         
            +
            };
         
     | 
| 
      
 14 
     | 
    
         
            +
            const copyTemplate = (template, target) => {
         
     | 
| 
      
 15 
     | 
    
         
            +
                const templatePath = resolve(getDirname(import.meta.url), '../../templates', template);
         
     | 
| 
      
 16 
     | 
    
         
            +
                const targetPath = resolve(CWD, target);
         
     | 
| 
      
 17 
     | 
    
         
            +
                console.log(templatePath, targetPath);
         
     | 
| 
      
 18 
     | 
    
         
            +
                copySync(templatePath, targetPath);
         
     | 
| 
      
 19 
     | 
    
         
            +
            };
         
     | 
| 
      
 20 
     | 
    
         
            +
            const replaceContent = (path, args) => {
         
     | 
| 
      
 21 
     | 
    
         
            +
                let content = readFileSync(path, 'utf-8');
         
     | 
| 
      
 22 
     | 
    
         
            +
                Object.keys(args).forEach((key) => {
         
     | 
| 
      
 23 
     | 
    
         
            +
                    const regexp = new RegExp(`<%= ${key} %>`, 'g');
         
     | 
| 
      
 24 
     | 
    
         
            +
                    const value = Array.isArray(args[key]) ? Array2String(args[key]) : args[key];
         
     | 
| 
      
 25 
     | 
    
         
            +
                    content = content.replace(regexp, value);
         
     | 
| 
      
 26 
     | 
    
         
            +
                });
         
     | 
| 
      
 27 
     | 
    
         
            +
                writeFileSync(path, content);
         
     | 
| 
      
 28 
     | 
    
         
            +
            };
         
     | 
| 
      
 29 
     | 
    
         
            +
            export const generateApp = (options) => {
         
     | 
| 
      
 30 
     | 
    
         
            +
                const { name, type, formats, format, platform } = options;
         
     | 
| 
      
 31 
     | 
    
         
            +
                const template = type === 'lib' ? 'lib' : platform;
         
     | 
| 
      
 32 
     | 
    
         
            +
                copyTemplate(template, name);
         
     | 
| 
      
 33 
     | 
    
         
            +
                const replaceFiles = [
         
     | 
| 
      
 34 
     | 
    
         
            +
                    'package.json',
         
     | 
| 
      
 35 
     | 
    
         
            +
                    'farris.config.mjs',
         
     | 
| 
      
 36 
     | 
    
         
            +
                    'index.html'
         
     | 
| 
      
 37 
     | 
    
         
            +
                ];
         
     | 
| 
      
 38 
     | 
    
         
            +
                const cliVersion = getVersion();
         
     | 
| 
      
 39 
     | 
    
         
            +
                replaceFiles.forEach(replaceFile => {
         
     | 
| 
      
 40 
     | 
    
         
            +
                    replaceContent(resolve(CWD, name, replaceFile), { name, formats, format, platform, cliVersion });
         
     | 
| 
      
 41 
     | 
    
         
            +
                });
         
     | 
| 
      
 42 
     | 
    
         
            +
                console.log(`cd ${name}`);
         
     | 
| 
      
 43 
     | 
    
         
            +
                console.log(`npm install or yarn`);
         
     | 
| 
      
 44 
     | 
    
         
            +
            };
         
     | 
| 
      
 45 
     | 
    
         
            +
            //# sourceMappingURL=generate-app.js.map
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"generate-app.js","sourceRoot":"","sources":["../../src/common/generate-app.ts"],"names":[],"mappings":"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"}
         
     | 
| 
         @@ -0,0 +1,10 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import { readFileSync } from "node:fs";
         
     | 
| 
      
 2 
     | 
    
         
            +
            import { resolve } from 'node:path';
         
     | 
| 
      
 3 
     | 
    
         
            +
            import { CWD } from "../common/constant.js";
         
     | 
| 
      
 4 
     | 
    
         
            +
            export const getDependencies = () => {
         
     | 
| 
      
 5 
     | 
    
         
            +
                const pkg = readFileSync(resolve(CWD, 'package.json'), 'utf-8');
         
     | 
| 
      
 6 
     | 
    
         
            +
                const packageJson = JSON.parse(pkg);
         
     | 
| 
      
 7 
     | 
    
         
            +
                const { dependencies, peerDependencies } = packageJson;
         
     | 
| 
      
 8 
     | 
    
         
            +
                return [...Object.keys(dependencies || {}), ...Object.keys(peerDependencies || {})];
         
     | 
| 
      
 9 
     | 
    
         
            +
            };
         
     | 
| 
      
 10 
     | 
    
         
            +
            //# sourceMappingURL=get-dependencies.js.map
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"get-dependencies.js","sourceRoot":"","sources":["../../src/common/get-dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE;IAClC,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC;IAChE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,WAAW,CAAC;IAEvD,OAAO,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,CAAC;AACtF,CAAC,CAAC"}
         
     | 
| 
         @@ -0,0 +1,12 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import { pathToFileURL } from 'node:url';
         
     | 
| 
      
 2 
     | 
    
         
            +
            import { FAARIS_CONFIG_FILE } from './constant.js';
         
     | 
| 
      
 3 
     | 
    
         
            +
            async function getFarrisConfigAsync(configFile = FAARIS_CONFIG_FILE) {
         
     | 
| 
      
 4 
     | 
    
         
            +
                try {
         
     | 
| 
      
 5 
     | 
    
         
            +
                    return (await import(pathToFileURL(configFile).href)).default;
         
     | 
| 
      
 6 
     | 
    
         
            +
                }
         
     | 
| 
      
 7 
     | 
    
         
            +
                catch (err) {
         
     | 
| 
      
 8 
     | 
    
         
            +
                    return {};
         
     | 
| 
      
 9 
     | 
    
         
            +
                }
         
     | 
| 
      
 10 
     | 
    
         
            +
            }
         
     | 
| 
      
 11 
     | 
    
         
            +
            export { getFarrisConfigAsync };
         
     | 
| 
      
 12 
     | 
    
         
            +
            //# sourceMappingURL=get-farris-config.js.map
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"get-farris-config.js","sourceRoot":"","sources":["../../src/common/get-farris-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,KAAK,UAAU,oBAAoB,CAAC,UAAU,GAAE,kBAAkB;IAChE,IAAI;QACF,OAAO,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;KAC/D;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,EAAE,CAAC;KACX;AACH,CAAC;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"get-version.js","sourceRoot":"","sources":["../../src/common/get-version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,MAAM,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAElD,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE;IAC7B,OAAO,WAAW,CAAC,OAAO,CAAC;AAC7B,CAAC,CAAC"}
         
     | 
| 
         @@ -0,0 +1,51 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import { mergeConfig } from 'vite';
         
     | 
| 
      
 2 
     | 
    
         
            +
            import { getFarrisConfigAsync } from './get-farris-config.js';
         
     | 
| 
      
 3 
     | 
    
         
            +
            import { getDependencies } from '../common/get-dependencies.js';
         
     | 
| 
      
 4 
     | 
    
         
            +
            import cssInjectedByJsPlugin from 'vite-plugin-css-injected-by-js';
         
     | 
| 
      
 5 
     | 
    
         
            +
            const formatFarrisConfig = (farrisConfig, type) => {
         
     | 
| 
      
 6 
     | 
    
         
            +
                const { lib, format, target, minify = true, outDir, externals = { include: [], exclude: [] }, externalDependencies, plugins = [], alias, server, cssInjected, packageName = '@farris/mobile-ui-vue' } = 
         
     | 
| 
      
 7 
     | 
    
         
            +
                farrisConfig;
         
     | 
| 
      
 8 
     | 
    
         
            +
                externals.include = farrisConfig.externals.include || [];
         
     | 
| 
      
 9 
     | 
    
         
            +
                const dependencies = externalDependencies ? getDependencies() : [];
         
     | 
| 
      
 10 
     | 
    
         
            +
                let external = externals.include ? [...externals.include, ...dependencies] : dependencies;
         
     | 
| 
      
 11 
     | 
    
         
            +
                external = external.filter((item) => !externals.exclude?.includes(item));
         
     | 
| 
      
 12 
     | 
    
         
            +
                format && (process.env.FARRIS_FORMAT = format);
         
     | 
| 
      
 13 
     | 
    
         
            +
                if (cssInjected) {
         
     | 
| 
      
 14 
     | 
    
         
            +
                    plugins.push(cssInjectedByJsPlugin());
         
     | 
| 
      
 15 
     | 
    
         
            +
                }
         
     | 
| 
      
 16 
     | 
    
         
            +
                if (packageName) {
         
     | 
| 
      
 17 
     | 
    
         
            +
                    process.env.PackageName = packageName;
         
     | 
| 
      
 18 
     | 
    
         
            +
                }
         
     | 
| 
      
 19 
     | 
    
         
            +
                const viteConfig = {
         
     | 
| 
      
 20 
     | 
    
         
            +
                    build: {
         
     | 
| 
      
 21 
     | 
    
         
            +
                        target,
         
     | 
| 
      
 22 
     | 
    
         
            +
                        minify,
         
     | 
| 
      
 23 
     | 
    
         
            +
                        lib: type === 'lib' ? lib : undefined,
         
     | 
| 
      
 24 
     | 
    
         
            +
                        rollupOptions: {
         
     | 
| 
      
 25 
     | 
    
         
            +
                            output: {
         
     | 
| 
      
 26 
     | 
    
         
            +
                                format
         
     | 
| 
      
 27 
     | 
    
         
            +
                            },
         
     | 
| 
      
 28 
     | 
    
         
            +
                            external: externals.filter ? externals.filter(external) : external
         
     | 
| 
      
 29 
     | 
    
         
            +
                        },
         
     | 
| 
      
 30 
     | 
    
         
            +
                        outDir
         
     | 
| 
      
 31 
     | 
    
         
            +
                    },
         
     | 
| 
      
 32 
     | 
    
         
            +
                    server,
         
     | 
| 
      
 33 
     | 
    
         
            +
                    plugins,
         
     | 
| 
      
 34 
     | 
    
         
            +
                    resolve: {
         
     | 
| 
      
 35 
     | 
    
         
            +
                        alias
         
     | 
| 
      
 36 
     | 
    
         
            +
                    }
         
     | 
| 
      
 37 
     | 
    
         
            +
                };
         
     | 
| 
      
 38 
     | 
    
         
            +
                return viteConfig;
         
     | 
| 
      
 39 
     | 
    
         
            +
            };
         
     | 
| 
      
 40 
     | 
    
         
            +
            const formatViteConfig = async (type, configFile) => {
         
     | 
| 
      
 41 
     | 
    
         
            +
                const { viteConfig = {}, ...farrisConfig } = await getFarrisConfigAsync(configFile);
         
     | 
| 
      
 42 
     | 
    
         
            +
                const customViteConfig = formatFarrisConfig(farrisConfig, type);
         
     | 
| 
      
 43 
     | 
    
         
            +
                return mergeConfig(customViteConfig, viteConfig);
         
     | 
| 
      
 44 
     | 
    
         
            +
            };
         
     | 
| 
      
 45 
     | 
    
         
            +
            const getViteConfig = async (type = 'app', configFile) => {
         
     | 
| 
      
 46 
     | 
    
         
            +
                const viteConfig = await formatViteConfig(type, configFile);
         
     | 
| 
      
 47 
     | 
    
         
            +
                const { default: defaultViteConfig } = await import(`../config/vite-${type}.js`);
         
     | 
| 
      
 48 
     | 
    
         
            +
                return mergeConfig(defaultViteConfig, viteConfig);
         
     | 
| 
      
 49 
     | 
    
         
            +
            };
         
     | 
| 
      
 50 
     | 
    
         
            +
            export { getViteConfig };
         
     | 
| 
      
 51 
     | 
    
         
            +
            //# sourceMappingURL=get-vite-config.js.map
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"get-vite-config.js","sourceRoot":"","sources":["../../src/common/get-vite-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8C,WAAW,EAAiB,MAAM,MAAM,CAAC;AAC9F,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,qBAAqB,MAAM,gCAAgC,CAAC;AAiBnE,MAAM,kBAAkB,GAAG,CAAC,YAA0B,EAAE,IAAY,EAAE,EAAE;IACtE,MAAM,EACJ,GAAG,EACH,MAAM,EACN,MAAM,EACN,MAAM,GAAG,IAAI,EACb,MAAM,EACN,SAAS,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EACxC,oBAAoB,EACpB,OAAO,GAAG,EAAE,EACZ,KAAK,EACL,MAAM,EACN,WAAW,EACX,WAAW,GAAG,uBAAuB,EACtC,GAAG,YAAY,CAAC;IAEjB,MAAM,YAAY,GAAG,oBAAoB,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAEnE,IAAI,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;IAE1F,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAEzE,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,MAAM,CAAC,CAAC;IAE/C,IAAG,WAAW,EAAC;QACb,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;KACvC;IACD,IAAG,WAAW,EAAE;QACd,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC;KACvC;IAED,MAAM,UAAU,GAAG;QACjB,KAAK,EAAE;YACL,MAAM;YACN,MAAM;YACN,GAAG,EAAE,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;YACrC,aAAa,EAAE;gBACb,MAAM,EAAE;oBACN,MAAM;iBACP;gBACD,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ;aACnE;YACD,MAAM;SACP;QACD,MAAM;QACN,OAAO;QACP,OAAO,EAAE;YACP,KAAK;SACN;KACF,CAAC;IACF,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,KAAK,EAAE,IAAY,EAAE,UAAmB,EAAE,EAAE;IACnE,MAAM,EAAE,UAAU,GAAG,EAAE,EAAE,GAAG,YAAY,EAAE,GAAG,MAAM,oBAAoB,CAAC,UAAU,CAAC,CAAC;IACpF,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAEhE,OAAO,WAAW,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,EAAE,UAAmB,EAAE,EAAE;IAChE,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC5D,MAAM,EAAE,OAAO,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,IAAI,KAAK,CAAC,CAAC;IAEjF,OAAO,WAAW,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;AACpD,CAAC,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,CAAC"}
         
     | 
| 
         @@ -0,0 +1,14 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import { mergeConfig } from 'vite';
         
     | 
| 
      
 2 
     | 
    
         
            +
            import { htmlSystemPlugin } from '../plugins/html-system.js';
         
     | 
| 
      
 3 
     | 
    
         
            +
            import CommonConfig from "./vite-common.js";
         
     | 
| 
      
 4 
     | 
    
         
            +
            export default mergeConfig(CommonConfig, {
         
     | 
| 
      
 5 
     | 
    
         
            +
                define: {
         
     | 
| 
      
 6 
     | 
    
         
            +
                    __VUE_OPTIONS_API__: 'true',
         
     | 
| 
      
 7 
     | 
    
         
            +
                    __VUE_PROD_DEVTOOLS__: 'true',
         
     | 
| 
      
 8 
     | 
    
         
            +
                    __VUE_PROD_HYDRATION_MISMATCH_DETAILS__: 'true'
         
     | 
| 
      
 9 
     | 
    
         
            +
                },
         
     | 
| 
      
 10 
     | 
    
         
            +
                plugins: [
         
     | 
| 
      
 11 
     | 
    
         
            +
                    process.env.FARRIS_FORMAT === 'systemjs' && htmlSystemPlugin()
         
     | 
| 
      
 12 
     | 
    
         
            +
                ]
         
     | 
| 
      
 13 
     | 
    
         
            +
            });
         
     | 
| 
      
 14 
     | 
    
         
            +
            //# sourceMappingURL=vite-app.js.map
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"vite-app.js","sourceRoot":"","sources":["../../src/config/vite-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAE5C,eAAe,WAAW,CAAC,YAAY,EAAE;IACvC,MAAM,EAAE;QACN,mBAAmB,EAAE,MAAM;QAC3B,qBAAqB,EAAE,MAAM;QAC7B,uCAAuC,EAAE,MAAM;KAChD;IACD,OAAO,EAAE;QACP,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,UAAU,IAAI,gBAAgB,EAAE;KAC/D;CACF,CAAC,CAAC"}
         
     | 
| 
         @@ -0,0 +1,21 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import vue from '@vitejs/plugin-vue';
         
     | 
| 
      
 2 
     | 
    
         
            +
            import vueJsx from '@vitejs/plugin-vue-jsx';
         
     | 
| 
      
 3 
     | 
    
         
            +
            import { CWD } from '../common/constant.js';
         
     | 
| 
      
 4 
     | 
    
         
            +
            export default {
         
     | 
| 
      
 5 
     | 
    
         
            +
                root: CWD,
         
     | 
| 
      
 6 
     | 
    
         
            +
                base: './',
         
     | 
| 
      
 7 
     | 
    
         
            +
                plugins: [
         
     | 
| 
      
 8 
     | 
    
         
            +
                    vue(),
         
     | 
| 
      
 9 
     | 
    
         
            +
                    vueJsx()
         
     | 
| 
      
 10 
     | 
    
         
            +
                ],
         
     | 
| 
      
 11 
     | 
    
         
            +
                configFile: false,
         
     | 
| 
      
 12 
     | 
    
         
            +
                css: {
         
     | 
| 
      
 13 
     | 
    
         
            +
                    preprocessorOptions: {
         
     | 
| 
      
 14 
     | 
    
         
            +
                        scss: {
         
     | 
| 
      
 15 
     | 
    
         
            +
                            api: 'modern-compiler',
         
     | 
| 
      
 16 
     | 
    
         
            +
                            silenceDeprecations: ['global-builtin', 'legacy-js-api']
         
     | 
| 
      
 17 
     | 
    
         
            +
                        },
         
     | 
| 
      
 18 
     | 
    
         
            +
                    }
         
     | 
| 
      
 19 
     | 
    
         
            +
                }
         
     | 
| 
      
 20 
     | 
    
         
            +
            };
         
     | 
| 
      
 21 
     | 
    
         
            +
            //# sourceMappingURL=vite-common.js.map
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"vite-common.js","sourceRoot":"","sources":["../../src/config/vite-common.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,oBAAoB,CAAC;AACrC,OAAO,MAAM,MAAM,wBAAwB,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,eAAe;IACb,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,IAAI;IACV,OAAO,EAAE;QACP,GAAG,EAAE;QACL,MAAM,EAAE;KACT;IACD,UAAU,EAAE,KAAK;IACjB,GAAG,EAAE;QACH,mBAAmB,EAAE;YACnB,IAAI,EAAE;gBACJ,GAAG,EAAE,iBAAiB;gBACtB,mBAAmB,EAAE,CAAC,gBAAgB,EAAE,eAAe,CAAC;aACzD;SACF;KACF;CACF,CAAC"}
         
     | 
| 
         @@ -0,0 +1,31 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import { mergeConfig } from 'vite';
         
     | 
| 
      
 2 
     | 
    
         
            +
            import CommonConfig from "./vite-common.js";
         
     | 
| 
      
 3 
     | 
    
         
            +
            import { replace } from "../plugins/replace.js";
         
     | 
| 
      
 4 
     | 
    
         
            +
            import { createComponentStyle } from "../plugins/create-component-style.js";
         
     | 
| 
      
 5 
     | 
    
         
            +
            import { getPackageName } from '../common/constant.js';
         
     | 
| 
      
 6 
     | 
    
         
            +
            export default mergeConfig(CommonConfig, {
         
     | 
| 
      
 7 
     | 
    
         
            +
                logLevel: 'silent',
         
     | 
| 
      
 8 
     | 
    
         
            +
                plugins: [createComponentStyle(), replace((format, args) => `../${args[0]}/index.${format}.js`)],
         
     | 
| 
      
 9 
     | 
    
         
            +
                build: {
         
     | 
| 
      
 10 
     | 
    
         
            +
                    lib: {
         
     | 
| 
      
 11 
     | 
    
         
            +
                        fileName: "index",
         
     | 
| 
      
 12 
     | 
    
         
            +
                        formats: ["esm"],
         
     | 
| 
      
 13 
     | 
    
         
            +
                    },
         
     | 
| 
      
 14 
     | 
    
         
            +
                    rollupOptions: {
         
     | 
| 
      
 15 
     | 
    
         
            +
                        output: {
         
     | 
| 
      
 16 
     | 
    
         
            +
                            exports: "named",
         
     | 
| 
      
 17 
     | 
    
         
            +
                            globals: (id) => {
         
     | 
| 
      
 18 
     | 
    
         
            +
                                if (id.includes(getPackageName())) {
         
     | 
| 
      
 19 
     | 
    
         
            +
                                    const name = id.split('/').pop() || '';
         
     | 
| 
      
 20 
     | 
    
         
            +
                                    return name.slice(0, 1).toUpperCase() + name.slice(1);
         
     | 
| 
      
 21 
     | 
    
         
            +
                                }
         
     | 
| 
      
 22 
     | 
    
         
            +
                                const map = {
         
     | 
| 
      
 23 
     | 
    
         
            +
                                    vue: "Vue"
         
     | 
| 
      
 24 
     | 
    
         
            +
                                };
         
     | 
| 
      
 25 
     | 
    
         
            +
                                return map[id];
         
     | 
| 
      
 26 
     | 
    
         
            +
                            }
         
     | 
| 
      
 27 
     | 
    
         
            +
                        }
         
     | 
| 
      
 28 
     | 
    
         
            +
                    }
         
     | 
| 
      
 29 
     | 
    
         
            +
                }
         
     | 
| 
      
 30 
     | 
    
         
            +
            });
         
     | 
| 
      
 31 
     | 
    
         
            +
            //# sourceMappingURL=vite-component.js.map
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"vite-component.js","sourceRoot":"","sources":["../../src/config/vite-component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,eAAe,WAAW,CAAC,YAAY,EAAE;IACvC,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE,CAAC,oBAAoB,EAAE,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,IAAI,EAAC,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,UAAU,MAAM,KAAK,CAAC,CAAC;IAC/F,KAAK,EAAC;QACJ,GAAG,EAAE;YACH,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,CAAC,KAAK,CAAC;SACjB;QACD,aAAa,EAAE;YACb,MAAM,EAAE;gBACN,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,CAAC,EAAU,EAAC,EAAE;oBACrB,IAAG,EAAE,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,EAAE;wBAChC,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;wBACvC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;qBACtD;oBACD,MAAM,GAAG,GAA2B;wBAClC,GAAG,EAAE,KAAK;qBACX,CAAC;oBACF,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC;gBACjB,CAAC;aACF;SACF;KACF;CACF,CAAC,CAAC"}
         
     |