zard-cli 1.0.0-beta.84 → 1.1.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +60 -60
- package/commands/add/component-installer.d.ts +2 -0
- package/commands/add/component-installer.d.ts.map +1 -1
- package/commands/add/component-installer.js +9 -4
- package/commands/add/component-installer.js.map +1 -1
- package/commands/add/component-selector.d.ts +6 -0
- package/commands/add/component-selector.d.ts.map +1 -1
- package/commands/add/component-selector.js +9 -27
- package/commands/add/component-selector.js.map +1 -1
- package/commands/add/dark-mode-setup.d.ts.map +1 -1
- package/commands/add/dark-mode-setup.js +2 -11
- package/commands/add/dark-mode-setup.js.map +1 -1
- package/commands/add/index.d.ts.map +1 -1
- package/commands/add/index.js +106 -86
- package/commands/add/index.js.map +1 -1
- package/commands/add/wizard.d.ts +31 -0
- package/commands/add/wizard.d.ts.map +1 -0
- package/commands/add/wizard.js +289 -0
- package/commands/add/wizard.js.map +1 -0
- package/commands/init/config-prompter.d.ts +47 -3
- package/commands/init/config-prompter.d.ts.map +1 -1
- package/commands/init/config-prompter.js +76 -74
- package/commands/init/config-prompter.js.map +1 -1
- package/commands/init/dependencies.d.ts +1 -8
- package/commands/init/dependencies.d.ts.map +1 -1
- package/commands/init/dependencies.js +35 -17
- package/commands/init/dependencies.js.map +1 -1
- package/commands/init/index.d.ts.map +1 -1
- package/commands/init/index.js +129 -81
- package/commands/init/index.js.map +1 -1
- package/commands/init/project-kind.d.ts +82 -0
- package/commands/init/project-kind.d.ts.map +1 -0
- package/commands/init/project-kind.js +166 -0
- package/commands/init/project-kind.js.map +1 -0
- package/commands/init/steps.d.ts +16 -0
- package/commands/init/steps.d.ts.map +1 -0
- package/commands/init/steps.js +151 -0
- package/commands/init/steps.js.map +1 -0
- package/commands/init/tailwind-setup.d.ts +9 -2
- package/commands/init/tailwind-setup.d.ts.map +1 -1
- package/commands/init/tailwind-setup.js +33 -12
- package/commands/init/tailwind-setup.js.map +1 -1
- package/commands/init/tsconfig-updater.d.ts +8 -1
- package/commands/init/tsconfig-updater.d.ts.map +1 -1
- package/commands/init/tsconfig-updater.js +30 -11
- package/commands/init/tsconfig-updater.js.map +1 -1
- package/commands/init/update-angular-config.d.ts.map +1 -1
- package/commands/init/update-angular-config.js +28 -50
- package/commands/init/update-angular-config.js.map +1 -1
- package/commands/init/vite-setup.d.ts +10 -0
- package/commands/init/vite-setup.d.ts.map +1 -0
- package/commands/init/vite-setup.js +60 -0
- package/commands/init/vite-setup.js.map +1 -0
- package/commands/init/wizard.d.ts +30 -0
- package/commands/init/wizard.d.ts.map +1 -0
- package/commands/init/wizard.js +560 -0
- package/commands/init/wizard.js.map +1 -0
- package/core/registry/registry-data.d.ts.map +1 -1
- package/core/registry/registry-data.js +8 -45
- package/core/registry/registry-data.js.map +1 -1
- package/index.js +5 -3
- package/index.js.map +1 -1
- package/package.json +58 -61
- package/ui/blocks.d.ts +70 -0
- package/ui/blocks.d.ts.map +1 -0
- package/ui/blocks.js +116 -0
- package/ui/blocks.js.map +1 -0
- package/ui/brand.d.ts +14 -0
- package/ui/brand.d.ts.map +1 -0
- package/ui/brand.js +35 -0
- package/ui/brand.js.map +1 -0
- package/ui/engine/animation/index.d.ts +39 -0
- package/ui/engine/animation/index.d.ts.map +1 -0
- package/ui/engine/animation/index.js +103 -0
- package/ui/engine/animation/index.js.map +1 -0
- package/ui/engine/ansi/index.d.ts +52 -0
- package/ui/engine/ansi/index.d.ts.map +1 -0
- package/ui/engine/ansi/index.js +117 -0
- package/ui/engine/ansi/index.js.map +1 -0
- package/ui/engine/components/index.d.ts +211 -0
- package/ui/engine/components/index.d.ts.map +1 -0
- package/ui/engine/components/index.js +109 -0
- package/ui/engine/components/index.js.map +1 -0
- package/ui/engine/cursor/index.d.ts +17 -0
- package/ui/engine/cursor/index.d.ts.map +1 -0
- package/ui/engine/cursor/index.js +41 -0
- package/ui/engine/cursor/index.js.map +1 -0
- package/ui/engine/diff/index.d.ts +27 -0
- package/ui/engine/diff/index.d.ts.map +1 -0
- package/ui/engine/diff/index.js +57 -0
- package/ui/engine/diff/index.js.map +1 -0
- package/ui/engine/events/index.d.ts +24 -0
- package/ui/engine/events/index.d.ts.map +1 -0
- package/ui/engine/events/index.js +60 -0
- package/ui/engine/events/index.js.map +1 -0
- package/ui/engine/focus/index.d.ts +25 -0
- package/ui/engine/focus/index.d.ts.map +1 -0
- package/ui/engine/focus/index.js +77 -0
- package/ui/engine/focus/index.js.map +1 -0
- package/ui/engine/frame/index.d.ts +48 -0
- package/ui/engine/frame/index.d.ts.map +1 -0
- package/ui/engine/frame/index.js +0 -0
- package/ui/engine/frame/index.js.map +1 -0
- package/ui/engine/index.d.ts +28 -0
- package/ui/engine/index.d.ts.map +1 -0
- package/ui/engine/index.js +28 -0
- package/ui/engine/index.js.map +1 -0
- package/ui/engine/input/index.d.ts +36 -0
- package/ui/engine/input/index.d.ts.map +1 -0
- package/ui/engine/input/index.js +224 -0
- package/ui/engine/input/index.js.map +1 -0
- package/ui/engine/layout/index.d.ts +42 -0
- package/ui/engine/layout/index.d.ts.map +1 -0
- package/ui/engine/layout/index.js +241 -0
- package/ui/engine/layout/index.js.map +1 -0
- package/ui/engine/renderer/index.d.ts +43 -0
- package/ui/engine/renderer/index.d.ts.map +1 -0
- package/ui/engine/renderer/index.js +619 -0
- package/ui/engine/renderer/index.js.map +1 -0
- package/ui/engine/scheduler/index.d.ts +22 -0
- package/ui/engine/scheduler/index.d.ts.map +1 -0
- package/ui/engine/scheduler/index.js +77 -0
- package/ui/engine/scheduler/index.js.map +1 -0
- package/ui/engine/screen/index.d.ts +39 -0
- package/ui/engine/screen/index.d.ts.map +1 -0
- package/ui/engine/screen/index.js +255 -0
- package/ui/engine/screen/index.js.map +1 -0
- package/ui/engine/terminal/index.d.ts +38 -0
- package/ui/engine/terminal/index.d.ts.map +1 -0
- package/ui/engine/terminal/index.js +104 -0
- package/ui/engine/terminal/index.js.map +1 -0
- package/ui/engine/testing/index.d.ts +27 -0
- package/ui/engine/testing/index.d.ts.map +1 -0
- package/ui/engine/testing/index.js +63 -0
- package/ui/engine/testing/index.js.map +1 -0
- package/ui/engine/theme/index.d.ts +27 -0
- package/ui/engine/theme/index.d.ts.map +1 -0
- package/ui/engine/theme/index.js +129 -0
- package/ui/engine/theme/index.js.map +1 -0
- package/ui/engine/utils/index.d.ts +12 -0
- package/ui/engine/utils/index.d.ts.map +1 -0
- package/ui/engine/utils/index.js +143 -0
- package/ui/engine/utils/index.js.map +1 -0
- package/ui/gate.d.ts +19 -0
- package/ui/gate.d.ts.map +1 -0
- package/ui/gate.js +36 -0
- package/ui/gate.js.map +1 -0
- package/ui/index.d.ts +18 -0
- package/ui/index.d.ts.map +1 -0
- package/ui/index.js +18 -0
- package/ui/index.js.map +1 -0
- package/ui/log-sink.d.ts +24 -0
- package/ui/log-sink.d.ts.map +1 -0
- package/ui/log-sink.js +35 -0
- package/ui/log-sink.js.map +1 -0
- package/ui/output.d.ts +14 -0
- package/ui/output.d.ts.map +1 -0
- package/ui/output.js +28 -0
- package/ui/output.js.map +1 -0
- package/ui/report.d.ts +30 -0
- package/ui/report.d.ts.map +1 -0
- package/ui/report.js +45 -0
- package/ui/report.js.map +1 -0
- package/ui/runner.d.ts +57 -0
- package/ui/runner.d.ts.map +1 -0
- package/ui/runner.js +119 -0
- package/ui/runner.js.map +1 -0
- package/ui/style.d.ts +24 -0
- package/ui/style.d.ts.map +1 -0
- package/ui/style.js +44 -0
- package/ui/style.js.map +1 -0
- package/ui/testing/fake-tty.d.ts +26 -0
- package/ui/testing/fake-tty.d.ts.map +1 -0
- package/ui/testing/fake-tty.js +61 -0
- package/ui/testing/fake-tty.js.map +1 -0
- package/ui/text-input.d.ts +30 -0
- package/ui/text-input.d.ts.map +1 -0
- package/ui/text-input.js +87 -0
- package/ui/text-input.js.map +1 -0
- package/ui/theme.d.ts +10 -0
- package/ui/theme.d.ts.map +1 -0
- package/ui/theme.js +20 -0
- package/ui/theme.js.map +1 -0
- package/utils/config.d.ts +22 -0
- package/utils/config.d.ts.map +1 -1
- package/utils/config.js +26 -1
- package/utils/config.js.map +1 -1
- package/utils/get-project-info.d.ts +29 -0
- package/utils/get-project-info.d.ts.map +1 -1
- package/utils/get-project-info.js +176 -1
- package/utils/get-project-info.js.map +1 -1
- package/utils/logger.d.ts +13 -1
- package/utils/logger.d.ts.map +1 -1
- package/utils/logger.js +95 -15
- package/utils/logger.js.map +1 -1
- package/utils/package-manager.d.ts +42 -1
- package/utils/package-manager.d.ts.map +1 -1
- package/utils/package-manager.js +204 -11
- package/utils/package-manager.js.map +1 -1
- package/utils/registry.d.ts +12 -2
- package/utils/registry.d.ts.map +1 -1
- package/utils/registry.js +21 -6
- package/utils/registry.js.map +1 -1
- package/utils/source-file.d.ts +40 -0
- package/utils/source-file.d.ts.map +1 -0
- package/utils/source-file.js +104 -0
- package/utils/source-file.js.map +1 -0
package/ui/text-input.js
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Edição de uma linha de texto num campo do wizard.
|
|
3
|
+
*
|
|
4
|
+
* O campo aceitava só duas coisas — digitar no fim e apagar de trás para a
|
|
5
|
+
* frente. Quem quisesse trocar o meio de um alias (`@/shared/components` para
|
|
6
|
+
* `@app/shared/components`) apertava as setas, não via nada acontecer e ficava
|
|
7
|
+
* sem saída a não ser apagar tudo e redigitar. Aqui o cursor é de verdade:
|
|
8
|
+
* anda, insere no meio, apaga para os dois lados.
|
|
9
|
+
*/
|
|
10
|
+
export function startInput(value) {
|
|
11
|
+
return { value, caret: [...value].length, pristine: true };
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Aplica uma tecla ao campo.
|
|
15
|
+
*
|
|
16
|
+
* Devolve `null` quando a tecla não é de edição — `enter` e `escape` pertencem
|
|
17
|
+
* ao fluxo do wizard, e é ele quem decide o que fazer com elas.
|
|
18
|
+
*/
|
|
19
|
+
export function editInput(state, event) {
|
|
20
|
+
const chars = [...state.value];
|
|
21
|
+
const caret = clamp(state.caret, chars.length);
|
|
22
|
+
if (event.ctrl)
|
|
23
|
+
return editWithControl(state, chars, caret, event.key);
|
|
24
|
+
if (event.alt)
|
|
25
|
+
return null;
|
|
26
|
+
if (event.key.length === 1) {
|
|
27
|
+
// A sugestão inteira sai na primeira tecla: quem já sabe o que quer digita
|
|
28
|
+
// direto, sem apagar caractere por caractere o que a CLI propôs.
|
|
29
|
+
if (state.pristine)
|
|
30
|
+
return { value: event.key, caret: 1, pristine: false };
|
|
31
|
+
chars.splice(caret, 0, event.key);
|
|
32
|
+
return { value: chars.join(''), caret: caret + 1, pristine: false };
|
|
33
|
+
}
|
|
34
|
+
switch (event.key) {
|
|
35
|
+
case 'backspace':
|
|
36
|
+
if (caret === 0)
|
|
37
|
+
return { ...state, caret, pristine: false };
|
|
38
|
+
chars.splice(caret - 1, 1);
|
|
39
|
+
return { value: chars.join(''), caret: caret - 1, pristine: false };
|
|
40
|
+
case 'delete':
|
|
41
|
+
if (caret >= chars.length)
|
|
42
|
+
return { ...state, caret, pristine: false };
|
|
43
|
+
chars.splice(caret, 1);
|
|
44
|
+
return { value: chars.join(''), caret, pristine: false };
|
|
45
|
+
case 'left':
|
|
46
|
+
return { ...state, caret: Math.max(0, caret - 1), pristine: false };
|
|
47
|
+
case 'right':
|
|
48
|
+
return { ...state, caret: Math.min(chars.length, caret + 1), pristine: false };
|
|
49
|
+
case 'home':
|
|
50
|
+
return { ...state, caret: 0, pristine: false };
|
|
51
|
+
case 'end':
|
|
52
|
+
return { ...state, caret: chars.length, pristine: false };
|
|
53
|
+
default:
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/** Os atalhos de linha que qualquer shell oferece. */
|
|
58
|
+
function editWithControl(state, chars, caret, key) {
|
|
59
|
+
switch (key) {
|
|
60
|
+
case 'u': // limpa até o começo
|
|
61
|
+
return { value: chars.slice(caret).join(''), caret: 0, pristine: false };
|
|
62
|
+
case 'k': // limpa até o fim
|
|
63
|
+
return { value: chars.slice(0, caret).join(''), caret, pristine: false };
|
|
64
|
+
case 'w': {
|
|
65
|
+
// apaga a palavra anterior, incluindo os separadores que a antecedem
|
|
66
|
+
let start = caret;
|
|
67
|
+
while (start > 0 && isSeparator(chars[start - 1]))
|
|
68
|
+
start--;
|
|
69
|
+
while (start > 0 && !isSeparator(chars[start - 1]))
|
|
70
|
+
start--;
|
|
71
|
+
return { value: [...chars.slice(0, start), ...chars.slice(caret)].join(''), caret: start, pristine: false };
|
|
72
|
+
}
|
|
73
|
+
case 'a':
|
|
74
|
+
return { ...state, caret: 0, pristine: false };
|
|
75
|
+
case 'e':
|
|
76
|
+
return { ...state, caret: chars.length, pristine: false };
|
|
77
|
+
default:
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
function isSeparator(char) {
|
|
82
|
+
return char === ' ' || char === '/' || char === '\\' || char === '.' || char === '-';
|
|
83
|
+
}
|
|
84
|
+
function clamp(caret, length) {
|
|
85
|
+
return Math.max(0, Math.min(caret, length));
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=text-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-input.js","sourceRoot":"","sources":["../../src/ui/text-input.ts"],"names":[],"mappings":"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"}
|
package/ui/theme.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tema da CLI — tokens semânticos consumidos por toda a UI do terminal.
|
|
3
|
+
*
|
|
4
|
+
* A paleta segue a base neutra do ZardUI (zinc) para texto e bordas, com os
|
|
5
|
+
* acentos reservados para estado: primary marca o passo ativo e o cursor,
|
|
6
|
+
* success/warning/danger comunicam o resultado de cada etapa.
|
|
7
|
+
*/
|
|
8
|
+
import { type Theme } from './engine/index.js';
|
|
9
|
+
export declare const zardTheme: Theme;
|
|
10
|
+
//# sourceMappingURL=theme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/ui/theme.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAe,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE5D,eAAO,MAAM,SAAS,EAAE,KAUtB,CAAC"}
|
package/ui/theme.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tema da CLI — tokens semânticos consumidos por toda a UI do terminal.
|
|
3
|
+
*
|
|
4
|
+
* A paleta segue a base neutra do ZardUI (zinc) para texto e bordas, com os
|
|
5
|
+
* acentos reservados para estado: primary marca o passo ativo e o cursor,
|
|
6
|
+
* success/warning/danger comunicam o resultado de cada etapa.
|
|
7
|
+
*/
|
|
8
|
+
import { createTheme } from './engine/index.js';
|
|
9
|
+
export const zardTheme = createTheme({
|
|
10
|
+
primary: '#7c93ff',
|
|
11
|
+
secondary: '#a78bfa',
|
|
12
|
+
success: '#4ade80',
|
|
13
|
+
warning: '#fbbf24',
|
|
14
|
+
danger: '#f87171',
|
|
15
|
+
muted: '#a1a1aa',
|
|
16
|
+
foreground: '#fafafa',
|
|
17
|
+
background: '#09090b',
|
|
18
|
+
border: '#27272a',
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=theme.js.map
|
package/ui/theme.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/ui/theme.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAc,MAAM,mBAAmB,CAAC;AAE5D,MAAM,CAAC,MAAM,SAAS,GAAU,WAAW,CAAC;IAC1C,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,SAAS;IACpB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,SAAS;IAChB,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,SAAS;IACrB,MAAM,EAAE,SAAS;CAClB,CAAC,CAAC"}
|
package/utils/config.d.ts
CHANGED
|
@@ -5,6 +5,13 @@ declare const configSchema: z.ZodObject<{
|
|
|
5
5
|
style: z.ZodDefault<z.ZodEnum<{
|
|
6
6
|
css: "css";
|
|
7
7
|
}>>;
|
|
8
|
+
projectType: z.ZodDefault<z.ZodEnum<{
|
|
9
|
+
angular: "angular";
|
|
10
|
+
"angular-library": "angular-library";
|
|
11
|
+
nx: "nx";
|
|
12
|
+
"nx-library": "nx-library";
|
|
13
|
+
analog: "analog";
|
|
14
|
+
}>>;
|
|
8
15
|
packageManager: z.ZodDefault<z.ZodEnum<{
|
|
9
16
|
npm: "npm";
|
|
10
17
|
yarn: "yarn";
|
|
@@ -27,6 +34,20 @@ declare const configSchema: z.ZodObject<{
|
|
|
27
34
|
export type Config = z.infer<typeof configSchema>;
|
|
28
35
|
export declare const DEFAULT_CONFIG: Config;
|
|
29
36
|
export declare function getConfig(cwd: string): Promise<Config | null>;
|
|
37
|
+
/**
|
|
38
|
+
* Separa o prefixo do alias do caminho que vem depois dele.
|
|
39
|
+
*
|
|
40
|
+
* `@`, `@app`, `~` — o nome não importa: o prefixo é um apelido para `baseUrl`,
|
|
41
|
+
* e o resto é o caminho dentro do projeto. Tratar só `@/` fazia um alias como
|
|
42
|
+
* `@app/components` escapar da substituição e virar uma pasta literal chamada
|
|
43
|
+
* `@app` na raiz, fora de qualquer coisa que o tsconfig mapeie.
|
|
44
|
+
*/
|
|
45
|
+
export declare function splitAlias(alias: string): {
|
|
46
|
+
prefix: string;
|
|
47
|
+
rest: string;
|
|
48
|
+
};
|
|
49
|
+
/** O prefixo do alias, com `/*` — a chave que o tsconfig precisa mapear. */
|
|
50
|
+
export declare function aliasPattern(alias: string): string;
|
|
30
51
|
export declare function resolveAliasToPath(alias: string, baseUrl: string): string;
|
|
31
52
|
export declare function resolveConfigPaths(cwd: string, config: Config): Promise<{
|
|
32
53
|
resolvedPaths: {
|
|
@@ -39,6 +60,7 @@ export declare function resolveConfigPaths(cwd: string, config: Config): Promise
|
|
|
39
60
|
};
|
|
40
61
|
appConfigFile: string;
|
|
41
62
|
style: "css";
|
|
63
|
+
projectType: "angular" | "angular-library" | "nx" | "nx-library" | "analog";
|
|
42
64
|
packageManager: "npm" | "yarn" | "pnpm" | "bun";
|
|
43
65
|
tailwind: {
|
|
44
66
|
css: string;
|
package/utils/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgBxB,QAAA,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgBxB,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA6BhB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD,eAAO,MAAM,cAAc,EAAE,MAgB5B,CAAC;AAEF,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAqBnE;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAO1E;AAED,4EAA4E;AAC5E,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAKzE;AAED,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;GAcnE"}
|
package/utils/config.js
CHANGED
|
@@ -19,6 +19,9 @@ const configSchema = z.object({
|
|
|
19
19
|
$schema: z.string().optional(),
|
|
20
20
|
appConfigFile: z.string().default('src/app/app.config.ts'),
|
|
21
21
|
style: z.enum(['css']).default('css'),
|
|
22
|
+
// Ausente nos components.json escritos antes do menu de tipo de projeto;
|
|
23
|
+
// aplicação Angular é o que eles descrevem.
|
|
24
|
+
projectType: z.enum(['angular', 'angular-library', 'nx', 'nx-library', 'analog']).default('angular'),
|
|
22
25
|
packageManager: z.enum(['npm', 'yarn', 'pnpm', 'bun']).default('npm'),
|
|
23
26
|
registryUrl: z.string().optional(),
|
|
24
27
|
tailwind: z
|
|
@@ -44,6 +47,7 @@ const configSchema = z.object({
|
|
|
44
47
|
});
|
|
45
48
|
export const DEFAULT_CONFIG = {
|
|
46
49
|
style: 'css',
|
|
50
|
+
projectType: 'angular',
|
|
47
51
|
appConfigFile: 'src/app/app.config.ts',
|
|
48
52
|
packageManager: 'npm',
|
|
49
53
|
tailwind: {
|
|
@@ -78,8 +82,29 @@ export async function getConfig(cwd) {
|
|
|
78
82
|
throw new ConfigError('Invalid configuration file: components.json');
|
|
79
83
|
}
|
|
80
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* Separa o prefixo do alias do caminho que vem depois dele.
|
|
87
|
+
*
|
|
88
|
+
* `@`, `@app`, `~` — o nome não importa: o prefixo é um apelido para `baseUrl`,
|
|
89
|
+
* e o resto é o caminho dentro do projeto. Tratar só `@/` fazia um alias como
|
|
90
|
+
* `@app/components` escapar da substituição e virar uma pasta literal chamada
|
|
91
|
+
* `@app` na raiz, fora de qualquer coisa que o tsconfig mapeie.
|
|
92
|
+
*/
|
|
93
|
+
export function splitAlias(alias) {
|
|
94
|
+
const clean = alias.replace(/\/+$/, '');
|
|
95
|
+
const separator = clean.indexOf('/');
|
|
96
|
+
if (separator === -1)
|
|
97
|
+
return { prefix: clean, rest: '' };
|
|
98
|
+
return { prefix: clean.slice(0, separator), rest: clean.slice(separator + 1) };
|
|
99
|
+
}
|
|
100
|
+
/** O prefixo do alias, com `/*` — a chave que o tsconfig precisa mapear. */
|
|
101
|
+
export function aliasPattern(alias) {
|
|
102
|
+
return `${splitAlias(alias).prefix}/*`;
|
|
103
|
+
}
|
|
81
104
|
export function resolveAliasToPath(alias, baseUrl) {
|
|
82
|
-
|
|
105
|
+
const { rest } = splitAlias(alias);
|
|
106
|
+
const base = baseUrl.replace(/\/+$/, '');
|
|
107
|
+
return rest ? `${base}/${rest}` : base;
|
|
83
108
|
}
|
|
84
109
|
export async function resolveConfigPaths(cwd, config) {
|
|
85
110
|
const { baseUrl, aliases } = config;
|
package/utils/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Qual toolchain compila o projeto.
|
|
3
|
+
*
|
|
4
|
+
* Analog troca o build do Angular por Vite, e com isso troca também onde o
|
|
5
|
+
* Tailwind é configurado: plugin no `vite.config.ts` em vez de `.postcssrc.json`.
|
|
6
|
+
*/
|
|
7
|
+
export type ProjectFlavor = 'angular' | 'analog';
|
|
8
|
+
/** Um projeto declarado no workspace — `angular.json` ou `project.json` do Nx. */
|
|
9
|
+
export type WorkspaceProject = {
|
|
10
|
+
name: string;
|
|
11
|
+
projectType: 'application' | 'library';
|
|
12
|
+
/** Raiz do projeto, relativa ao workspace (`apps/web`, ou `''` no app único). */
|
|
13
|
+
root: string;
|
|
14
|
+
sourceRoot: string;
|
|
15
|
+
flavor: ProjectFlavor;
|
|
16
|
+
/** Os `styles` do target de build, relativos ao workspace. */
|
|
17
|
+
styles: string[];
|
|
18
|
+
/** O `index` do target de build, quando declarado. */
|
|
19
|
+
index: string | null;
|
|
20
|
+
};
|
|
1
21
|
export type ProjectInfo = {
|
|
2
22
|
framework: 'angular' | 'unknown';
|
|
23
|
+
/** Onde o package.json foi encontrado — a raiz do workspace. */
|
|
24
|
+
root: string;
|
|
25
|
+
/** Quem gerencia o workspace: define onde os projetos e os paths do TS vivem. */
|
|
26
|
+
workspace: 'angular' | 'nx';
|
|
3
27
|
hasTypeScript: boolean;
|
|
4
28
|
hasTailwind: boolean;
|
|
5
29
|
hasNx: boolean;
|
|
30
|
+
hasAnalog: boolean;
|
|
31
|
+
/** O tsconfig que guarda `compilerOptions.paths` — `tsconfig.base.json` no Nx. */
|
|
32
|
+
tsconfigFile: string;
|
|
6
33
|
angularVersion: string | null;
|
|
7
34
|
angularVersionRaw: string | null;
|
|
35
|
+
/** O que o workspace declara, na ordem em que aparece. Vazio se não houver. */
|
|
36
|
+
projects: WorkspaceProject[];
|
|
8
37
|
};
|
|
9
38
|
export declare function getProjectInfo(cwd: string): Promise<ProjectInfo>;
|
|
10
39
|
//# sourceMappingURL=get-project-info.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-project-info.d.ts","sourceRoot":"","sources":["../../src/utils/get-project-info.ts"],"names":[],"mappings":"AAyBA,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,SAAS,GAAG,SAAS,CAAC;IACjC,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"get-project-info.d.ts","sourceRoot":"","sources":["../../src/utils/get-project-info.ts"],"names":[],"mappings":"AAyBA;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEjD,kFAAkF;AAClF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,aAAa,GAAG,SAAS,CAAC;IACvC,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,aAAa,CAAC;IACtB,8DAA8D;IAC9D,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,sDAAsD;IACtD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,SAAS,GAAG,SAAS,CAAC;IACjC,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,iFAAiF;IACjF,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,kFAAkF;IAClF,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,+EAA+E;IAC/E,QAAQ,EAAE,gBAAgB,EAAE,CAAC;CAC9B,CAAC;AAuMF,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CA4CtE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { access, readFile } from 'node:fs/promises';
|
|
1
|
+
import { access, readdir, readFile } from 'node:fs/promises';
|
|
2
2
|
import * as path from 'path';
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
async function pathExists(filePath) {
|
|
@@ -32,26 +32,201 @@ async function findPackageJson(startDir) {
|
|
|
32
32
|
}
|
|
33
33
|
return null;
|
|
34
34
|
}
|
|
35
|
+
/** Normaliza separadores para o formato que os arquivos de configuração usam. */
|
|
36
|
+
function toPosix(value) {
|
|
37
|
+
return value.split(path.sep).join('/');
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* O que o target de build diz sobre o projeto.
|
|
41
|
+
*
|
|
42
|
+
* `angular.json` chama de `architect`/`builder` e o Nx de `targets`/`executor`,
|
|
43
|
+
* mas o formato das opções é o mesmo — então uma leitura só serve aos dois.
|
|
44
|
+
*/
|
|
45
|
+
function readBuildTarget(targets) {
|
|
46
|
+
const build = targets?.build ?? {};
|
|
47
|
+
const options = build.options ?? {};
|
|
48
|
+
const index = options.index;
|
|
49
|
+
return {
|
|
50
|
+
tool: String(build.builder ?? build.executor ?? ''),
|
|
51
|
+
styles: Array.isArray(options.styles) ? options.styles.filter((style) => typeof style === 'string') : [],
|
|
52
|
+
index: typeof index === 'string' ? index : typeof index?.input === 'string' ? index.input : null,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/** Analog substitui o builder do Angular pelo dele; é assim que se anuncia. */
|
|
56
|
+
function flavorOf(tool) {
|
|
57
|
+
return tool.startsWith('@analogjs/') ? 'analog' : 'angular';
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Lê os projetos do `angular.json`.
|
|
61
|
+
*
|
|
62
|
+
* É o que distingue uma aplicação de uma biblioteca — o package.json não diz.
|
|
63
|
+
* Workspace sem `angular.json` (ou ilegível) devolve lista vazia, e quem chama
|
|
64
|
+
* decide o que fazer com isso.
|
|
65
|
+
*/
|
|
66
|
+
async function readAngularProjects(workspaceRoot) {
|
|
67
|
+
try {
|
|
68
|
+
const workspace = await readJson(path.join(workspaceRoot, 'angular.json'));
|
|
69
|
+
return Object.entries(workspace.projects ?? {}).map(([name, project]) => {
|
|
70
|
+
const config = project;
|
|
71
|
+
const root = config.root === '.' ? '' : (config.root ?? '');
|
|
72
|
+
const build = readBuildTarget(config.architect);
|
|
73
|
+
return {
|
|
74
|
+
name,
|
|
75
|
+
projectType: config.projectType === 'library' ? 'library' : 'application',
|
|
76
|
+
root,
|
|
77
|
+
sourceRoot: config.sourceRoot ?? (root ? `${root}/src` : 'src'),
|
|
78
|
+
flavor: flavorOf(build.tool),
|
|
79
|
+
styles: build.styles,
|
|
80
|
+
index: build.index,
|
|
81
|
+
};
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
return [];
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Onde procurar por `project.json`.
|
|
90
|
+
*
|
|
91
|
+
* O Nx não obriga um layout, mas gera em `apps/` e `libs/` (ou no que
|
|
92
|
+
* `workspaceLayout` disser), e monorepos de pacotes usam `packages/`. Procurar
|
|
93
|
+
* só nesses lugares evita varrer o repositório inteiro atrás de configuração.
|
|
94
|
+
*/
|
|
95
|
+
async function nxSearchRoots(workspaceRoot) {
|
|
96
|
+
try {
|
|
97
|
+
const nxConfig = await readJson(path.join(workspaceRoot, 'nx.json'));
|
|
98
|
+
const layout = nxConfig.workspaceLayout ?? {};
|
|
99
|
+
return [...new Set([layout.appsDir ?? 'apps', layout.libsDir ?? 'libs', 'packages'])];
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
return ['apps', 'libs', 'packages'];
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Diretórios que contêm um `project.json`, até dois níveis abaixo da busca.
|
|
107
|
+
*
|
|
108
|
+
* Um projeto não contém outro, então achar a configuração encerra a descida —
|
|
109
|
+
* o que também impede que `node_modules` de um projeto vire um segundo projeto.
|
|
110
|
+
*/
|
|
111
|
+
async function findProjectDirs(baseDir, depth) {
|
|
112
|
+
if (await pathExists(path.join(baseDir, 'project.json'))) {
|
|
113
|
+
return [baseDir];
|
|
114
|
+
}
|
|
115
|
+
if (depth === 0)
|
|
116
|
+
return [];
|
|
117
|
+
let entries;
|
|
118
|
+
try {
|
|
119
|
+
entries = await readdir(baseDir, { withFileTypes: true });
|
|
120
|
+
}
|
|
121
|
+
catch {
|
|
122
|
+
return [];
|
|
123
|
+
}
|
|
124
|
+
const found = await Promise.all(entries
|
|
125
|
+
.filter(entry => entry.isDirectory() && entry.name !== 'node_modules' && !entry.name.startsWith('.'))
|
|
126
|
+
.map(entry => findProjectDirs(path.join(baseDir, entry.name), depth - 1)));
|
|
127
|
+
return found.flat();
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Lê os projetos de um workspace Nx.
|
|
131
|
+
*
|
|
132
|
+
* O Nx não tem `angular.json`: cada projeto se descreve no próprio
|
|
133
|
+
* `project.json`, e a raiz do projeto é o diretório onde esse arquivo está.
|
|
134
|
+
*/
|
|
135
|
+
async function readNxProjects(workspaceRoot) {
|
|
136
|
+
const searchRoots = await nxSearchRoots(workspaceRoot);
|
|
137
|
+
const dirs = (await Promise.all(searchRoots.map(dir => findProjectDirs(path.join(workspaceRoot, dir), 2)))).flat();
|
|
138
|
+
const projects = await Promise.all(dirs.map(async (dir) => {
|
|
139
|
+
try {
|
|
140
|
+
const config = await readJson(path.join(dir, 'project.json'));
|
|
141
|
+
const root = toPosix(path.relative(workspaceRoot, dir));
|
|
142
|
+
const name = config.name ?? path.basename(dir);
|
|
143
|
+
if (await isE2eProject(dir, name))
|
|
144
|
+
return null;
|
|
145
|
+
const build = readBuildTarget(config.targets);
|
|
146
|
+
return {
|
|
147
|
+
name,
|
|
148
|
+
projectType: nxProjectType(config),
|
|
149
|
+
root,
|
|
150
|
+
sourceRoot: config.sourceRoot ?? `${root}/src`,
|
|
151
|
+
flavor: flavorOf(build.tool),
|
|
152
|
+
styles: build.styles,
|
|
153
|
+
index: build.index,
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
catch {
|
|
157
|
+
return null;
|
|
158
|
+
}
|
|
159
|
+
}));
|
|
160
|
+
// A ordem do sistema de arquivos é arbitrária; ordenar dá ao menu uma lista
|
|
161
|
+
// estável entre execuções.
|
|
162
|
+
return projects
|
|
163
|
+
.filter((project) => project !== null)
|
|
164
|
+
.sort((a, b) => a.root.localeCompare(b.root));
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Aplicação ou biblioteca, quando o `project.json` não declara.
|
|
168
|
+
*
|
|
169
|
+
* Um `serve` só existe para o que é servido; biblioteca nenhuma tem. É a
|
|
170
|
+
* distinção que sobra quando o campo explícito falta.
|
|
171
|
+
*/
|
|
172
|
+
function nxProjectType(config) {
|
|
173
|
+
if (config.projectType === 'library' || config.projectType === 'application') {
|
|
174
|
+
return config.projectType;
|
|
175
|
+
}
|
|
176
|
+
return config.targets?.serve ? 'application' : 'library';
|
|
177
|
+
}
|
|
178
|
+
/** Configurações que só existem num projeto de testes de ponta a ponta. */
|
|
179
|
+
const E2E_CONFIGS = ['playwright.config.ts', 'playwright.config.js', 'cypress.config.ts', 'cypress.config.js'];
|
|
180
|
+
/**
|
|
181
|
+
* Se o projeto existe apenas para rodar testes de ponta a ponta.
|
|
182
|
+
*
|
|
183
|
+
* O gerador do Nx cria `<app>-e2e` declarando `projectType: "application"`, e
|
|
184
|
+
* com isso ele aparecia na lista de apps que podem receber os componentes — mas
|
|
185
|
+
* ali não há `app.config.ts`, CSS global nem build para configurar. O sufixo é
|
|
186
|
+
* a convenção do Nx; o arquivo de configuração do runner confirma os casos em
|
|
187
|
+
* que o projeto foi renomeado.
|
|
188
|
+
*/
|
|
189
|
+
async function isE2eProject(projectDir, name) {
|
|
190
|
+
if (name.endsWith('-e2e') || name.endsWith('-e2e-ct'))
|
|
191
|
+
return true;
|
|
192
|
+
const configs = await Promise.all(E2E_CONFIGS.map(file => pathExists(path.join(projectDir, file))));
|
|
193
|
+
return configs.some(Boolean);
|
|
194
|
+
}
|
|
35
195
|
export async function getProjectInfo(cwd) {
|
|
36
196
|
const packageJsonPath = await findPackageJson(cwd);
|
|
37
197
|
if (!packageJsonPath) {
|
|
38
198
|
throw new Error('No package.json found. Please run this command in your project root.');
|
|
39
199
|
}
|
|
200
|
+
const workspaceRoot = path.dirname(packageJsonPath);
|
|
40
201
|
const packageJson = packageJsonSchema.parse(await readJson(packageJsonPath));
|
|
41
202
|
const deps = { ...packageJson.dependencies, ...packageJson.devDependencies };
|
|
42
203
|
const hasAngular = !!deps['@angular/core'];
|
|
43
204
|
const hasTypeScript = !!deps['typescript'];
|
|
44
205
|
const hasTailwind = !!deps['tailwindcss'];
|
|
45
206
|
const hasNx = !!deps['nx'] || !!deps['@nx/workspace'];
|
|
207
|
+
const hasAnalog = !!deps['@analogjs/platform'] || !!deps['@analogjs/router'] || !!deps['@analogjs/vite-plugin-angular'];
|
|
208
|
+
// Um workspace Nx pode ter os dois arquivos; o `angular.json` só descreve os
|
|
209
|
+
// projetos que já existiam antes da migração, então o Nx tem a palavra final.
|
|
210
|
+
const projects = hasNx ? await readNxProjects(workspaceRoot) : await readAngularProjects(workspaceRoot);
|
|
46
211
|
const angularVersionRaw = deps['@angular/core'] || null;
|
|
47
212
|
const angularVersion = angularVersionRaw?.replace(/[^0-9.]/g, '') || null;
|
|
213
|
+
// O Nx guarda os paths num tsconfig.base.json que os projetos estendem;
|
|
214
|
+
// escrever no tsconfig.json da raiz não chegaria a nenhum deles.
|
|
215
|
+
const tsconfigFile = (await pathExists(path.join(workspaceRoot, 'tsconfig.base.json')))
|
|
216
|
+
? 'tsconfig.base.json'
|
|
217
|
+
: 'tsconfig.json';
|
|
48
218
|
return {
|
|
49
219
|
framework: hasAngular ? 'angular' : 'unknown',
|
|
220
|
+
root: workspaceRoot,
|
|
221
|
+
workspace: hasNx ? 'nx' : 'angular',
|
|
50
222
|
hasTypeScript,
|
|
51
223
|
hasTailwind,
|
|
52
224
|
hasNx,
|
|
225
|
+
hasAnalog,
|
|
226
|
+
tsconfigFile,
|
|
53
227
|
angularVersion,
|
|
54
228
|
angularVersionRaw,
|
|
229
|
+
projects,
|
|
55
230
|
};
|
|
56
231
|
}
|
|
57
232
|
//# sourceMappingURL=get-project-info.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-project-info.js","sourceRoot":"","sources":["../../src/utils/get-project-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"get-project-info.js","sourceRoot":"","sources":["../../src/utils/get-project-info.ts"],"names":[],"mappings":"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"}
|
package/utils/logger.d.ts
CHANGED
|
@@ -8,5 +8,17 @@ export declare const logger: {
|
|
|
8
8
|
debug(...args: unknown[]): void;
|
|
9
9
|
break(): void;
|
|
10
10
|
};
|
|
11
|
-
export
|
|
11
|
+
export interface Spinner {
|
|
12
|
+
text: string;
|
|
13
|
+
start(): Spinner;
|
|
14
|
+
stop(): Spinner;
|
|
15
|
+
succeed(text?: string): Spinner;
|
|
16
|
+
fail(text?: string): Spinner;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Indicador de progresso para os caminhos que rodam fora da tela interativa
|
|
20
|
+
* (headless, --yes, CI). Dentro de um wizard quem anima é a engine, e aqui as
|
|
21
|
+
* transições viram apenas registros no sink.
|
|
22
|
+
*/
|
|
23
|
+
export declare function spinner(text: string): Spinner;
|
|
12
24
|
//# sourceMappingURL=logger.d.ts.map
|
package/utils/logger.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAMA,wBAAgB,WAAW,IAAI,IAAI,CAElC;AAED,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAwBD,eAAO,MAAM,MAAM;mBACF,OAAO,EAAE;kBAGV,OAAO,EAAE;kBAGT,OAAO,EAAE;qBAGN,OAAO,EAAE;mBAGX,OAAO,EAAE;;CAQzB,CAAC;AAEF,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,IAAI,OAAO,CAAC;IACjB,IAAI,IAAI,OAAO,CAAC;IAChB,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC9B;AAKD;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAuD7C"}
|