@farris/cli 2.3.7 → 2.3.9

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 (171) hide show
  1. package/lib/commands/add-app.js +5 -5
  2. package/lib/commands/add-app.js.map +1 -1
  3. package/lib/commands/add-lib.js +5 -5
  4. package/lib/commands/add-lib.js.map +1 -1
  5. package/lib/commands/add-micro.js +12 -0
  6. package/lib/commands/add-micro.js.map +1 -0
  7. package/lib/commands/add-project.js +196 -194
  8. package/lib/commands/add-project.js.map +1 -1
  9. package/lib/commands/build-components.js +60 -60
  10. package/lib/commands/build-components.js.map +1 -1
  11. package/lib/commands/build-css.js +38 -38
  12. package/lib/commands/build-css.js.map +1 -1
  13. package/lib/commands/build-lib.js +30 -30
  14. package/lib/commands/build-lib.js.map +1 -1
  15. package/lib/commands/build.js +19 -19
  16. package/lib/commands/build.js.map +1 -1
  17. package/lib/commands/create-app-options.js +85 -74
  18. package/lib/commands/create-app-options.js.map +1 -1
  19. package/lib/commands/create-app.js +131 -131
  20. package/lib/commands/create-app.js.map +1 -1
  21. package/lib/commands/create-options.js +58 -32
  22. package/lib/commands/create-options.js.map +1 -1
  23. package/lib/commands/create.js +341 -331
  24. package/lib/commands/create.js.map +1 -1
  25. package/lib/commands/dev-serve.js +18 -18
  26. package/lib/commands/extract-i18n.js +74 -74
  27. package/lib/commands/extract-i18n.js.map +1 -1
  28. package/lib/commands/generate/api.js +124 -124
  29. package/lib/commands/generate/api.js.map +1 -1
  30. package/lib/commands/generate/common.js +101 -101
  31. package/lib/commands/generate/common.js.map +1 -1
  32. package/lib/commands/generate/component.js +156 -156
  33. package/lib/commands/generate/component.js.map +1 -1
  34. package/lib/commands/generate/view.js +168 -168
  35. package/lib/commands/generate/view.js.map +1 -1
  36. package/lib/commands/preview-serve.js +16 -16
  37. package/lib/commands/workspace/add-app.js +15 -15
  38. package/lib/commands/workspace/add-app.js.map +1 -1
  39. package/lib/commands/workspace/create.js +62 -62
  40. package/lib/commands/workspace/create.js.map +1 -1
  41. package/lib/commands/workspace/inspect.js +30 -30
  42. package/lib/commands/workspace/inspect.js.map +1 -1
  43. package/lib/commands/workspace/verify.js +38 -38
  44. package/lib/commands/workspace/verify.js.map +1 -1
  45. package/lib/common/agents-doc.js +33 -33
  46. package/lib/common/agents-doc.js.map +1 -1
  47. package/lib/common/apply-catalog-deps.js +15 -15
  48. package/lib/common/apply-catalog-deps.js.map +1 -1
  49. package/lib/common/component-file-name.js +3 -3
  50. package/lib/common/constant.js +85 -84
  51. package/lib/common/constant.js.map +1 -1
  52. package/lib/common/create-app-target.js +46 -46
  53. package/lib/common/create-app-target.js.map +1 -1
  54. package/lib/common/generate-app.js +106 -109
  55. package/lib/common/generate-app.js.map +1 -1
  56. package/lib/common/get-dependencies.js +9 -9
  57. package/lib/common/get-farris-config.js +25 -25
  58. package/lib/common/get-farris-config.js.map +1 -1
  59. package/lib/common/get-version.js +6 -6
  60. package/lib/common/get-vite-config.js +192 -192
  61. package/lib/common/get-vite-config.js.map +1 -1
  62. package/lib/common/lib-package-exports.js +24 -24
  63. package/lib/common/lib-package-exports.js.map +1 -1
  64. package/lib/common/list-lib-components.js +23 -23
  65. package/lib/common/list-lib-components.js.map +1 -1
  66. package/lib/common/output.js +164 -164
  67. package/lib/common/output.js.map +1 -1
  68. package/lib/common/project-layout.js +155 -183
  69. package/lib/common/project-layout.js.map +1 -1
  70. package/lib/common/safety.js +172 -173
  71. package/lib/common/safety.js.map +1 -1
  72. package/lib/common/template-manifest.js +18 -14
  73. package/lib/common/template-manifest.js.map +1 -1
  74. package/lib/common/template-renderer.js +114 -114
  75. package/lib/common/template-renderer.js.map +1 -1
  76. package/lib/common/transaction.js +83 -83
  77. package/lib/common/transaction.js.map +1 -1
  78. package/lib/common/verifier.js +187 -201
  79. package/lib/common/verifier.js.map +1 -1
  80. package/lib/common/workspace-contract.js +191 -157
  81. package/lib/common/workspace-contract.js.map +1 -1
  82. package/lib/config/vite-app.js +13 -13
  83. package/lib/config/vite-common.js +20 -20
  84. package/lib/config/vite-common.js.map +1 -1
  85. package/lib/config/vite-component.js +32 -32
  86. package/lib/config/vite-component.js.map +1 -1
  87. package/lib/config/vite-lib.js +26 -26
  88. package/lib/config/vite-lib.js.map +1 -1
  89. package/lib/index.js +261 -238
  90. package/lib/index.js.map +1 -1
  91. package/lib/plugins/create-app-package-json.js +23 -23
  92. package/lib/plugins/create-component-style.js +44 -44
  93. package/lib/plugins/create-package-json.js +48 -48
  94. package/lib/plugins/create-package-json.js.map +1 -1
  95. package/lib/plugins/dts.js +8 -8
  96. package/lib/plugins/html-system.js +9 -9
  97. package/lib/plugins/mock.js +240 -292
  98. package/lib/plugins/mock.js.map +1 -1
  99. package/lib/plugins/msw-adapter.js +141 -0
  100. package/lib/plugins/msw-adapter.js.map +1 -0
  101. package/lib/plugins/replace.js +17 -17
  102. package/lib/plugins/systemjs-bundle.js +15 -15
  103. package/lib/plugins/systemjs-bundle.js.map +1 -1
  104. package/package.json +6 -1
  105. package/templates/create/.gitignore.tpl +28 -8
  106. package/templates/create/AGENTS.md +76 -45
  107. package/templates/create/README.md +44 -11
  108. package/templates/create/package.json +2 -1
  109. package/templates/lib/.gitignore.tpl +31 -1
  110. package/templates/lib/.gitlab-ci.yml +2 -2
  111. package/templates/lib/README.md +24 -1
  112. package/templates/lib/{test → components/__tests__}/index.spec.ts +1 -1
  113. package/templates/lib/{test → components/__tests__}/index.spec.tsx +2 -2
  114. package/templates/lib/farris.config.mjs +2 -2
  115. package/templates/lib/package.json +1 -1
  116. package/templates/lib/tsconfig.json +1 -2
  117. package/templates/lib/vitest.config.ts +4 -2
  118. package/templates/micro/.eslintrc.cjs +15 -0
  119. package/templates/micro/.gitignore.tpl +33 -0
  120. package/templates/micro/.gitlab-ci.yml +59 -0
  121. package/templates/micro/.prettierrc.json +8 -0
  122. package/templates/micro/farris.config.mjs +34 -0
  123. package/templates/micro/index.html +12 -0
  124. package/templates/micro/mock/README.md +53 -0
  125. package/templates/micro/mock/tsconfig.json +10 -0
  126. package/templates/micro/package.json +47 -0
  127. package/templates/micro/src/App.tsx +25 -0
  128. package/templates/micro/src/locales/index.ts +5 -0
  129. package/templates/micro/src/locales/zh-CHS.json +1 -0
  130. package/templates/micro/src/main.ts +47 -0
  131. package/templates/micro/src/router/index.ts +24 -0
  132. package/templates/micro/src/views/AboutView.tsx +12 -0
  133. package/templates/micro/src/views/HomeView.tsx +13 -0
  134. package/templates/micro/src/views/__tests__/AboutView.spec.tsx +11 -0
  135. package/templates/micro/src/views/__tests__/HomeView.spec.tsx +11 -0
  136. package/templates/micro/tsconfig.json +18 -0
  137. package/templates/micro/vitest.config.ts +12 -0
  138. package/templates/mobile/.gitignore.tpl +25 -24
  139. package/templates/mobile/farris.config.mjs +2 -2
  140. package/templates/mobile/mock/README.md +39 -20
  141. package/templates/mobile/mock/tsconfig.json +10 -0
  142. package/templates/mobile/package.json +5 -2
  143. package/templates/mobile/src/main.ts +5 -40
  144. package/templates/mobile/src/views/HomeView.tsx +2 -2
  145. package/templates/mobile/src/views/__tests__/AboutView.spec.tsx +11 -0
  146. package/templates/mobile/src/views/__tests__/HomeView.spec.tsx +11 -0
  147. package/templates/mobile/tsconfig.json +1 -2
  148. package/templates/mobile/vitest.config.ts +4 -2
  149. package/templates/web/.gitignore.tpl +25 -24
  150. package/templates/web/farris.config.mjs +2 -2
  151. package/templates/web/mock/README.md +39 -20
  152. package/templates/web/mock/tsconfig.json +10 -0
  153. package/templates/web/package.json +5 -2
  154. package/templates/web/src/App.tsx +0 -4
  155. package/templates/web/src/main.ts +5 -40
  156. package/templates/web/src/views/HomeView.tsx +2 -2
  157. package/templates/web/src/views/__tests__/AboutView.spec.tsx +11 -0
  158. package/templates/web/src/views/__tests__/HomeView.spec.tsx +11 -0
  159. package/templates/web/tsconfig.json +1 -2
  160. package/templates/web/vitest.config.ts +4 -2
  161. package/templates/mobile/src/components/TheButton.tsx +0 -9
  162. package/templates/mobile/test/src/components/TheButton.spec.ts +0 -15
  163. package/templates/mobile/test/src/components/TheButton.spec.tsx +0 -15
  164. package/templates/web/src/components/TheButton.tsx +0 -9
  165. package/templates/web/src/micro-app.d.ts +0 -20
  166. package/templates/web/src/styles/index.css +0 -0
  167. package/templates/web/test/src/components/TheButton.spec.ts +0 -15
  168. package/templates/web/test/src/components/TheButton.spec.tsx +0 -15
  169. /package/templates/{web → micro}/src/micro/context.ts +0 -0
  170. /package/templates/{mobile → micro}/src/micro-app.d.ts +0 -0
  171. /package/templates/{mobile/src/styles/index.css → micro/src/styles/index.scss} +0 -0
@@ -1,110 +1,107 @@
1
- import { existsSync, readdirSync, rmSync, rmdirSync, statSync } from 'node:fs';
2
- import { dirname, isAbsolute, relative, resolve } from 'node:path';
3
- import { getVersion } from './get-version.js';
4
- import { logInfo } from './output.js';
5
- import { getTemplateDir, resolveTemplate } from './template-manifest.js';
6
- import { renderTemplateDir } from './template-renderer.js';
7
- import { assertTargetInsideCwd, resolvePackageName } from './create-app-target.js';
8
- export function toLibName(name) {
9
- const unscoped = name.replace(/^@[^/]+\//, '');
10
- return unscoped
11
- .split(/[^A-Za-z0-9]+/)
12
- .filter(Boolean)
13
- .map((token) => token.charAt(0).toUpperCase() + token.slice(1))
14
- .join('');
15
- }
16
- export function formatsLiteral(formats) {
17
- if (!formats || formats.length === 0) {
18
- return JSON.stringify(['es']);
19
- }
20
- return JSON.stringify(formats);
21
- }
22
- const STYLE_IMPORT = {
23
- none: '',
24
- css: "\nimport './styles/index.css';",
25
- scss: "\nimport './styles/index.scss';"
26
- };
27
- /** 按样式方案裁剪 styles 目录;lib 不需要(其源码入口是 components/)。 */
28
- export function appTemplateFilter(style) {
29
- return (relativePath) => {
30
- const normalized = relativePath.replace(/\\/g, '/');
31
- if (style === 'none' && normalized.startsWith('src/styles')) {
32
- return false;
33
- }
34
- if (style === 'css' && normalized === 'src/styles/index.scss') {
35
- return false;
36
- }
37
- if (style === 'scss' && normalized === 'src/styles/index.css') {
38
- return false;
39
- }
40
- return true;
41
- };
42
- }
43
- export function buildTemplateVariables(input) {
44
- return {
45
- name: input.packageName,
46
- appName: input.packageName,
47
- title: input.title ?? input.packageName,
48
- formats: formatsLiteral(input.formats),
49
- format: input.format ?? '',
50
- platform: input.platform ?? '',
51
- cliVersion: getVersion(),
52
- libName: toLibName(input.packageName),
53
- styleImport: STYLE_IMPORT[input.style]
54
- };
55
- }
56
- function rollbackCreatedTarget(targetPath, cwd) {
57
- if (existsSync(targetPath)) {
58
- rmSync(targetPath, { recursive: true, force: true });
59
- }
60
- let parent = dirname(targetPath);
61
- while (parent !== cwd) {
62
- const rel = relative(cwd, parent);
63
- if (rel === '' || rel.startsWith('..') || isAbsolute(rel)) {
64
- break;
65
- }
66
- // 父路径可能是文件(如 apps 是文件而目标是 apps/foo),readdirSync 会抛 ENOTDIR
67
- if (!existsSync(parent) || !statSync(parent).isDirectory() || readdirSync(parent).length > 0) {
68
- break;
69
- }
70
- rmdirSync(parent);
71
- parent = dirname(parent);
72
- }
73
- }
74
- export const generateApp = (options) => {
75
- const { name, type, formats, format, platform, style = 'css', title } = options;
76
- const packageName = options.packageName ?? resolvePackageName(name);
77
- const manifest = resolveTemplate({
78
- type: type,
79
- platform: platform
80
- });
81
- const templatePath = getTemplateDir(manifest.id);
82
- const cwd = process.cwd();
83
- assertTargetInsideCwd(name, cwd);
84
- const targetPath = resolve(cwd, name);
85
- const created = !existsSync(targetPath);
86
- try {
87
- const render = renderTemplateDir({
88
- sourceDir: templatePath,
89
- targetDir: targetPath,
90
- variables: buildTemplateVariables({ packageName, formats, format, platform, style, title }),
91
- filter: manifest.id === 'lib' ? undefined : appTemplateFilter(style)
92
- });
93
- if (render.unreplacedPlaceholders.length > 0) {
94
- throw new Error(`模板渲染后仍存在未替换占位符: ${render.unreplacedPlaceholders
95
- .map((item) => `${item.file} (${item.placeholder})`)
96
- .join(', ')}`);
97
- }
98
- if (options.hints !== false) {
99
- logInfo(`cd ${name}`);
100
- logInfo(`npm install or yarn`);
101
- }
102
- }
103
- catch (error) {
104
- if (created) {
105
- rollbackCreatedTarget(targetPath, cwd);
106
- }
107
- throw error;
108
- }
109
- };
1
+ import { existsSync, readdirSync, rmSync, rmdirSync, statSync } from 'node:fs';
2
+ import { dirname, isAbsolute, relative, resolve } from 'node:path';
3
+ import { getVersion } from './get-version.js';
4
+ import { logInfo } from './output.js';
5
+ import { getTemplateDir, resolveTemplate } from './template-manifest.js';
6
+ import { renderTemplateDir } from './template-renderer.js';
7
+ import { assertTargetInsideCwd, resolvePackageName } from './create-app-target.js';
8
+ export function toLibName(name) {
9
+ const unscoped = name.replace(/^@[^/]+\//, '');
10
+ return unscoped
11
+ .split(/[^A-Za-z0-9]+/)
12
+ .filter(Boolean)
13
+ .map((token) => token.charAt(0).toUpperCase() + token.slice(1))
14
+ .join('');
15
+ }
16
+ export function formatsLiteral(formats) {
17
+ if (!formats || formats.length === 0) {
18
+ return JSON.stringify(['es']);
19
+ }
20
+ return JSON.stringify(formats);
21
+ }
22
+ const STYLE_IMPORT = {
23
+ none: '',
24
+ scss: "\nimport './styles/index.scss';"
25
+ };
26
+ /** 按样式方案裁剪 styles 目录;lib 不需要(其源码入口是 components/)。 */
27
+ export function appTemplateFilter(style) {
28
+ return (relativePath) => {
29
+ const normalized = relativePath.replace(/\\/g, '/');
30
+ if (style === 'none' && normalized.startsWith('src/styles')) {
31
+ return false;
32
+ }
33
+ // 全局样式统一 scss:模板里的 index.css 一律不再产出
34
+ if (normalized === 'src/styles/index.css') {
35
+ return false;
36
+ }
37
+ return true;
38
+ };
39
+ }
40
+ export function buildTemplateVariables(input) {
41
+ return {
42
+ name: input.packageName,
43
+ appName: input.packageName,
44
+ title: input.title ?? input.packageName,
45
+ formats: formatsLiteral(input.formats),
46
+ format: input.format ?? '',
47
+ platform: input.platform ?? '',
48
+ cliVersion: getVersion(),
49
+ libName: toLibName(input.packageName),
50
+ styleImport: STYLE_IMPORT[input.style]
51
+ };
52
+ }
53
+ function rollbackCreatedTarget(targetPath, cwd) {
54
+ if (existsSync(targetPath)) {
55
+ rmSync(targetPath, { recursive: true, force: true });
56
+ }
57
+ let parent = dirname(targetPath);
58
+ while (parent !== cwd) {
59
+ const rel = relative(cwd, parent);
60
+ if (rel === '' || rel.startsWith('..') || isAbsolute(rel)) {
61
+ break;
62
+ }
63
+ // 父路径可能是文件(如 apps 是文件而目标是 apps/foo),readdirSync 会抛 ENOTDIR
64
+ if (!existsSync(parent) || !statSync(parent).isDirectory() || readdirSync(parent).length > 0) {
65
+ break;
66
+ }
67
+ rmdirSync(parent);
68
+ parent = dirname(parent);
69
+ }
70
+ }
71
+ export const generateApp = (options) => {
72
+ const { name, type, formats, format, platform, style = 'scss', title } = options;
73
+ const packageName = options.packageName ?? resolvePackageName(name);
74
+ const manifest = resolveTemplate({
75
+ type: type,
76
+ platform: platform
77
+ });
78
+ const templatePath = getTemplateDir(manifest.id);
79
+ const cwd = process.cwd();
80
+ assertTargetInsideCwd(name, cwd);
81
+ const targetPath = resolve(cwd, name);
82
+ const created = !existsSync(targetPath);
83
+ try {
84
+ const render = renderTemplateDir({
85
+ sourceDir: templatePath,
86
+ targetDir: targetPath,
87
+ variables: buildTemplateVariables({ packageName, formats, format, platform, style, title }),
88
+ filter: manifest.id === 'lib' ? undefined : appTemplateFilter(style)
89
+ });
90
+ if (render.unreplacedPlaceholders.length > 0) {
91
+ throw new Error(`模板渲染后仍存在未替换占位符: ${render.unreplacedPlaceholders
92
+ .map((item) => `${item.file} (${item.placeholder})`)
93
+ .join(', ')}`);
94
+ }
95
+ if (options.hints !== false) {
96
+ logInfo(`cd ${name}`);
97
+ logInfo(`npm install or yarn`);
98
+ }
99
+ }
100
+ catch (error) {
101
+ if (created) {
102
+ rollbackCreatedTarget(targetPath, cwd);
103
+ }
104
+ throw error;
105
+ }
106
+ };
110
107
  //# 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,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/E,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEnF,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,CAAC;QACrC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAgBD,MAAM,YAAY,GAAoC;IACpD,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,iCAAiC;CACxC,CAAC;AAEF,qDAAqD;AACrD,MAAM,UAAU,iBAAiB,CAAC,KAAsB;IACtD,OAAO,CAAC,YAAoB,EAAE,EAAE;QAC9B,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACpD,IAAI,KAAK,KAAK,MAAM,IAAI,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC5D,OAAO,KAAK,CAAC;QACf,CAAC;QACD,oCAAoC;QACpC,IAAI,UAAU,KAAK,sBAAsB,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAOtC;IACC,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,WAAW;QACvB,OAAO,EAAE,KAAK,CAAC,WAAW;QAC1B,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW;QACvC,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC;QACtC,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE;QAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,EAAE;QAC9B,UAAU,EAAE,UAAU,EAAE;QACxB,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC;QACrC,WAAW,EAAE,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC;KACvC,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,UAAkB,EAAE,GAAW;IAC5D,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACjC,OAAO,MAAM,KAAK,GAAG,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAClC,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1D,MAAM;QACR,CAAC;QACD,2DAA2D;QAC3D,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7F,MAAM;QACR,CAAC;QACD,SAAS,CAAC,MAAM,CAAC,CAAC;QAClB,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAA2B,EAAE,EAAE;IACzD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IACjF,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAG,eAAe,CAAC;QAC/B,IAAI,EAAE,IAA+B;QACrC,QAAQ,EAAE,QAAwC;KACnD,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAExC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,iBAAiB,CAAC;YAC/B,SAAS,EAAE,YAAY;YACvB,SAAS,EAAE,UAAU;YACrB,SAAS,EAAE,sBAAsB,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;YAC3F,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC;SACrE,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CACb,mBAAmB,MAAM,CAAC,sBAAsB;iBAC7C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,GAAG,CAAC;iBACnD,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;YAC5B,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;YACtB,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,OAAO,EAAE,CAAC;YACZ,qBAAqB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,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,26 +1,26 @@
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
- }
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
+ }
26
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,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
+ {"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,CAAC;QAC1B,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,YAAY,QAAQ,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,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;IAC1E,CAAC;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