@farris/cli 2.0.0 → 2.0.2

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.
Files changed (76) hide show
  1. package/bin/index.js +2 -2
  2. package/lib/commands/build-components.js +40 -0
  3. package/lib/commands/build-components.js.map +1 -0
  4. package/lib/commands/build-css.js +39 -0
  5. package/lib/commands/build-css.js.map +1 -0
  6. package/lib/commands/build-lib.js +26 -0
  7. package/lib/commands/build-lib.js.map +1 -0
  8. package/lib/commands/build.js +16 -0
  9. package/lib/commands/build.js.map +1 -0
  10. package/lib/commands/create-app.js +55 -0
  11. package/lib/commands/create-app.js.map +1 -0
  12. package/lib/commands/dev-serve.js +19 -0
  13. package/lib/commands/dev-serve.js.map +1 -0
  14. package/lib/commands/extract-i18n.js +75 -0
  15. package/lib/commands/extract-i18n.js.map +1 -0
  16. package/lib/commands/preview-serve.js +17 -0
  17. package/lib/commands/preview-serve.js.map +1 -0
  18. package/lib/common/constant.js +23 -0
  19. package/lib/common/constant.js.map +1 -0
  20. package/lib/common/generate-app.js +45 -0
  21. package/lib/common/generate-app.js.map +1 -0
  22. package/lib/common/get-dependencies.js +10 -0
  23. package/lib/common/get-dependencies.js.map +1 -0
  24. package/lib/common/get-farris-config.js +12 -0
  25. package/lib/common/get-farris-config.js.map +1 -0
  26. package/lib/common/get-version.js +7 -0
  27. package/lib/common/get-version.js.map +1 -0
  28. package/lib/common/get-vite-config.js +49 -0
  29. package/lib/common/get-vite-config.js.map +1 -0
  30. package/lib/config/vite-app.js +14 -0
  31. package/lib/config/vite-app.js.map +1 -0
  32. package/lib/config/vite-common.js +21 -0
  33. package/lib/config/vite-common.js.map +1 -0
  34. package/lib/config/vite-component.js +31 -0
  35. package/lib/config/vite-component.js.map +1 -0
  36. package/lib/config/vite-lib.js +27 -0
  37. package/lib/config/vite-lib.js.map +1 -0
  38. package/lib/index.js +84 -0
  39. package/lib/index.js.map +1 -0
  40. package/lib/plugins/create-component-style.js +46 -0
  41. package/lib/plugins/create-component-style.js.map +1 -0
  42. package/lib/plugins/create-package-json.js +34 -0
  43. package/lib/plugins/create-package-json.js.map +1 -0
  44. package/lib/plugins/dts.js +9 -0
  45. package/lib/plugins/dts.js.map +1 -0
  46. package/lib/plugins/html-system.js +12 -0
  47. package/lib/plugins/html-system.js.map +1 -0
  48. package/lib/plugins/replace.js +18 -0
  49. package/lib/plugins/replace.js.map +1 -0
  50. package/lib/plugins/systemjs-bundle.js +16 -0
  51. package/lib/plugins/systemjs-bundle.js.map +1 -0
  52. package/package.json +42 -40
  53. package/templates/mobile/.eslintrc.cjs +15 -15
  54. package/templates/mobile/.prettierrc.json +7 -7
  55. package/templates/mobile/farris.config.mjs +24 -24
  56. package/templates/mobile/index.html +12 -12
  57. package/templates/mobile/package.json +28 -28
  58. package/templates/mobile/src/App.vue +80 -80
  59. package/templates/mobile/src/components/TheButton.vue +3 -3
  60. package/templates/mobile/src/main.ts +12 -12
  61. package/templates/mobile/src/router/index.ts +23 -23
  62. package/templates/mobile/src/views/AboutView.vue +15 -15
  63. package/templates/mobile/src/views/HomeView.vue +9 -9
  64. package/templates/mobile/tsconfig.json +17 -17
  65. package/templates/web/.eslintrc.cjs +15 -15
  66. package/templates/web/.prettierrc.json +7 -7
  67. package/templates/web/farris.config.mjs +24 -24
  68. package/templates/web/index.html +12 -12
  69. package/templates/web/package.json +28 -28
  70. package/templates/web/src/App.vue +80 -80
  71. package/templates/web/src/components/TheButton.vue +3 -3
  72. package/templates/web/src/main.ts +10 -10
  73. package/templates/web/src/router/index.ts +23 -23
  74. package/templates/web/src/views/AboutView.vue +15 -15
  75. package/templates/web/src/views/HomeView.vue +9 -9
  76. 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":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAsBpC;;GAEG;AACH,KAAK,UAAU,UAAU,CAAC,UAAmB;IACzC,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,iBAAiB,CAAC,CAAC;IACpE,MAAM,SAAS,GAAG,UAAU,IAAI,iBAAiB,CAAC;IAElD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;QACxB,MAAM,IAAI,KAAK,CAAC,YAAY,SAAS,EAAE,CAAC,CAAC;KAC5C;IACD,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;IAC9C,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAC/C,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,IAAY,EAAE,MAAqB,EAAE,OAA2B;IACzF,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;IAClD,MAAM,SAAS,GAAwB,EAAE,CAAC;IAE1C,+BAA+B;IAC/B,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE;QAClC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE;YAC9B,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,MAAM,CAAC,OAAO;SACzB,CAAC,CAAC;QAEH,2BAA2B;QAC3B,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACvB,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzE,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC3C,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC3C,IAAI,CAAC,OAAO,EAAE;gBACV,OAAO;aACV;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAEtC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;gBACxB,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;aAC9B;YAED,uDAAuD;YACvD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;KACN;IAED,iCAAiC;IACjC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;QACxB,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;KAC7C;IAED,uCAAuC;IACvC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,EAAE;QACzD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,MAAM,OAAO,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM;YACzB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;YAC9B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC5C,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,UAAU,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,UAA8B,EAAE;IAC9D,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC5B,IAAI;QACA,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACpD,cAAc;QACd,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;YAC7D,IAAI,UAAU,EAAE;gBACZ,MAAM,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;aAClD;SACJ;KACJ;IAAC,OAAO,KAAK,EAAE;QACZ,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACnB;AACL,CAAC"}
@@ -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,7 @@
1
+ import { createRequire } from 'node:module';
2
+ const require = createRequire(import.meta.url);
3
+ const packageJson = require('../../package.json');
4
+ export const getVersion = () => {
5
+ return packageJson.version;
6
+ };
7
+ //# sourceMappingURL=get-version.js.map
@@ -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,49 @@
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' } = farrisConfig;
7
+ const dependencies = externalDependencies ? getDependencies() : [];
8
+ let external = externals.include ? [...externals.include, ...dependencies] : dependencies;
9
+ external = external.filter((item) => !externals.exclude?.includes(item));
10
+ format && (process.env.FARRIS_FORMAT = format);
11
+ if (cssInjected) {
12
+ plugins.push(cssInjectedByJsPlugin());
13
+ }
14
+ if (packageName) {
15
+ process.env.PackageName = packageName;
16
+ }
17
+ const viteConfig = {
18
+ build: {
19
+ target,
20
+ minify,
21
+ lib: type === 'lib' ? lib : undefined,
22
+ rollupOptions: {
23
+ output: {
24
+ format
25
+ },
26
+ external: externals.filter ? externals.filter(external) : external
27
+ },
28
+ outDir
29
+ },
30
+ server,
31
+ plugins,
32
+ resolve: {
33
+ alias
34
+ }
35
+ };
36
+ return viteConfig;
37
+ };
38
+ const formatViteConfig = async (type, configFile) => {
39
+ const { viteConfig = {}, ...farrisConfig } = await getFarrisConfigAsync(configFile);
40
+ const customViteConfig = formatFarrisConfig(farrisConfig, type);
41
+ return mergeConfig(customViteConfig, viteConfig);
42
+ };
43
+ const getViteConfig = async (type = 'app', configFile) => {
44
+ const viteConfig = await formatViteConfig(type, configFile);
45
+ const { default: defaultViteConfig } = await import(`../config/vite-${type}.js`);
46
+ return mergeConfig(defaultViteConfig, viteConfig);
47
+ };
48
+ export { getViteConfig };
49
+ //# 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"}