@farris/cli 2.3.8 → 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 (108) hide show
  1. package/lib/commands/add-app.js +5 -5
  2. package/lib/commands/add-lib.js +5 -5
  3. package/lib/commands/add-micro.js +11 -11
  4. package/lib/commands/add-project.js +196 -196
  5. package/lib/commands/add-project.js.map +1 -1
  6. package/lib/commands/build-components.js +60 -60
  7. package/lib/commands/build-components.js.map +1 -1
  8. package/lib/commands/build-css.js +38 -38
  9. package/lib/commands/build-css.js.map +1 -1
  10. package/lib/commands/build-lib.js +30 -30
  11. package/lib/commands/build.js +19 -19
  12. package/lib/commands/build.js.map +1 -1
  13. package/lib/commands/create-app-options.js +85 -85
  14. package/lib/commands/create-app-options.js.map +1 -1
  15. package/lib/commands/create-app.js +131 -131
  16. package/lib/commands/create-app.js.map +1 -1
  17. package/lib/commands/create-options.js +58 -58
  18. package/lib/commands/create-options.js.map +1 -1
  19. package/lib/commands/create.js +341 -341
  20. package/lib/commands/create.js.map +1 -1
  21. package/lib/commands/dev-serve.js +18 -18
  22. package/lib/commands/extract-i18n.js +74 -74
  23. package/lib/commands/extract-i18n.js.map +1 -1
  24. package/lib/commands/generate/api.js +124 -124
  25. package/lib/commands/generate/api.js.map +1 -1
  26. package/lib/commands/generate/common.js +101 -101
  27. package/lib/commands/generate/common.js.map +1 -1
  28. package/lib/commands/generate/component.js +156 -156
  29. package/lib/commands/generate/component.js.map +1 -1
  30. package/lib/commands/generate/view.js +168 -168
  31. package/lib/commands/generate/view.js.map +1 -1
  32. package/lib/commands/preview-serve.js +16 -16
  33. package/lib/commands/workspace/add-app.js +15 -15
  34. package/lib/commands/workspace/add-app.js.map +1 -1
  35. package/lib/commands/workspace/create.js +62 -62
  36. package/lib/commands/workspace/create.js.map +1 -1
  37. package/lib/commands/workspace/inspect.js +30 -30
  38. package/lib/commands/workspace/inspect.js.map +1 -1
  39. package/lib/commands/workspace/verify.js +38 -38
  40. package/lib/commands/workspace/verify.js.map +1 -1
  41. package/lib/common/agents-doc.js +33 -33
  42. package/lib/common/agents-doc.js.map +1 -1
  43. package/lib/common/apply-catalog-deps.js +15 -15
  44. package/lib/common/apply-catalog-deps.js.map +1 -1
  45. package/lib/common/component-file-name.js +3 -3
  46. package/lib/common/constant.js +85 -84
  47. package/lib/common/constant.js.map +1 -1
  48. package/lib/common/create-app-target.js +46 -46
  49. package/lib/common/create-app-target.js.map +1 -1
  50. package/lib/common/generate-app.js +106 -106
  51. package/lib/common/generate-app.js.map +1 -1
  52. package/lib/common/get-dependencies.js +9 -9
  53. package/lib/common/get-farris-config.js +25 -25
  54. package/lib/common/get-farris-config.js.map +1 -1
  55. package/lib/common/get-version.js +6 -6
  56. package/lib/common/get-vite-config.js +192 -192
  57. package/lib/common/get-vite-config.js.map +1 -1
  58. package/lib/common/lib-package-exports.js +24 -24
  59. package/lib/common/lib-package-exports.js.map +1 -1
  60. package/lib/common/list-lib-components.js +23 -23
  61. package/lib/common/list-lib-components.js.map +1 -1
  62. package/lib/common/output.js +164 -164
  63. package/lib/common/output.js.map +1 -1
  64. package/lib/common/project-layout.js +155 -155
  65. package/lib/common/project-layout.js.map +1 -1
  66. package/lib/common/safety.js +172 -172
  67. package/lib/common/safety.js.map +1 -1
  68. package/lib/common/template-manifest.js +18 -18
  69. package/lib/common/template-manifest.js.map +1 -1
  70. package/lib/common/template-renderer.js +114 -114
  71. package/lib/common/template-renderer.js.map +1 -1
  72. package/lib/common/transaction.js +83 -83
  73. package/lib/common/transaction.js.map +1 -1
  74. package/lib/common/verifier.js +187 -187
  75. package/lib/common/verifier.js.map +1 -1
  76. package/lib/common/workspace-contract.js +191 -191
  77. package/lib/common/workspace-contract.js.map +1 -1
  78. package/lib/config/vite-app.js +13 -13
  79. package/lib/config/vite-common.js +20 -20
  80. package/lib/config/vite-common.js.map +1 -1
  81. package/lib/config/vite-component.js +32 -32
  82. package/lib/config/vite-component.js.map +1 -1
  83. package/lib/config/vite-lib.js +26 -26
  84. package/lib/index.js +261 -261
  85. package/lib/plugins/create-app-package-json.js +23 -23
  86. package/lib/plugins/create-component-style.js +44 -44
  87. package/lib/plugins/create-package-json.js +48 -48
  88. package/lib/plugins/create-package-json.js.map +1 -1
  89. package/lib/plugins/dts.js +8 -8
  90. package/lib/plugins/html-system.js +9 -9
  91. package/lib/plugins/mock.js +240 -292
  92. package/lib/plugins/mock.js.map +1 -1
  93. package/lib/plugins/msw-adapter.js +141 -0
  94. package/lib/plugins/msw-adapter.js.map +1 -0
  95. package/lib/plugins/replace.js +17 -17
  96. package/lib/plugins/systemjs-bundle.js +15 -15
  97. package/lib/plugins/systemjs-bundle.js.map +1 -1
  98. package/package.json +6 -1
  99. package/templates/create/AGENTS.md +4 -3
  100. package/templates/micro/mock/README.md +39 -26
  101. package/templates/micro/mock/tsconfig.json +10 -0
  102. package/templates/micro/package.json +1 -0
  103. package/templates/mobile/mock/README.md +39 -26
  104. package/templates/mobile/mock/tsconfig.json +10 -0
  105. package/templates/mobile/package.json +1 -0
  106. package/templates/web/mock/README.md +39 -26
  107. package/templates/web/mock/tsconfig.json +10 -0
  108. package/templates/web/package.json +1 -0
@@ -1,132 +1,132 @@
1
- import { resolve } from 'node:path';
2
- import inquirer from 'inquirer';
3
- import { ExitCode } from '../common/constant.js';
4
- import { generateApp } from '../common/generate-app.js';
5
- import { fail, logWarn, sendJson, setJsonMode } from '../common/output.js';
6
- import { findWorkspaceRoot } from '../common/project-layout.js';
7
- import { assertTargetDirectoryFree, CreateAppError, DEFAULT_APP_FORMAT, DEFAULT_LIB_FORMATS, parseFormatsFlag, resolveNonInteractiveOptions, resolvePackageName, validateCliInput } from './create-app-options.js';
8
- const prompt = inquirer.createPromptModule();
9
- const questions = [
10
- {
11
- type: 'input',
12
- name: 'name',
13
- message: 'What is your project name?',
14
- default: 'my-project'
15
- },
16
- {
17
- type: 'list',
18
- name: 'type',
19
- message: 'What type of project is this?',
20
- choices: ['app', 'lib']
21
- },
22
- {
23
- type: 'list',
24
- name: 'platform',
25
- message: 'What platform of project is this?',
26
- choices: ['web', 'mobile'],
27
- when: (response) => response.type === 'app'
28
- },
29
- {
30
- type: 'checkbox',
31
- name: 'formats',
32
- message: 'What output format of project is this?',
33
- choices: ['es', 'cjs', 'umd', 'systemjs'],
34
- default: [...DEFAULT_LIB_FORMATS],
35
- when: (response) => response.type === 'lib'
36
- },
37
- {
38
- type: 'list',
39
- name: 'format',
40
- message: 'What output format of project is this? (iife: IBP 微前端单文件产物)',
41
- choices: ['iife', 'es', 'umd', 'systemjs'],
42
- default: DEFAULT_APP_FORMAT,
43
- when: (response) => response.type === 'app'
44
- }
45
- ];
46
- function toGenerateOptions(answers) {
47
- const packageName = resolvePackageName(answers.name);
48
- if (answers.type === 'lib') {
49
- return { name: answers.name, packageName, type: 'lib', formats: answers.formats };
50
- }
51
- return {
52
- name: answers.name,
53
- packageName,
54
- type: 'app',
55
- platform: answers.platform,
56
- format: answers.format
57
- };
58
- }
59
- function initialAnswers(input) {
60
- const initial = {};
61
- if (input.name) {
62
- initial.name = input.name;
63
- }
64
- if (input.type) {
65
- initial.type = input.type;
66
- }
67
- if (input.platform) {
68
- initial.platform = input.platform;
69
- }
70
- if (input.format) {
71
- initial.format = input.format;
72
- }
73
- if (input.formats !== undefined) {
74
- initial.formats = parseFormatsFlag(input.formats);
75
- }
76
- return initial;
77
- }
78
- function emitCreateAppJson(options) {
79
- sendJson({
80
- command: 'create-app',
81
- ok: true,
82
- name: options.name,
83
- ...(options.packageName ? { packageName: options.packageName } : {}),
84
- type: options.type,
85
- ...(options.platform ? { platform: options.platform } : {}),
86
- ...(options.format ? { format: options.format } : {}),
87
- ...(options.formats ? { formats: options.formats } : {}),
88
- target: resolve(process.cwd(), options.name)
89
- });
90
- }
91
- function failCreateApp(error) {
92
- const message = error instanceof Error ? error.message : String(error);
93
- const exitCode = error instanceof CreateAppError ? error.exitCode : ExitCode.GENERAL_ERROR;
94
- fail({
95
- command: 'create-app',
96
- error: message,
97
- exitCode
98
- });
99
- }
100
- export async function createApp(nameArg, commandOptions = {}) {
101
- const isJson = !!commandOptions.json;
102
- setJsonMode(isJson);
103
- // 检测到 workspace 时只提示,不改变 create-app 的对外语义(设计文档 §10)
104
- if (findWorkspaceRoot(process.cwd())) {
105
- logWarn('检测到当前目录位于 pnpm workspace 内:建议改用 `farris-cli add-app <name>` / `farris-cli add-lib <name>`,由 CLI 负责落盘位置、catalog 改写与校验。');
106
- }
107
- const input = { ...commandOptions, name: nameArg ?? commandOptions.name };
108
- try {
109
- validateCliInput(input);
110
- const skipPrompt = !!(input.yes || input.json);
111
- let options;
112
- if (skipPrompt) {
113
- options = resolveNonInteractiveOptions(input);
114
- }
115
- else {
116
- const answers = await prompt(questions, initialAnswers(input));
117
- options = toGenerateOptions(answers);
118
- }
119
- assertTargetDirectoryFree(options.name);
120
- generateApp(options);
121
- if (isJson) {
122
- emitCreateAppJson(options);
123
- }
124
- }
125
- catch (error) {
126
- if (isJson) {
127
- failCreateApp(error);
128
- }
129
- throw error;
130
- }
131
- }
1
+ import { resolve } from 'node:path';
2
+ import inquirer from 'inquirer';
3
+ import { ExitCode } from '../common/constant.js';
4
+ import { generateApp } from '../common/generate-app.js';
5
+ import { fail, logWarn, sendJson, setJsonMode } from '../common/output.js';
6
+ import { findWorkspaceRoot } from '../common/project-layout.js';
7
+ import { assertTargetDirectoryFree, CreateAppError, DEFAULT_APP_FORMAT, DEFAULT_LIB_FORMATS, parseFormatsFlag, resolveNonInteractiveOptions, resolvePackageName, validateCliInput } from './create-app-options.js';
8
+ const prompt = inquirer.createPromptModule();
9
+ const questions = [
10
+ {
11
+ type: 'input',
12
+ name: 'name',
13
+ message: 'What is your project name?',
14
+ default: 'my-project'
15
+ },
16
+ {
17
+ type: 'list',
18
+ name: 'type',
19
+ message: 'What type of project is this?',
20
+ choices: ['app', 'lib']
21
+ },
22
+ {
23
+ type: 'list',
24
+ name: 'platform',
25
+ message: 'What platform of project is this?',
26
+ choices: ['web', 'mobile'],
27
+ when: (response) => response.type === 'app'
28
+ },
29
+ {
30
+ type: 'checkbox',
31
+ name: 'formats',
32
+ message: 'What output format of project is this?',
33
+ choices: ['es', 'cjs', 'umd', 'systemjs'],
34
+ default: [...DEFAULT_LIB_FORMATS],
35
+ when: (response) => response.type === 'lib'
36
+ },
37
+ {
38
+ type: 'list',
39
+ name: 'format',
40
+ message: 'What output format of project is this? (iife: IBP 微前端单文件产物)',
41
+ choices: ['iife', 'es', 'umd', 'systemjs'],
42
+ default: DEFAULT_APP_FORMAT,
43
+ when: (response) => response.type === 'app'
44
+ }
45
+ ];
46
+ function toGenerateOptions(answers) {
47
+ const packageName = resolvePackageName(answers.name);
48
+ if (answers.type === 'lib') {
49
+ return { name: answers.name, packageName, type: 'lib', formats: answers.formats };
50
+ }
51
+ return {
52
+ name: answers.name,
53
+ packageName,
54
+ type: 'app',
55
+ platform: answers.platform,
56
+ format: answers.format
57
+ };
58
+ }
59
+ function initialAnswers(input) {
60
+ const initial = {};
61
+ if (input.name) {
62
+ initial.name = input.name;
63
+ }
64
+ if (input.type) {
65
+ initial.type = input.type;
66
+ }
67
+ if (input.platform) {
68
+ initial.platform = input.platform;
69
+ }
70
+ if (input.format) {
71
+ initial.format = input.format;
72
+ }
73
+ if (input.formats !== undefined) {
74
+ initial.formats = parseFormatsFlag(input.formats);
75
+ }
76
+ return initial;
77
+ }
78
+ function emitCreateAppJson(options) {
79
+ sendJson({
80
+ command: 'create-app',
81
+ ok: true,
82
+ name: options.name,
83
+ ...(options.packageName ? { packageName: options.packageName } : {}),
84
+ type: options.type,
85
+ ...(options.platform ? { platform: options.platform } : {}),
86
+ ...(options.format ? { format: options.format } : {}),
87
+ ...(options.formats ? { formats: options.formats } : {}),
88
+ target: resolve(process.cwd(), options.name)
89
+ });
90
+ }
91
+ function failCreateApp(error) {
92
+ const message = error instanceof Error ? error.message : String(error);
93
+ const exitCode = error instanceof CreateAppError ? error.exitCode : ExitCode.GENERAL_ERROR;
94
+ fail({
95
+ command: 'create-app',
96
+ error: message,
97
+ exitCode
98
+ });
99
+ }
100
+ export async function createApp(nameArg, commandOptions = {}) {
101
+ const isJson = !!commandOptions.json;
102
+ setJsonMode(isJson);
103
+ // 检测到 workspace 时只提示,不改变 create-app 的对外语义(设计文档 §10)
104
+ if (findWorkspaceRoot(process.cwd())) {
105
+ logWarn('检测到当前目录位于 pnpm workspace 内:建议改用 `farris-cli add-app <name>` / `farris-cli add-lib <name>`,由 CLI 负责落盘位置、catalog 改写与校验。');
106
+ }
107
+ const input = { ...commandOptions, name: nameArg ?? commandOptions.name };
108
+ try {
109
+ validateCliInput(input);
110
+ const skipPrompt = !!(input.yes || input.json);
111
+ let options;
112
+ if (skipPrompt) {
113
+ options = resolveNonInteractiveOptions(input);
114
+ }
115
+ else {
116
+ const answers = await prompt(questions, initialAnswers(input));
117
+ options = toGenerateOptions(answers);
118
+ }
119
+ assertTargetDirectoryFree(options.name);
120
+ generateApp(options);
121
+ if (isJson) {
122
+ emitCreateAppJson(options);
123
+ }
124
+ }
125
+ catch (error) {
126
+ if (isJson) {
127
+ failCreateApp(error);
128
+ }
129
+ throw error;
130
+ }
131
+ }
132
132
  //# sourceMappingURL=create-app.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-app.js","sourceRoot":"","sources":["../../src/commands/create-app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-app.js","sourceRoot":"","sources":["../../src/commands/create-app.ts"],"names":[],"mappings":"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"}
@@ -1,59 +1,59 @@
1
- /** 需要取值的选项:`--app` 与 `--no-app` 是隐藏兼容别名,不进帮助文本。 */
2
- const VALUE_FLAGS = {
3
- '--app': 'project',
4
- '--project': 'project',
5
- '--style': 'style',
6
- '--format': 'format',
7
- '--formats': 'formats',
8
- '--platform': 'platform',
9
- '--type': 'type'
10
- };
11
- export function parseCreateArgv(argv) {
12
- const options = {};
13
- let name;
14
- for (let i = 0; i < argv.length; i++) {
15
- const arg = argv[i];
16
- if (arg === '--json') {
17
- options.json = true;
18
- }
19
- else if (arg === '--install') {
20
- options.install = true;
21
- }
22
- else if (arg === '--force') {
23
- options.force = true;
24
- }
25
- else if (arg === '-y' || arg === '--yes') {
26
- options.yes = true;
27
- }
28
- else if (arg === '--no-app' || arg === '--no-project') {
29
- options.noProject = true;
30
- }
31
- else if (VALUE_FLAGS[arg]) {
32
- const value = argv[i + 1];
33
- if (value === undefined || value.startsWith('-')) {
34
- throw new Error(`参数 ${arg} 缺少取值`);
35
- }
36
- options[VALUE_FLAGS[arg]] = value;
37
- i++;
38
- }
39
- else if (arg.startsWith('--') && arg.includes('=')) {
40
- const [flag, value] = arg.split(/=(.*)/s);
41
- const key = VALUE_FLAGS[flag];
42
- if (!key) {
43
- throw new Error(`未知参数: ${flag}(运行 farris-cli create --help 查看用法)`);
44
- }
45
- options[key] = value;
46
- }
47
- else if (arg.startsWith('-')) {
48
- throw new Error(`未知参数: ${arg}(运行 farris-cli create --help 查看用法)`);
49
- }
50
- else if (name === undefined) {
51
- name = arg;
52
- }
53
- else {
54
- throw new Error(`多余的参数: ${arg}(只接受一个 workspace 名)`);
55
- }
56
- }
57
- return { name, options };
58
- }
1
+ /** 需要取值的选项:`--app` 与 `--no-app` 是隐藏兼容别名,不进帮助文本。 */
2
+ const VALUE_FLAGS = {
3
+ '--app': 'project',
4
+ '--project': 'project',
5
+ '--style': 'style',
6
+ '--format': 'format',
7
+ '--formats': 'formats',
8
+ '--platform': 'platform',
9
+ '--type': 'type'
10
+ };
11
+ export function parseCreateArgv(argv) {
12
+ const options = {};
13
+ let name;
14
+ for (let i = 0; i < argv.length; i++) {
15
+ const arg = argv[i];
16
+ if (arg === '--json') {
17
+ options.json = true;
18
+ }
19
+ else if (arg === '--install') {
20
+ options.install = true;
21
+ }
22
+ else if (arg === '--force') {
23
+ options.force = true;
24
+ }
25
+ else if (arg === '-y' || arg === '--yes') {
26
+ options.yes = true;
27
+ }
28
+ else if (arg === '--no-app' || arg === '--no-project') {
29
+ options.noProject = true;
30
+ }
31
+ else if (VALUE_FLAGS[arg]) {
32
+ const value = argv[i + 1];
33
+ if (value === undefined || value.startsWith('-')) {
34
+ throw new Error(`参数 ${arg} 缺少取值`);
35
+ }
36
+ options[VALUE_FLAGS[arg]] = value;
37
+ i++;
38
+ }
39
+ else if (arg.startsWith('--') && arg.includes('=')) {
40
+ const [flag, value] = arg.split(/=(.*)/s);
41
+ const key = VALUE_FLAGS[flag];
42
+ if (!key) {
43
+ throw new Error(`未知参数: ${flag}(运行 farris-cli create --help 查看用法)`);
44
+ }
45
+ options[key] = value;
46
+ }
47
+ else if (arg.startsWith('-')) {
48
+ throw new Error(`未知参数: ${arg}(运行 farris-cli create --help 查看用法)`);
49
+ }
50
+ else if (name === undefined) {
51
+ name = arg;
52
+ }
53
+ else {
54
+ throw new Error(`多余的参数: ${arg}(只接受一个 workspace 名)`);
55
+ }
56
+ }
57
+ return { name, options };
58
+ }
59
59
  //# sourceMappingURL=create-options.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-options.js","sourceRoot":"","sources":["../../src/commands/create-options.ts"],"names":[],"mappings":"AAiBA,mDAAmD;AACnD,MAAM,WAAW,GAAyC;IACxD,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,SAAS;IACtB,SAAS,EAAE,OAAO;IAClB,UAAU,EAAE,QAAQ;IACpB,WAAW,EAAE,SAAS;IACtB,YAAY,EAAE,UAAU;IACxB,QAAQ,EAAE,MAAM;CACjB,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,IAAc;IAC5C,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,IAAI,IAAwB,CAAC;IAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,KAAK,QAAQ,EAAE;YACpB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;SACrB;aAAM,IAAI,GAAG,KAAK,WAAW,EAAE;YAC9B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;SACxB;aAAM,IAAI,GAAG,KAAK,SAAS,EAAE;YAC5B,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;SACtB;aAAM,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,OAAO,EAAE;YAC1C,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;SACpB;aAAM,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,cAAc,EAAE;YACvD,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;SAC1B;aAAM,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE;YAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBAChD,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC;aACnC;YACD,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,KAAc,CAAC;YAC3C,CAAC,EAAE,CAAC;SACL;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACpD,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC1C,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,CAAC,GAAG,EAAE;gBACR,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,oCAAoC,CAAC,CAAC;aACpE;YACD,OAAO,CAAC,GAAG,CAAC,GAAG,KAAc,CAAC;SAC/B;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,SAAS,GAAG,oCAAoC,CAAC,CAAC;SACnE;aAAM,IAAI,IAAI,KAAK,SAAS,EAAE;YAC7B,IAAI,GAAG,GAAG,CAAC;SACZ;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,qBAAqB,CAAC,CAAC;SACrD;KACF;IAED,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"create-options.js","sourceRoot":"","sources":["../../src/commands/create-options.ts"],"names":[],"mappings":"AAiBA,mDAAmD;AACnD,MAAM,WAAW,GAAyC;IACxD,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,SAAS;IACtB,SAAS,EAAE,OAAO;IAClB,UAAU,EAAE,QAAQ;IACpB,WAAW,EAAE,SAAS;IACtB,YAAY,EAAE,UAAU;IACxB,QAAQ,EAAE,MAAM;CACjB,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,IAAc;IAC5C,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,IAAI,IAAwB,CAAC;IAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QACtB,CAAC;aAAM,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YAC/B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACzB,CAAC;aAAM,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;QACvB,CAAC;aAAM,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YAC3C,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;QACrB,CAAC;aAAM,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,cAAc,EAAE,CAAC;YACxD,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;QAC3B,CAAC;aAAM,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjD,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC;YACpC,CAAC;YACD,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,KAAc,CAAC;YAC3C,CAAC,EAAE,CAAC;QACN,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACrD,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC1C,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,oCAAoC,CAAC,CAAC;YACrE,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,GAAG,KAAc,CAAC;QAChC,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,SAAS,GAAG,oCAAoC,CAAC,CAAC;QACpE,CAAC;aAAM,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,GAAG,GAAG,CAAC;QACb,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,qBAAqB,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC3B,CAAC"}