astro 5.16.1 → 5.16.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/utils/remotePattern.d.ts +1 -3
- package/dist/cli/create-key/infra/crypto-key-generator.d.ts +3 -1
- package/dist/cli/create-key/infra/crypto-key-generator.js +7 -9
- package/dist/cli/definitions.d.ts +9 -8
- package/dist/cli/docs/infra/process-cloud-ide-provider.d.ts +4 -1
- package/dist/cli/docs/infra/process-cloud-ide-provider.js +3 -7
- package/dist/cli/index.js +35 -36
- package/dist/cli/info/core/get-package-manager.js +14 -15
- package/dist/cli/info/definitions.d.ts +3 -3
- package/dist/cli/info/infra/bun-package-manager.d.ts +4 -1
- package/dist/cli/info/infra/bun-package-manager.js +6 -10
- package/dist/cli/info/infra/cli-astro-config-resolver.d.ts +7 -4
- package/dist/cli/info/infra/cli-astro-config-resolver.js +32 -29
- package/dist/cli/info/infra/cli-clipboard.d.ts +9 -7
- package/dist/cli/info/infra/cli-clipboard.js +48 -37
- package/dist/cli/info/infra/cli-debug-info-provider.d.ts +11 -8
- package/dist/cli/info/infra/cli-debug-info-provider.js +46 -36
- package/dist/cli/info/infra/dev-debug-info-provider.d.ts +12 -9
- package/dist/cli/info/infra/dev-debug-info-provider.js +33 -23
- package/dist/cli/info/infra/noop-package-manager.d.ts +4 -1
- package/dist/cli/info/infra/noop-package-manager.js +6 -10
- package/dist/cli/info/infra/npm-package-manager.d.ts +7 -4
- package/dist/cli/info/infra/npm-package-manager.js +25 -25
- package/dist/cli/info/infra/pnpm-package-manager.d.ts +7 -4
- package/dist/cli/info/infra/pnpm-package-manager.js +24 -24
- package/dist/cli/info/infra/process-node-version-provider.d.ts +3 -1
- package/dist/cli/info/infra/process-node-version-provider.js +3 -7
- package/dist/cli/info/infra/process-package-manager-user-agent-provider.d.ts +3 -1
- package/dist/cli/info/infra/process-package-manager-user-agent-provider.js +4 -7
- package/dist/cli/info/infra/prompts-prompt.d.ts +9 -4
- package/dist/cli/info/infra/prompts-prompt.js +20 -15
- package/dist/cli/info/infra/styled-debug-info-formatter.d.ts +7 -4
- package/dist/cli/info/infra/styled-debug-info-formatter.js +23 -19
- package/dist/cli/info/infra/yarn-package-manager.d.ts +7 -4
- package/dist/cli/info/infra/yarn-package-manager.js +21 -21
- package/dist/cli/infra/build-time-astro-version-provider.d.ts +3 -1
- package/dist/cli/infra/build-time-astro-version-provider.js +4 -8
- package/dist/cli/infra/cli-command-runner.d.ts +7 -4
- package/dist/cli/infra/cli-command-runner.js +14 -10
- package/dist/cli/infra/logger-help-display.d.ts +11 -7
- package/dist/cli/infra/logger-help-display.js +62 -50
- package/dist/cli/infra/passthrough-text-styler.d.ts +8 -1
- package/dist/cli/infra/passthrough-text-styler.js +20 -10
- package/dist/cli/infra/piccolore-text-styler.d.ts +1 -1
- package/dist/cli/infra/piccolore-text-styler.js +2 -4
- package/dist/cli/infra/process-operating-system-provider.d.ts +5 -1
- package/dist/cli/infra/process-operating-system-provider.js +8 -16
- package/dist/cli/infra/tinyexec-command-executor.d.ts +6 -2
- package/dist/cli/infra/tinyexec-command-executor.js +28 -30
- package/dist/content/content-layer.js +3 -3
- package/dist/core/app/index.js +3 -1
- package/dist/core/constants.js +1 -1
- package/dist/core/dev/dev.js +1 -1
- package/dist/core/messages.js +2 -2
- package/dist/vite-plugin-astro-server/plugin.js +16 -16
- package/package.json +3 -3
|
@@ -1,3 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { isRemoteAllowed, matchHostname, matchPort, matchPathname, matchProtocol, matchPattern };
|
|
3
|
-
export type { RemotePattern };
|
|
1
|
+
export { isRemoteAllowed, matchHostname, matchPathname, matchPattern, matchPort, matchProtocol, type RemotePattern, } from '@astrojs/internal-helpers/remote';
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { createKey, encodeKey } from "../../../core/encryption.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
9
|
-
};
|
|
2
|
+
class CryptoKeyGenerator {
|
|
3
|
+
async generate() {
|
|
4
|
+
const key = await createKey();
|
|
5
|
+
const encoded = await encodeKey(key);
|
|
6
|
+
return encoded;
|
|
7
|
+
}
|
|
10
8
|
}
|
|
11
9
|
export {
|
|
12
|
-
|
|
10
|
+
CryptoKeyGenerator
|
|
13
11
|
};
|
|
@@ -17,16 +17,17 @@ export interface AstroVersionProvider {
|
|
|
17
17
|
readonly version: string;
|
|
18
18
|
}
|
|
19
19
|
export interface CommandRunner {
|
|
20
|
-
run: <T extends AnyCommand>(command: T, ...args: Parameters<T['run']>) => ReturnType<T['run']
|
|
20
|
+
run: <T extends AnyCommand>(command: T, ...args: Parameters<T['run']>) => ReturnType<T['run']> | undefined;
|
|
21
|
+
}
|
|
22
|
+
export interface CommandExecutorOptions {
|
|
23
|
+
cwd?: string;
|
|
24
|
+
env?: Record<string, string | undefined>;
|
|
25
|
+
shell?: boolean;
|
|
26
|
+
input?: string;
|
|
27
|
+
stdio?: StdioOptions;
|
|
21
28
|
}
|
|
22
29
|
export interface CommandExecutor {
|
|
23
|
-
execute: (command: string, args?: Array<string>, options?: {
|
|
24
|
-
cwd?: string;
|
|
25
|
-
env?: Record<string, string | undefined>;
|
|
26
|
-
shell?: boolean;
|
|
27
|
-
input?: string;
|
|
28
|
-
stdio?: StdioOptions;
|
|
29
|
-
}) => Promise<{
|
|
30
|
+
execute: (command: string, args?: Array<string>, options?: CommandExecutorOptions) => Promise<{
|
|
30
31
|
stdout: string;
|
|
31
32
|
}>;
|
|
32
33
|
}
|
|
@@ -1,2 +1,5 @@
|
|
|
1
1
|
import type { CloudIdeProvider } from '../definitions.js';
|
|
2
|
-
|
|
2
|
+
import type { CloudIde } from '../domain/cloud-ide.js';
|
|
3
|
+
export declare class ProcessCloudIdeProvider implements CloudIdeProvider {
|
|
4
|
+
readonly name: CloudIde | null;
|
|
5
|
+
}
|
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
get name() {
|
|
4
|
-
return Boolean(process.env.GITPOD_REPO_ROOT) ? "gitpod" : null;
|
|
5
|
-
}
|
|
6
|
-
};
|
|
1
|
+
class ProcessCloudIdeProvider {
|
|
2
|
+
name = Boolean(process.env.GITPOD_REPO_ROOT) ? "gitpod" : null;
|
|
7
3
|
}
|
|
8
4
|
export {
|
|
9
|
-
|
|
5
|
+
ProcessCloudIdeProvider
|
|
10
6
|
};
|
package/dist/cli/index.js
CHANGED
|
@@ -30,10 +30,10 @@ async function runCommand(cmd, flags) {
|
|
|
30
30
|
applyPolyfill();
|
|
31
31
|
const [
|
|
32
32
|
{ createLoggerFromFlags },
|
|
33
|
-
{
|
|
34
|
-
{
|
|
35
|
-
{
|
|
36
|
-
{
|
|
33
|
+
{ piccoloreTextStyler: textStyler },
|
|
34
|
+
{ BuildTimeAstroVersionProvider },
|
|
35
|
+
{ LoggerHelpDisplay },
|
|
36
|
+
{ CliCommandRunner }
|
|
37
37
|
] = await Promise.all([
|
|
38
38
|
import("./flags.js"),
|
|
39
39
|
import("./infra/piccolore-text-styler.js"),
|
|
@@ -42,15 +42,14 @@ async function runCommand(cmd, flags) {
|
|
|
42
42
|
import("./infra/cli-command-runner.js")
|
|
43
43
|
]);
|
|
44
44
|
const logger = createLoggerFromFlags(flags);
|
|
45
|
-
const
|
|
46
|
-
const
|
|
47
|
-
const helpDisplay = createLoggerHelpDisplay({
|
|
45
|
+
const astroVersionProvider = new BuildTimeAstroVersionProvider();
|
|
46
|
+
const helpDisplay = new LoggerHelpDisplay({
|
|
48
47
|
logger,
|
|
49
48
|
flags,
|
|
50
49
|
textStyler,
|
|
51
50
|
astroVersionProvider
|
|
52
51
|
});
|
|
53
|
-
const runner =
|
|
52
|
+
const runner = new CliCommandRunner({ helpDisplay });
|
|
54
53
|
switch (cmd) {
|
|
55
54
|
/** Display --help flag */
|
|
56
55
|
case "help": {
|
|
@@ -69,17 +68,17 @@ async function runCommand(cmd, flags) {
|
|
|
69
68
|
}
|
|
70
69
|
case "info": {
|
|
71
70
|
const [
|
|
72
|
-
{
|
|
73
|
-
{
|
|
74
|
-
{
|
|
75
|
-
{
|
|
76
|
-
{
|
|
77
|
-
{
|
|
71
|
+
{ ProcessOperatingSystemProvider },
|
|
72
|
+
{ CliAstroConfigResolver },
|
|
73
|
+
{ ProcessPackageManagerUserAgentProvider },
|
|
74
|
+
{ ProcessNodeVersionProvider },
|
|
75
|
+
{ CliDebugInfoProvider },
|
|
76
|
+
{ TinyexecCommandExecutor },
|
|
78
77
|
{ getPackageManager },
|
|
79
|
-
{
|
|
80
|
-
{
|
|
81
|
-
{
|
|
82
|
-
{
|
|
78
|
+
{ StyledDebugInfoFormatter },
|
|
79
|
+
{ PromptsPrompt },
|
|
80
|
+
{ CliClipboard },
|
|
81
|
+
{ PassthroughTextStyler },
|
|
83
82
|
{ infoCommand }
|
|
84
83
|
] = await Promise.all([
|
|
85
84
|
import("./infra/process-operating-system-provider.js"),
|
|
@@ -95,12 +94,12 @@ async function runCommand(cmd, flags) {
|
|
|
95
94
|
import("./infra/passthrough-text-styler.js"),
|
|
96
95
|
import("./info/core/info.js")
|
|
97
96
|
]);
|
|
98
|
-
const operatingSystemProvider =
|
|
99
|
-
const astroConfigResolver =
|
|
100
|
-
const commandExecutor =
|
|
101
|
-
const packageManagerUserAgentProvider =
|
|
102
|
-
const nodeVersionProvider =
|
|
103
|
-
const debugInfoProvider =
|
|
97
|
+
const operatingSystemProvider = new ProcessOperatingSystemProvider();
|
|
98
|
+
const astroConfigResolver = new CliAstroConfigResolver({ flags });
|
|
99
|
+
const commandExecutor = new TinyexecCommandExecutor();
|
|
100
|
+
const packageManagerUserAgentProvider = new ProcessPackageManagerUserAgentProvider();
|
|
101
|
+
const nodeVersionProvider = new ProcessNodeVersionProvider();
|
|
102
|
+
const debugInfoProvider = new CliDebugInfoProvider({
|
|
104
103
|
config: await astroConfigResolver.resolve(),
|
|
105
104
|
astroVersionProvider,
|
|
106
105
|
operatingSystemProvider,
|
|
@@ -110,8 +109,8 @@ async function runCommand(cmd, flags) {
|
|
|
110
109
|
}),
|
|
111
110
|
nodeVersionProvider
|
|
112
111
|
});
|
|
113
|
-
const prompt =
|
|
114
|
-
const clipboard =
|
|
112
|
+
const prompt = new PromptsPrompt({ force: flags.copy });
|
|
113
|
+
const clipboard = new CliClipboard({
|
|
115
114
|
commandExecutor,
|
|
116
115
|
logger,
|
|
117
116
|
operatingSystemProvider,
|
|
@@ -120,25 +119,25 @@ async function runCommand(cmd, flags) {
|
|
|
120
119
|
return await runner.run(infoCommand, {
|
|
121
120
|
logger,
|
|
122
121
|
debugInfoProvider,
|
|
123
|
-
getDebugInfoFormatter: ({ pretty }) =>
|
|
124
|
-
textStyler: pretty ? textStyler :
|
|
122
|
+
getDebugInfoFormatter: ({ pretty }) => new StyledDebugInfoFormatter({
|
|
123
|
+
textStyler: pretty ? textStyler : new PassthroughTextStyler()
|
|
125
124
|
}),
|
|
126
125
|
clipboard
|
|
127
126
|
});
|
|
128
127
|
}
|
|
129
128
|
case "create-key": {
|
|
130
|
-
const [{
|
|
129
|
+
const [{ CryptoKeyGenerator }, { createKeyCommand }] = await Promise.all([
|
|
131
130
|
import("./create-key/infra/crypto-key-generator.js"),
|
|
132
131
|
import("./create-key/core/create-key.js")
|
|
133
132
|
]);
|
|
134
|
-
const keyGenerator =
|
|
133
|
+
const keyGenerator = new CryptoKeyGenerator();
|
|
135
134
|
return await runner.run(createKeyCommand, { logger, keyGenerator });
|
|
136
135
|
}
|
|
137
136
|
case "docs": {
|
|
138
137
|
const [
|
|
139
|
-
{
|
|
140
|
-
{
|
|
141
|
-
{
|
|
138
|
+
{ TinyexecCommandExecutor },
|
|
139
|
+
{ ProcessOperatingSystemProvider },
|
|
140
|
+
{ ProcessCloudIdeProvider },
|
|
142
141
|
{ openDocsCommand }
|
|
143
142
|
] = await Promise.all([
|
|
144
143
|
import("./infra/tinyexec-command-executor.js"),
|
|
@@ -146,9 +145,9 @@ async function runCommand(cmd, flags) {
|
|
|
146
145
|
import("./docs/infra/process-cloud-ide-provider.js"),
|
|
147
146
|
import("./docs/core/open-docs.js")
|
|
148
147
|
]);
|
|
149
|
-
const commandExecutor =
|
|
150
|
-
const operatingSystemProvider =
|
|
151
|
-
const cloudIdeProvider =
|
|
148
|
+
const commandExecutor = new TinyexecCommandExecutor();
|
|
149
|
+
const operatingSystemProvider = new ProcessOperatingSystemProvider();
|
|
150
|
+
const cloudIdeProvider = new ProcessCloudIdeProvider();
|
|
152
151
|
return await runner.run(openDocsCommand, {
|
|
153
152
|
url: "https://docs.astro.build/",
|
|
154
153
|
logger,
|
|
@@ -2,34 +2,33 @@ async function getPackageManager({
|
|
|
2
2
|
packageManagerUserAgentProvider,
|
|
3
3
|
commandExecutor
|
|
4
4
|
}) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
return createNoopPackageManager();
|
|
5
|
+
if (!packageManagerUserAgentProvider.userAgent) {
|
|
6
|
+
const { NoopPackageManager } = await import("../infra/noop-package-manager.js");
|
|
7
|
+
return new NoopPackageManager();
|
|
9
8
|
}
|
|
10
|
-
const specifier = userAgent.split(" ")[0];
|
|
9
|
+
const specifier = packageManagerUserAgentProvider.userAgent.split(" ")[0];
|
|
11
10
|
const _name = specifier.substring(0, specifier.lastIndexOf("/"));
|
|
12
11
|
const name = _name === "npminstall" ? "cnpm" : _name;
|
|
13
12
|
switch (name) {
|
|
14
13
|
case "pnpm": {
|
|
15
|
-
const {
|
|
16
|
-
return
|
|
14
|
+
const { PnpmPackageManager } = await import("../infra/pnpm-package-manager.js");
|
|
15
|
+
return new PnpmPackageManager({ commandExecutor });
|
|
17
16
|
}
|
|
18
17
|
case "npm": {
|
|
19
|
-
const {
|
|
20
|
-
return
|
|
18
|
+
const { NpmPackageManager } = await import("../infra/npm-package-manager.js");
|
|
19
|
+
return new NpmPackageManager({ commandExecutor });
|
|
21
20
|
}
|
|
22
21
|
case "yarn": {
|
|
23
|
-
const {
|
|
24
|
-
return
|
|
22
|
+
const { YarnPackageManager } = await import("../infra/yarn-package-manager.js");
|
|
23
|
+
return new YarnPackageManager({ commandExecutor });
|
|
25
24
|
}
|
|
26
25
|
case "bun": {
|
|
27
|
-
const {
|
|
28
|
-
return
|
|
26
|
+
const { BunPackageManager } = await import("../infra/bun-package-manager.js");
|
|
27
|
+
return new BunPackageManager();
|
|
29
28
|
}
|
|
30
29
|
default: {
|
|
31
|
-
const {
|
|
32
|
-
return
|
|
30
|
+
const { NoopPackageManager } = await import("../infra/noop-package-manager.js");
|
|
31
|
+
return new NoopPackageManager();
|
|
33
32
|
}
|
|
34
33
|
}
|
|
35
34
|
}
|
|
@@ -10,7 +10,7 @@ export interface Clipboard {
|
|
|
10
10
|
copy: (text: string) => Promise<void>;
|
|
11
11
|
}
|
|
12
12
|
export interface PackageManager {
|
|
13
|
-
|
|
13
|
+
readonly name: string;
|
|
14
14
|
getPackageVersion: (name: string) => Promise<string | undefined>;
|
|
15
15
|
}
|
|
16
16
|
export interface AstroConfigResolver {
|
|
@@ -23,8 +23,8 @@ export interface Prompt {
|
|
|
23
23
|
}) => Promise<boolean>;
|
|
24
24
|
}
|
|
25
25
|
export interface PackageManagerUserAgentProvider {
|
|
26
|
-
|
|
26
|
+
readonly userAgent: string | null;
|
|
27
27
|
}
|
|
28
28
|
export interface NodeVersionProvider {
|
|
29
|
-
|
|
29
|
+
readonly version: string;
|
|
30
30
|
}
|
|
@@ -1,2 +1,5 @@
|
|
|
1
1
|
import type { PackageManager } from '../definitions.js';
|
|
2
|
-
export declare
|
|
2
|
+
export declare class BunPackageManager implements PackageManager {
|
|
3
|
+
readonly name: string;
|
|
4
|
+
getPackageVersion(): Promise<string | undefined>;
|
|
5
|
+
}
|
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
async getPackageVersion() {
|
|
7
|
-
return void 0;
|
|
8
|
-
}
|
|
9
|
-
};
|
|
1
|
+
class BunPackageManager {
|
|
2
|
+
name = "bun";
|
|
3
|
+
async getPackageVersion() {
|
|
4
|
+
return void 0;
|
|
5
|
+
}
|
|
10
6
|
}
|
|
11
7
|
export {
|
|
12
|
-
|
|
8
|
+
BunPackageManager
|
|
13
9
|
};
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import type { AstroConfig } from '../../../types/public/index.js';
|
|
1
2
|
import type { Flags } from '../../flags.js';
|
|
2
3
|
import type { AstroConfigResolver } from '../definitions.js';
|
|
3
|
-
|
|
4
|
-
|
|
4
|
+
export declare class CliAstroConfigResolver implements AstroConfigResolver {
|
|
5
|
+
#private;
|
|
6
|
+
constructor({ flags }: {
|
|
7
|
+
flags: Flags;
|
|
8
|
+
});
|
|
9
|
+
resolve(): Promise<AstroConfig>;
|
|
5
10
|
}
|
|
6
|
-
export declare function createCliAstroConfigResolver({ flags }: Options): AstroConfigResolver;
|
|
7
|
-
export {};
|
|
@@ -1,33 +1,36 @@
|
|
|
1
1
|
import { resolveConfig } from "../../../core/config/config.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
2
|
+
class CliAstroConfigResolver {
|
|
3
|
+
// TODO: find something better
|
|
4
|
+
#flags;
|
|
5
|
+
constructor({ flags }) {
|
|
6
|
+
this.#flags = flags;
|
|
7
|
+
}
|
|
8
|
+
async resolve() {
|
|
9
|
+
const { astroConfig } = await resolveConfig(
|
|
10
|
+
// TODO: consider testing flags => astro inline config
|
|
11
|
+
{
|
|
12
|
+
// Inline-only configs
|
|
13
|
+
configFile: typeof this.#flags.config === "string" ? this.#flags.config : void 0,
|
|
14
|
+
mode: typeof this.#flags.mode === "string" ? this.#flags.mode : void 0,
|
|
15
|
+
logLevel: this.#flags.verbose ? "debug" : this.#flags.silent ? "silent" : void 0,
|
|
16
|
+
force: this.#flags.force ? true : void 0,
|
|
17
|
+
// Astro user configs
|
|
18
|
+
root: typeof this.#flags.root === "string" ? this.#flags.root : void 0,
|
|
19
|
+
site: typeof this.#flags.site === "string" ? this.#flags.site : void 0,
|
|
20
|
+
base: typeof this.#flags.base === "string" ? this.#flags.base : void 0,
|
|
21
|
+
outDir: typeof this.#flags.outDir === "string" ? this.#flags.outDir : void 0,
|
|
22
|
+
server: {
|
|
23
|
+
port: typeof this.#flags.port === "number" ? this.#flags.port : void 0,
|
|
24
|
+
host: typeof this.#flags.host === "string" || typeof this.#flags.host === "boolean" ? this.#flags.host : void 0,
|
|
25
|
+
open: typeof this.#flags.open === "string" || typeof this.#flags.open === "boolean" ? this.#flags.open : void 0,
|
|
26
|
+
allowedHosts: typeof this.#flags.allowedHosts === "string" ? this.#flags.allowedHosts.split(",") : typeof this.#flags.allowedHosts === "boolean" && this.#flags.allowedHosts === true ? this.#flags.allowedHosts : []
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"info"
|
|
30
|
+
);
|
|
31
|
+
return astroConfig;
|
|
32
|
+
}
|
|
30
33
|
}
|
|
31
34
|
export {
|
|
32
|
-
|
|
35
|
+
CliAstroConfigResolver
|
|
33
36
|
};
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import type { Logger } from '../../../core/logger/core.js';
|
|
2
2
|
import type { CommandExecutor, OperatingSystemProvider } from '../../definitions.js';
|
|
3
3
|
import type { Clipboard, Prompt } from '../definitions.js';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
commandExecutor:
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
export declare class CliClipboard implements Clipboard {
|
|
5
|
+
#private;
|
|
6
|
+
constructor({ operatingSystemProvider, commandExecutor, logger, prompt, }: {
|
|
7
|
+
operatingSystemProvider: OperatingSystemProvider;
|
|
8
|
+
commandExecutor: CommandExecutor;
|
|
9
|
+
logger: Logger;
|
|
10
|
+
prompt: Prompt;
|
|
11
|
+
});
|
|
12
|
+
copy(text: string): Promise<void>;
|
|
9
13
|
}
|
|
10
|
-
export declare function createCliClipboard({ operatingSystemProvider, commandExecutor, logger, prompt, }: Options): Clipboard;
|
|
11
|
-
export {};
|
|
@@ -24,44 +24,55 @@ async function getExecInputForPlatform({
|
|
|
24
24
|
}
|
|
25
25
|
return null;
|
|
26
26
|
}
|
|
27
|
-
|
|
28
|
-
operatingSystemProvider
|
|
29
|
-
commandExecutor
|
|
30
|
-
logger
|
|
31
|
-
prompt
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
});
|
|
55
|
-
logger.info("SKIP_FORMAT", "Copied to clipboard!");
|
|
56
|
-
} catch {
|
|
57
|
-
logger.error(
|
|
58
|
-
"SKIP_FORMAT",
|
|
59
|
-
"Sorry, something went wrong! Please copy the text above manually."
|
|
60
|
-
);
|
|
61
|
-
}
|
|
27
|
+
class CliClipboard {
|
|
28
|
+
#operatingSystemProvider;
|
|
29
|
+
#commandExecutor;
|
|
30
|
+
#logger;
|
|
31
|
+
#prompt;
|
|
32
|
+
constructor({
|
|
33
|
+
operatingSystemProvider,
|
|
34
|
+
commandExecutor,
|
|
35
|
+
logger,
|
|
36
|
+
prompt
|
|
37
|
+
}) {
|
|
38
|
+
this.#operatingSystemProvider = operatingSystemProvider;
|
|
39
|
+
this.#commandExecutor = commandExecutor;
|
|
40
|
+
this.#logger = logger;
|
|
41
|
+
this.#prompt = prompt;
|
|
42
|
+
}
|
|
43
|
+
async copy(text) {
|
|
44
|
+
text = text.trim();
|
|
45
|
+
const platform = this.#operatingSystemProvider.name;
|
|
46
|
+
const input = await getExecInputForPlatform({
|
|
47
|
+
platform,
|
|
48
|
+
commandExecutor: this.#commandExecutor
|
|
49
|
+
});
|
|
50
|
+
if (!input) {
|
|
51
|
+
this.#logger.warn("SKIP_FORMAT", "Clipboard command not found!");
|
|
52
|
+
this.#logger.info("SKIP_FORMAT", "Please manually copy the text above.");
|
|
53
|
+
return;
|
|
62
54
|
}
|
|
63
|
-
|
|
55
|
+
if (!await this.#prompt.confirm({
|
|
56
|
+
message: "Copy to clipboard?",
|
|
57
|
+
defaultValue: true
|
|
58
|
+
})) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
try {
|
|
62
|
+
const [command, args] = input;
|
|
63
|
+
await this.#commandExecutor.execute(command, args, {
|
|
64
|
+
input: text,
|
|
65
|
+
stdio: ["pipe", "ignore", "ignore"]
|
|
66
|
+
});
|
|
67
|
+
this.#logger.info("SKIP_FORMAT", "Copied to clipboard!");
|
|
68
|
+
} catch {
|
|
69
|
+
this.#logger.error(
|
|
70
|
+
"SKIP_FORMAT",
|
|
71
|
+
"Sorry, something went wrong! Please copy the text above manually."
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
64
75
|
}
|
|
65
76
|
export {
|
|
66
|
-
|
|
77
|
+
CliClipboard
|
|
67
78
|
};
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import type { AstroConfig } from '../../../types/public/index.js';
|
|
2
2
|
import type { AstroVersionProvider, OperatingSystemProvider } from '../../definitions.js';
|
|
3
3
|
import type { DebugInfoProvider, NodeVersionProvider, PackageManager } from '../definitions.js';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
packageManager:
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
import type { DebugInfo } from '../domain/debug-info.js';
|
|
5
|
+
export declare class CliDebugInfoProvider implements DebugInfoProvider {
|
|
6
|
+
#private;
|
|
7
|
+
constructor({ config, astroVersionProvider, packageManager, operatingSystemProvider, nodeVersionProvider, }: {
|
|
8
|
+
config: Pick<AstroConfig, 'output' | 'adapter' | 'integrations'>;
|
|
9
|
+
astroVersionProvider: AstroVersionProvider;
|
|
10
|
+
packageManager: PackageManager;
|
|
11
|
+
operatingSystemProvider: OperatingSystemProvider;
|
|
12
|
+
nodeVersionProvider: NodeVersionProvider;
|
|
13
|
+
});
|
|
14
|
+
get(): Promise<DebugInfo>;
|
|
10
15
|
}
|
|
11
|
-
export declare function createCliDebugInfoProvider({ config, astroVersionProvider, packageManager, operatingSystemProvider, nodeVersionProvider, }: Options): DebugInfoProvider;
|
|
12
|
-
export {};
|
|
@@ -5,43 +5,53 @@ function withVersion(name, version) {
|
|
|
5
5
|
}
|
|
6
6
|
return result;
|
|
7
7
|
}
|
|
8
|
-
|
|
9
|
-
config
|
|
10
|
-
astroVersionProvider
|
|
11
|
-
packageManager
|
|
12
|
-
operatingSystemProvider
|
|
13
|
-
nodeVersionProvider
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
)
|
|
39
|
-
);
|
|
40
|
-
debugInfo.push(["Integrations", integrations.length > 0 ? integrations : "none"]);
|
|
41
|
-
return debugInfo;
|
|
8
|
+
class CliDebugInfoProvider {
|
|
9
|
+
#config;
|
|
10
|
+
#astroVersionProvider;
|
|
11
|
+
#packageManager;
|
|
12
|
+
#operatingSystemProvider;
|
|
13
|
+
#nodeVersionProvider;
|
|
14
|
+
constructor({
|
|
15
|
+
config,
|
|
16
|
+
astroVersionProvider,
|
|
17
|
+
packageManager,
|
|
18
|
+
operatingSystemProvider,
|
|
19
|
+
nodeVersionProvider
|
|
20
|
+
}) {
|
|
21
|
+
this.#config = config;
|
|
22
|
+
this.#astroVersionProvider = astroVersionProvider;
|
|
23
|
+
this.#packageManager = packageManager;
|
|
24
|
+
this.#operatingSystemProvider = operatingSystemProvider;
|
|
25
|
+
this.#nodeVersionProvider = nodeVersionProvider;
|
|
26
|
+
}
|
|
27
|
+
async get() {
|
|
28
|
+
const debugInfo = [
|
|
29
|
+
["Astro", `v${this.#astroVersionProvider.version}`],
|
|
30
|
+
["Node", this.#nodeVersionProvider.version],
|
|
31
|
+
["System", this.#operatingSystemProvider.displayName],
|
|
32
|
+
["Package Manager", this.#packageManager.name],
|
|
33
|
+
["Output", this.#config.output]
|
|
34
|
+
];
|
|
35
|
+
const viteVersion = await this.#packageManager.getPackageVersion("vite");
|
|
36
|
+
if (viteVersion) {
|
|
37
|
+
debugInfo.splice(1, 0, ["Vite", viteVersion]);
|
|
42
38
|
}
|
|
43
|
-
|
|
39
|
+
debugInfo.push([
|
|
40
|
+
"Adapter",
|
|
41
|
+
this.#config.adapter ? withVersion(
|
|
42
|
+
this.#config.adapter.name,
|
|
43
|
+
await this.#packageManager.getPackageVersion(this.#config.adapter.name)
|
|
44
|
+
) : "none"
|
|
45
|
+
]);
|
|
46
|
+
const integrations = await Promise.all(
|
|
47
|
+
this.#config.integrations.map(
|
|
48
|
+
async ({ name }) => withVersion(name, await this.#packageManager.getPackageVersion(name))
|
|
49
|
+
)
|
|
50
|
+
);
|
|
51
|
+
debugInfo.push(["Integrations", integrations.length > 0 ? integrations : "none"]);
|
|
52
|
+
return debugInfo;
|
|
53
|
+
}
|
|
44
54
|
}
|
|
45
55
|
export {
|
|
46
|
-
|
|
56
|
+
CliDebugInfoProvider
|
|
47
57
|
};
|