@farris/cli 2.1.8 → 2.2.0-beta.1

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 (109) hide show
  1. package/bin/index.js +1 -1
  2. package/lib/commands/build-components.js +48 -39
  3. package/lib/commands/build-components.js.map +1 -1
  4. package/lib/commands/build-css.js +38 -38
  5. package/lib/commands/build-css.js.map +1 -1
  6. package/lib/commands/build-lib.js +25 -25
  7. package/lib/commands/build-lib.js.map +1 -1
  8. package/lib/commands/build.js +15 -14
  9. package/lib/commands/build.js.map +1 -1
  10. package/lib/commands/create-app.js +54 -54
  11. package/lib/commands/dev-serve.js +18 -18
  12. package/lib/commands/extract-i18n.js +74 -74
  13. package/lib/commands/extract-i18n.js.map +1 -1
  14. package/lib/commands/preview-serve.js +16 -16
  15. package/lib/common/component-file-name.js +4 -0
  16. package/lib/common/component-file-name.js.map +1 -0
  17. package/lib/common/constant.js +22 -64
  18. package/lib/common/constant.js.map +1 -1
  19. package/lib/common/generate-app.js +51 -44
  20. package/lib/common/generate-app.js.map +1 -1
  21. package/lib/common/get-dependencies.js +9 -9
  22. package/lib/common/get-farris-config.js +25 -11
  23. package/lib/common/get-farris-config.js.map +1 -1
  24. package/lib/common/get-version.js +6 -6
  25. package/lib/common/get-vite-config.js +49 -105
  26. package/lib/common/get-vite-config.js.map +1 -1
  27. package/lib/common/lib-package-exports.js +21 -0
  28. package/lib/common/lib-package-exports.js.map +1 -0
  29. package/lib/common/list-lib-components.js +24 -0
  30. package/lib/common/list-lib-components.js.map +1 -0
  31. package/lib/common/template-manifest.js +17 -0
  32. package/lib/common/template-manifest.js.map +1 -0
  33. package/lib/config/vite-app.js +13 -13
  34. package/lib/config/vite-common.js +20 -20
  35. package/lib/config/vite-common.js.map +1 -1
  36. package/lib/config/vite-component.js +32 -30
  37. package/lib/config/vite-component.js.map +1 -1
  38. package/lib/config/vite-lib.js +26 -26
  39. package/lib/index.js +87 -175
  40. package/lib/index.js.map +1 -1
  41. package/lib/plugins/create-component-style.js +44 -44
  42. package/lib/plugins/create-package-json.js +48 -33
  43. package/lib/plugins/create-package-json.js.map +1 -1
  44. package/lib/plugins/dts.js +8 -8
  45. package/lib/plugins/html-system.js +9 -9
  46. package/lib/plugins/replace.js +17 -17
  47. package/lib/plugins/systemjs-bundle.js +15 -15
  48. package/lib/plugins/systemjs-bundle.js.map +1 -1
  49. package/package.json +9 -11
  50. package/templates/lib/.changeset/README.md +1 -0
  51. package/templates/lib/.changeset/config.json +11 -0
  52. package/templates/lib/README.md +17 -0
  53. package/templates/lib/components/button/index.ts +7 -0
  54. package/templates/lib/components/button/src/button.scss +10 -0
  55. package/templates/lib/components/button/src/button.vue +12 -0
  56. package/templates/lib/components/common/with-install.ts +9 -0
  57. package/templates/lib/components/index.ts +10 -0
  58. package/templates/lib/farris.config.mjs +13 -0
  59. package/templates/lib/package.json +21 -0
  60. package/templates/lib/tsconfig.json +7 -0
  61. package/templates/mobile/.changeset/README.md +4 -0
  62. package/templates/mobile/.changeset/config.json +11 -0
  63. package/templates/mobile/package.json +4 -1
  64. package/templates/web/.changeset/README.md +4 -0
  65. package/templates/web/.changeset/config.json +11 -0
  66. package/templates/web/package.json +4 -1
  67. package/lib/commands/generate/api.js +0 -188
  68. package/lib/commands/generate/api.js.map +0 -1
  69. package/lib/commands/generate/common.js +0 -101
  70. package/lib/commands/generate/common.js.map +0 -1
  71. package/lib/commands/generate/component.js +0 -164
  72. package/lib/commands/generate/component.js.map +0 -1
  73. package/lib/commands/generate/view.js +0 -198
  74. package/lib/commands/generate/view.js.map +0 -1
  75. package/lib/commands/workspace/add-app.js +0 -181
  76. package/lib/commands/workspace/add-app.js.map +0 -1
  77. package/lib/commands/workspace/create.js +0 -380
  78. package/lib/commands/workspace/create.js.map +0 -1
  79. package/lib/commands/workspace/inspect.js +0 -31
  80. package/lib/commands/workspace/inspect.js.map +0 -1
  81. package/lib/commands/workspace/verify.js +0 -39
  82. package/lib/commands/workspace/verify.js.map +0 -1
  83. package/lib/common/output.js +0 -95
  84. package/lib/common/output.js.map +0 -1
  85. package/lib/common/safety.js +0 -172
  86. package/lib/common/safety.js.map +0 -1
  87. package/lib/common/template-renderer.js +0 -115
  88. package/lib/common/template-renderer.js.map +0 -1
  89. package/lib/common/transaction.js +0 -84
  90. package/lib/common/transaction.js.map +0 -1
  91. package/lib/common/verifier.js +0 -151
  92. package/lib/common/verifier.js.map +0 -1
  93. package/templates/workspace/app/farris.config.mjs +0 -13
  94. package/templates/workspace/app/index.html +0 -12
  95. package/templates/workspace/app/package.json +0 -22
  96. package/templates/workspace/app/src/App.tsx +0 -11
  97. package/templates/workspace/app/src/locales/index.ts +0 -5
  98. package/templates/workspace/app/src/locales/zh-CN.json +0 -1
  99. package/templates/workspace/app/src/main.ts +0 -12
  100. package/templates/workspace/app/src/router/index.ts +0 -16
  101. package/templates/workspace/app/src/styles/index.css +0 -0
  102. package/templates/workspace/app/src/styles/index.scss +0 -0
  103. package/templates/workspace/app/src/views/home/composables/use-home.ts +0 -7
  104. package/templates/workspace/app/src/views/home/home.component.tsx +0 -15
  105. package/templates/workspace/app/src/views/home/index.ts +0 -4
  106. package/templates/workspace/app/tsconfig.json +0 -21
  107. package/templates/workspace/root/README.md +0 -28
  108. package/templates/workspace/root/package.json +0 -13
  109. package/templates/workspace/root/pnpm-workspace.yaml +0 -12
@@ -1,17 +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
- };
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
17
  //# sourceMappingURL=preview-serve.js.map
@@ -0,0 +1,4 @@
1
+ export function componentFileName(_format, entryName) {
2
+ return `${entryName}/index.esm.js`;
3
+ }
4
+ //# sourceMappingURL=component-file-name.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-file-name.js","sourceRoot":"","sources":["../../src/common/component-file-name.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,iBAAiB,CAAC,OAAe,EAAE,SAAiB;IAClE,OAAO,GAAG,SAAS,eAAe,CAAC;AACrC,CAAC"}
@@ -1,65 +1,23 @@
1
- import { existsSync } from 'node:fs';
2
- import { fileURLToPath } from 'node:url';
3
- import { join, dirname } from 'node:path';
4
- import { getVersion } from './get-version.js';
5
- function findRootDir(dir) {
6
- if (existsSync(join(dir, 'farris.config.js')) || existsSync(join(dir, 'farris.config.mjs'))) {
7
- return dir;
8
- }
9
- const parentDir = dirname(dir);
10
- if (dir === parentDir) {
11
- return dir;
12
- }
13
- return findRootDir(parentDir);
14
- }
15
- export const getDirname = (url) => fileURLToPath(new URL('.', url));
16
- // Root paths
17
- export const CWD = process.cwd();
18
- export const ROOT = findRootDir(CWD);
19
- export const FAARIS_CONFIG_FILE = join(CWD, 'farris.config.mjs');
20
- export const getPackageName = () => {
21
- const { PackageName = '@components' } = process.env;
22
- return PackageName;
23
- };
24
- // Schema & Version Baseline
25
- export const SCHEMA_VERSION = 1;
26
- export const CLI_VERSION = getVersion();
27
- // Catalog Dependency Versions Baseline
28
- export const DEFAULT_CATALOG_VERSIONS = {
29
- '@farris/ui-vue': '1.8.5-beta.10',
30
- '@farris/cli': CLI_VERSION,
31
- 'typescript': '5.7.3',
32
- 'vite': '5.4.19',
33
- 'vue': '3.5.13',
34
- 'vue-router': '4.5.0',
35
- 'vue-tsc': '2.2.0',
36
- 'sass': '1.90.0',
37
- 'pnpm': '9.15.4'
38
- };
39
- // Standard Engines
40
- export const DEFAULT_ENGINES = {
41
- node: '^18.0.0 || >=20.0.0',
42
- pnpm: '>=9.0.0 <10.0.0'
43
- };
44
- // Exit Codes
45
- export var ExitCode;
46
- (function (ExitCode) {
47
- ExitCode[ExitCode["SUCCESS"] = 0] = "SUCCESS";
48
- ExitCode[ExitCode["GENERAL_ERROR"] = 1] = "GENERAL_ERROR";
49
- ExitCode[ExitCode["TARGET_CONFLICT"] = 2] = "TARGET_CONFLICT";
50
- ExitCode[ExitCode["VERIFY_FAILED"] = 3] = "VERIFY_FAILED";
51
- ExitCode[ExitCode["FS_ERROR"] = 4] = "FS_ERROR";
52
- })(ExitCode || (ExitCode = {}));
53
- // Workspace Safety Status
54
- export var WorkspaceStatus;
55
- (function (WorkspaceStatus) {
56
- WorkspaceStatus["MISSING"] = "missing";
57
- WorkspaceStatus["EMPTY"] = "empty";
58
- WorkspaceStatus["AI_CONFIG_ONLY"] = "ai-config-only";
59
- WorkspaceStatus["PRESERVED_INPUT_ONLY"] = "preserved-input-only";
60
- WorkspaceStatus["EXISTING_WORKSPACE"] = "existing-workspace";
61
- WorkspaceStatus["EXISTING_OR_UNKNOWN_PROJECT"] = "existing-or-unknown-project";
62
- WorkspaceStatus["NON_EMPTY_PROJECT"] = "non-empty-project";
63
- WorkspaceStatus["INVALID_TARGET"] = "invalid-target";
64
- })(WorkspaceStatus || (WorkspaceStatus = {}));
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
+ };
65
23
  //# sourceMappingURL=constant.js.map
@@ -1 +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;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,SAAS,WAAW,CAAC,GAAW;IAC5B,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC;QAC1F,OAAO,GAAG,CAAC;IACf,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACpB,OAAO,GAAG,CAAC;IACf,CAAC;IAED,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAE5E,aAAa;AACb,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,GAAG,EAAE;IAC/B,MAAM,EAAE,WAAW,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IACpD,OAAO,WAAW,CAAC;AACvB,CAAC,CAAC;AAEF,4BAA4B;AAC5B,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAChC,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,EAAE,CAAC;AAExC,uCAAuC;AACvC,MAAM,CAAC,MAAM,wBAAwB,GAA2B;IAC5D,gBAAgB,EAAE,eAAe;IACjC,aAAa,EAAE,WAAW;IAC1B,YAAY,EAAE,OAAO;IACrB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,QAAQ;IACf,YAAY,EAAE,OAAO;IACrB,SAAS,EAAE,OAAO;IAClB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;CACnB,CAAC;AAEF,mBAAmB;AACnB,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,iBAAiB;CAC1B,CAAC;AAEF,aAAa;AACb,MAAM,CAAN,IAAY,QAMX;AAND,WAAY,QAAQ;IAChB,6CAAW,CAAA;IACX,yDAAiB,CAAA;IACjB,6DAAmB,CAAA;IACnB,yDAAiB,CAAA;IACjB,+CAAY,CAAA;AAChB,CAAC,EANW,QAAQ,KAAR,QAAQ,QAMnB;AAED,0BAA0B;AAC1B,MAAM,CAAN,IAAY,eASX;AATD,WAAY,eAAe;IACvB,sCAAmB,CAAA;IACnB,kCAAe,CAAA;IACf,oDAAiC,CAAA;IACjC,gEAA6C,CAAA;IAC7C,4DAAyC,CAAA;IACzC,8EAA2D,CAAA;IAC3D,0DAAuC,CAAA;IACvC,oDAAiC,CAAA;AACrC,CAAC,EATW,eAAe,KAAf,eAAe,QAS1B"}
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"}
@@ -1,45 +1,52 @@
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
- };
1
+ import { cpSync, readFileSync, writeFileSync } from 'node:fs';
2
+ import { resolve } from 'node:path';
3
+ import { CWD } from './constant.js';
4
+ import { getVersion } from './get-version.js';
5
+ import { getTemplateDir, resolveTemplate } from './template-manifest.js';
6
+ export function toLibName(name) {
7
+ const unscoped = name.replace(/^@[^/]+\//, '');
8
+ return unscoped
9
+ .split(/[^A-Za-z0-9]+/)
10
+ .filter(Boolean)
11
+ .map((token) => token.charAt(0).toUpperCase() + token.slice(1))
12
+ .join('');
13
+ }
14
+ export function formatsLiteral(formats) {
15
+ if (!formats || formats.length === 0) {
16
+ console.log('未选择格式,默认 es');
17
+ return JSON.stringify(['es']);
18
+ }
19
+ return JSON.stringify(formats);
20
+ }
21
+ function replaceContent(filePath, args) {
22
+ let content = readFileSync(filePath, 'utf-8');
23
+ Object.keys(args).forEach((key) => {
24
+ content = content.replace(new RegExp(`<%= ${key} %>`, 'g'), args[key]);
25
+ });
26
+ writeFileSync(filePath, content);
27
+ }
28
+ export const generateApp = (options) => {
29
+ const { name, type, formats, format = '', platform } = options;
30
+ const manifest = resolveTemplate({
31
+ type: type,
32
+ platform: platform
33
+ });
34
+ const templatePath = getTemplateDir(manifest.id);
35
+ const targetPath = resolve(CWD, name);
36
+ cpSync(templatePath, targetPath, { recursive: true });
37
+ const cliVersion = getVersion();
38
+ const args = {
39
+ name,
40
+ formats: formatsLiteral(formats),
41
+ format,
42
+ platform: platform ?? '',
43
+ cliVersion,
44
+ libName: toLibName(name)
45
+ };
46
+ manifest.replaceFiles.forEach((replaceFile) => {
47
+ replaceContent(resolve(CWD, name, replaceFile), args);
48
+ });
49
+ console.log(`cd ${name}`);
50
+ console.log(`npm install or yarn`);
51
+ };
45
52
  //# sourceMappingURL=generate-app.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-app.js","sourceRoot":"","sources":["../../src/common/generate-app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-app.js","sourceRoot":"","sources":["../../src/common/generate-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzE,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAC/C,OAAO,QAAQ;SACZ,KAAK,CAAC,eAAe,CAAC;SACtB,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC9D,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAkB;IAC/C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACpC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;KAC/B;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,cAAc,CAAC,QAAgB,EAAE,IAA4B;IACpE,IAAI,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAChC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,GAAG,KAAK,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IACH,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC;AAUD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAA2B,EAAE,EAAE;IACzD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,EAAE,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC/D,MAAM,QAAQ,GAAG,eAAe,CAAC;QAC/B,IAAI,EAAE,IAAqB;QAC3B,QAAQ,EAAE,QAAwC;KACnD,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACtC,MAAM,CAAC,YAAY,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEtD,MAAM,UAAU,GAAG,UAAU,EAAE,CAAC;IAChC,MAAM,IAAI,GAAG;QACX,IAAI;QACJ,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC;QAChC,MAAM;QACN,QAAQ,EAAE,QAAQ,IAAI,EAAE;QACxB,UAAU;QACV,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC;KACzB,CAAC;IACF,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;QAC5C,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AACrC,CAAC,CAAC"}
@@ -1,10 +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
- };
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
10
  //# sourceMappingURL=get-dependencies.js.map
@@ -1,12 +1,26 @@
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 };
1
+ import { existsSync } from 'node:fs';
2
+ import { resolve } from 'node:path';
3
+ import { pathToFileURL } from 'node:url';
4
+ export async function getFarrisConfigAsync(configFile) {
5
+ const cwd = process.cwd();
6
+ const explicit = configFile !== undefined && configFile !== '';
7
+ const resolved = resolve(cwd, explicit ? configFile : 'farris.config.mjs');
8
+ if (!existsSync(resolved)) {
9
+ if (explicit) {
10
+ throw new Error(`配置文件不存在: ${resolved}`);
11
+ }
12
+ return {};
13
+ }
14
+ try {
15
+ const loaded = await import(pathToFileURL(resolved).href);
16
+ if (loaded.default === undefined) {
17
+ throw new Error('missing default export');
18
+ }
19
+ return loaded.default;
20
+ }
21
+ catch (err) {
22
+ const cause = err instanceof Error ? err.message : String(err);
23
+ throw new Error(`Failed to load farris config: ${resolved} — ${cause}`);
24
+ }
25
+ }
12
26
  //# sourceMappingURL=get-farris-config.js.map
@@ -1 +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,CAAC;QACH,OAAO,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;IAChE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"get-farris-config.js","sourceRoot":"","sources":["../../src/common/get-farris-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,UAAmB;IAC5D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAG,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,EAAE,CAAC;IAC/D,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAE3E,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QACzB,IAAI,QAAQ,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,YAAY,QAAQ,EAAE,CAAC,CAAC;SACzC;QACD,OAAO,EAAE,CAAC;KACX;IAED,IAAI;QACF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE;YAChC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;SAC3C;QACD,OAAO,MAAM,CAAC,OAAO,CAAC;KACvB;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,iCAAiC,QAAQ,MAAM,KAAK,EAAE,CAAC,CAAC;KACzE;AACH,CAAC"}
@@ -1,7 +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
- };
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
7
  //# sourceMappingURL=get-version.js.map
@@ -1,106 +1,50 @@
1
- import { mergeConfig, loadEnv } 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
- import { logWarn } from './output.js';
6
- import { CWD } from './constant.js';
7
- /**
8
- * 解析有效 Base 及其来源
9
- */
10
- export function resolveEffectiveBase(options) {
11
- const { cliBase, mode = 'production', configBase, configPublicPath, cwd = CWD } = options;
12
- // 1. CLI --base
13
- if (cliBase !== undefined && cliBase !== '') {
14
- return { effectiveBase: cliBase, baseSource: 'cli' };
15
- }
16
- // 2. VITE_BASE_URL (通过 loadEnv 加载当前 mode 的 .env 或环境变量)
17
- const env = loadEnv(mode, cwd, '');
18
- const envBase = env.VITE_BASE_URL || process.env.VITE_BASE_URL;
19
- if (envBase !== undefined && envBase !== '') {
20
- return { effectiveBase: envBase, baseSource: 'env' };
21
- }
22
- // 3. farris.config.mjs.base
23
- if (configBase !== undefined && configBase !== '') {
24
- if (configPublicPath !== undefined) {
25
- logWarn('[WARN] farris.config.mjs 中同时存在 base 和 publicPath,优先使用 base,publicPath 已弃用。');
26
- }
27
- return { effectiveBase: configBase, baseSource: 'config.base' };
28
- }
29
- // 4. farris.config.mjs.publicPath (兼容别名)
30
- if (configPublicPath !== undefined && configPublicPath !== '') {
31
- logWarn('[WARN] farris.config.mjs 中的 publicPath 已弃用,请在配置文件中改用 base。');
32
- return { effectiveBase: configPublicPath, baseSource: 'config.publicPath' };
33
- }
34
- // 5. 默认根路径
35
- return { effectiveBase: '/', baseSource: 'default' };
36
- }
37
- /**
38
- * 校验 Base 与 RouterMode 兼容性
39
- */
40
- export function validateBaseAndRouterMode(base, routerMode) {
41
- const isRelative = base.startsWith('.') || (!base.startsWith('/') && !base.startsWith('http://') && !base.startsWith('https://'));
42
- if (isRelative && routerMode === 'history') {
43
- throw new Error(`[Error] 配置冲突: 相对路径 base ("${base}") 无法与 history 路由模式 ("routerMode: 'history'") 同时使用。在 history 模式下必须使用绝对路径 base (如 "/"),或者切换为 hash 路由模式。`);
44
- }
45
- }
46
- const formatFarrisConfig = (farrisConfig, type, cliOptions = {}) => {
47
- const { lib, format, target, minify = true, outDir, externals = { include: [], exclude: [] }, externalDependencies, plugins = [], alias, server, cssInjected, packageName = '@farris/mobile-ui-vue', base: configBase, publicPath: configPublicPath, routerMode } = farrisConfig;
48
- // 解析 base
49
- const { effectiveBase } = resolveEffectiveBase({
50
- cliBase: cliOptions.base,
51
- mode: cliOptions.mode,
52
- configBase,
53
- configPublicPath
54
- });
55
- // 校验 base 与 routerMode
56
- if (type === 'app') {
57
- validateBaseAndRouterMode(effectiveBase, routerMode);
58
- }
59
- const dependencies = externalDependencies ? getDependencies() : [];
60
- let external = externals.include ? [...externals.include, ...dependencies] : dependencies;
61
- external = external.filter((item) => !externals.exclude?.includes(item));
62
- if (format) {
63
- process.env.FARRIS_FORMAT = format;
64
- }
65
- if (cssInjected) {
66
- plugins.push(cssInjectedByJsPlugin());
67
- }
68
- if (packageName) {
69
- process.env.PackageName = packageName;
70
- }
71
- // Rollup format 转换:systemjs -> system
72
- const rollupFormat = format === 'systemjs' ? 'system' : format;
73
- const viteConfig = {
74
- base: effectiveBase,
75
- build: {
76
- target,
77
- minify,
78
- lib: type === 'lib' ? lib : undefined,
79
- rollupOptions: {
80
- output: {
81
- format: rollupFormat
82
- },
83
- external: externals.filter ? externals.filter(external) : external
84
- },
85
- outDir
86
- },
87
- server,
88
- plugins,
89
- resolve: {
90
- alias
91
- }
92
- };
93
- return viteConfig;
94
- };
95
- const formatViteConfig = async (type, configFile, cliOptions = {}) => {
96
- const { viteConfig = {}, ...farrisConfig } = await getFarrisConfigAsync(configFile);
97
- const customViteConfig = formatFarrisConfig(farrisConfig, type, cliOptions);
98
- return mergeConfig(customViteConfig, viteConfig);
99
- };
100
- const getViteConfig = async (type = 'app', configFile, cliOptions = {}) => {
101
- const viteConfig = await formatViteConfig(type, configFile, cliOptions);
102
- const { default: defaultViteConfig } = await import(`../config/vite-${type}.js`);
103
- return mergeConfig(defaultViteConfig, viteConfig);
104
- };
105
- export { getViteConfig };
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
+ const libFormats = lib && typeof lib === 'object' ? lib.formats : undefined;
11
+ const hasLibFormats = Array.isArray(libFormats) && libFormats.length > 0;
12
+ const resolvedFormat = hasLibFormats ? libFormats[0] : format;
13
+ resolvedFormat && (process.env.FARRIS_FORMAT = resolvedFormat);
14
+ if (cssInjected) {
15
+ plugins.push(cssInjectedByJsPlugin());
16
+ }
17
+ if (packageName) {
18
+ process.env.PackageName = packageName;
19
+ }
20
+ const viteConfig = {
21
+ build: {
22
+ target,
23
+ minify,
24
+ lib: type === 'lib' ? lib : undefined,
25
+ rollupOptions: {
26
+ output: hasLibFormats ? {} : { format: resolvedFormat },
27
+ external: externals.filter ? externals.filter(external) : external
28
+ },
29
+ outDir
30
+ },
31
+ server,
32
+ plugins,
33
+ resolve: {
34
+ alias
35
+ }
36
+ };
37
+ return viteConfig;
38
+ };
39
+ const formatViteConfig = async (type, configFile) => {
40
+ const { viteConfig = {}, ...farrisConfig } = await getFarrisConfigAsync(configFile);
41
+ const customViteConfig = formatFarrisConfig(farrisConfig, type);
42
+ return mergeConfig(customViteConfig, viteConfig);
43
+ };
44
+ const getViteConfig = async (type = 'app', configFile) => {
45
+ const viteConfig = await formatViteConfig(type, configFile);
46
+ const { default: defaultViteConfig } = await import(`../config/vite-${type}.js`);
47
+ return mergeConfig(defaultViteConfig, viteConfig);
48
+ };
49
+ export { getViteConfig };
106
50
  //# sourceMappingURL=get-vite-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-vite-config.js","sourceRoot":"","sources":["../../src/common/get-vite-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-vite-config.js","sourceRoot":"","sources":["../../src/common/get-vite-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ export function buildLibPackageExports(componentNames, seen) {
2
+ const requirePath = seen.has('umd') ? './index.umd.js' : './index.esm.js';
3
+ const exports = {
4
+ '.': {
5
+ types: './types/index.d.ts',
6
+ import: './index.esm.js',
7
+ require: requirePath
8
+ },
9
+ './style.css': './index.css',
10
+ './index.css': './index.css'
11
+ };
12
+ componentNames.forEach((name) => {
13
+ exports[`./${name}`] = {
14
+ types: `./types/${name}/index.d.ts`,
15
+ import: `./components/${name}/index.esm.js`
16
+ };
17
+ exports[`./${name}/style.css`] = `./components/${name}/index.css`;
18
+ });
19
+ return { sideEffects: ['**/*.css'], exports };
20
+ }
21
+ //# sourceMappingURL=lib-package-exports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib-package-exports.js","sourceRoot":"","sources":["../../src/common/lib-package-exports.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,sBAAsB,CACpC,cAAwB,EACxB,IAAiB;IAKjB,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAC1E,MAAM,OAAO,GAAiF;QAC5F,GAAG,EAAE;YACH,KAAK,EAAE,oBAAoB;YAC3B,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,WAAW;SACrB;QACD,aAAa,EAAE,aAAa;QAC5B,aAAa,EAAE,aAAa;KAC7B,CAAC;IACF,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC9B,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG;YACrB,KAAK,EAAE,WAAW,IAAI,aAAa;YACnC,MAAM,EAAE,gBAAgB,IAAI,eAAe;SAC5C,CAAC;QACF,OAAO,CAAC,KAAK,IAAI,YAAY,CAAC,GAAG,gBAAgB,IAAI,YAAY,CAAC;IACpE,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,WAAW,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC;AAChD,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { existsSync, lstatSync, readdirSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ export const DEFAULT_EXCLUDE_COMPONENTS = [
4
+ 'property-panel',
5
+ 'dynamic-resolver',
6
+ 'dynamic-view'
7
+ ];
8
+ export function listLibComponents(rootDir, exclude = DEFAULT_EXCLUDE_COMPONENTS) {
9
+ const componentsDir = join(rootDir, 'components');
10
+ if (!existsSync(componentsDir) || !lstatSync(componentsDir).isDirectory()) {
11
+ return [];
12
+ }
13
+ const skip = new Set(exclude);
14
+ return readdirSync(componentsDir)
15
+ .filter((name) => {
16
+ if (skip.has(name)) {
17
+ return false;
18
+ }
19
+ const dir = join(componentsDir, name);
20
+ return lstatSync(dir).isDirectory() && existsSync(join(dir, 'index.ts'));
21
+ })
22
+ .sort();
23
+ }
24
+ //# sourceMappingURL=list-lib-components.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-lib-components.js","sourceRoot":"","sources":["../../src/common/list-lib-components.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,gBAAgB;IAChB,kBAAkB;IAClB,cAAc;CACf,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAC/B,OAAe,EACf,UAAoB,0BAA0B;IAE9C,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAClD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,EAAE;QACzE,OAAO,EAAE,CAAC;KACX;IACD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9B,OAAO,WAAW,CAAC,aAAa,CAAC;SAC9B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACf,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAClB,OAAO,KAAK,CAAC;SACd;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACtC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC;SACD,IAAI,EAAE,CAAC;AACZ,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { resolve } from 'node:path';
2
+ import { getDirname } from './constant.js';
3
+ const APP_REPLACE_FILES = ['package.json', 'farris.config.mjs', 'index.html'];
4
+ const LIB_REPLACE_FILES = ['package.json', 'farris.config.mjs'];
5
+ export function resolveTemplate(input) {
6
+ if (input.type === 'lib') {
7
+ return { id: 'lib', replaceFiles: [...LIB_REPLACE_FILES] };
8
+ }
9
+ if (!input.platform) {
10
+ throw new Error('platform is required when type is app');
11
+ }
12
+ return { id: input.platform, replaceFiles: [...APP_REPLACE_FILES] };
13
+ }
14
+ export function getTemplateDir(id) {
15
+ return resolve(getDirname(import.meta.url), '../../templates', id);
16
+ }
17
+ //# sourceMappingURL=template-manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-manifest.js","sourceRoot":"","sources":["../../src/common/template-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAS3C,MAAM,iBAAiB,GAAG,CAAC,cAAc,EAAE,mBAAmB,EAAE,YAAY,CAAC,CAAC;AAC9E,MAAM,iBAAiB,GAAG,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;AAEhE,MAAM,UAAU,eAAe,CAAC,KAG/B;IACC,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;QACxB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,GAAG,iBAAiB,CAAC,EAAE,CAAC;KAC5D;IACD,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;QACnB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;KAC1D;IACD,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,YAAY,EAAE,CAAC,GAAG,iBAAiB,CAAC,EAAE,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAAc;IAC3C,OAAO,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC;AACrE,CAAC"}