astro 5.16.0 → 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.
Files changed (105) hide show
  1. package/astro-jsx.d.ts +11 -0
  2. package/dist/assets/fonts/definitions.d.ts +0 -18
  3. package/dist/assets/fonts/infra/build-remote-font-provider-mod-resolver.d.ts +2 -0
  4. package/dist/assets/fonts/infra/build-remote-font-provider-mod-resolver.js +10 -0
  5. package/dist/assets/fonts/infra/{url-proxy-hash-resolver.d.ts → build-url-proxy-hash-resolver.d.ts} +0 -3
  6. package/dist/assets/fonts/infra/build-url-proxy-hash-resolver.js +13 -0
  7. package/dist/assets/fonts/infra/{url-resolver.d.ts → build-url-resolver.d.ts} +0 -4
  8. package/dist/assets/fonts/infra/{url-resolver.js → build-url-resolver.js} +1 -22
  9. package/dist/assets/fonts/infra/{font-fetcher.d.ts → cached-font-fetcher.d.ts} +2 -3
  10. package/dist/assets/fonts/infra/{font-fetcher.js → cached-font-fetcher.js} +8 -6
  11. package/dist/assets/fonts/infra/{remote-font-provider-mod-resolver.d.ts → dev-remote-font-provider-mod-resolver.d.ts} +0 -1
  12. package/dist/assets/fonts/infra/{remote-font-provider-mod-resolver.js → dev-remote-font-provider-mod-resolver.js} +0 -8
  13. package/dist/assets/fonts/infra/dev-url-proxy-hash-resolver.d.ts +5 -0
  14. package/dist/assets/fonts/infra/{url-proxy-hash-resolver.js → dev-url-proxy-hash-resolver.js} +3 -14
  15. package/dist/assets/fonts/infra/dev-url-resolver.d.ts +5 -0
  16. package/dist/assets/fonts/infra/dev-url-resolver.js +25 -0
  17. package/dist/assets/fonts/infra/font-type-extractor.d.ts +2 -4
  18. package/dist/assets/fonts/infra/font-type-extractor.js +9 -8
  19. package/dist/assets/fonts/infra/fontace-font-file-reader.d.ts +2 -0
  20. package/dist/assets/fonts/infra/fontace-font-file-reader.js +27 -0
  21. package/dist/assets/fonts/infra/remote-font-provider-resolver.d.ts +2 -3
  22. package/dist/assets/fonts/infra/remote-font-provider-resolver.js +10 -12
  23. package/dist/assets/fonts/infra/url-proxy-content-resolver.d.ts +2 -4
  24. package/dist/assets/fonts/infra/url-proxy-content-resolver.js +3 -8
  25. package/dist/assets/fonts/infra/xxhash-hasher.d.ts +2 -0
  26. package/dist/assets/fonts/infra/{hasher.js → xxhash-hasher.js} +2 -2
  27. package/dist/assets/fonts/vite-plugin-fonts.js +23 -31
  28. package/dist/assets/utils/remotePattern.d.ts +1 -3
  29. package/dist/cli/create-key/infra/crypto-key-generator.d.ts +3 -1
  30. package/dist/cli/create-key/infra/crypto-key-generator.js +7 -9
  31. package/dist/cli/definitions.d.ts +9 -8
  32. package/dist/cli/docs/infra/process-cloud-ide-provider.d.ts +4 -1
  33. package/dist/cli/docs/infra/process-cloud-ide-provider.js +3 -7
  34. package/dist/cli/index.js +35 -36
  35. package/dist/cli/info/core/get-package-manager.js +14 -15
  36. package/dist/cli/info/definitions.d.ts +3 -3
  37. package/dist/cli/info/infra/bun-package-manager.d.ts +4 -1
  38. package/dist/cli/info/infra/bun-package-manager.js +6 -10
  39. package/dist/cli/info/infra/cli-astro-config-resolver.d.ts +7 -4
  40. package/dist/cli/info/infra/cli-astro-config-resolver.js +32 -29
  41. package/dist/cli/info/infra/cli-clipboard.d.ts +9 -7
  42. package/dist/cli/info/infra/cli-clipboard.js +48 -37
  43. package/dist/cli/info/infra/cli-debug-info-provider.d.ts +11 -8
  44. package/dist/cli/info/infra/cli-debug-info-provider.js +46 -36
  45. package/dist/cli/info/infra/dev-debug-info-provider.d.ts +12 -9
  46. package/dist/cli/info/infra/dev-debug-info-provider.js +33 -23
  47. package/dist/cli/info/infra/noop-package-manager.d.ts +4 -1
  48. package/dist/cli/info/infra/noop-package-manager.js +6 -10
  49. package/dist/cli/info/infra/npm-package-manager.d.ts +7 -4
  50. package/dist/cli/info/infra/npm-package-manager.js +25 -25
  51. package/dist/cli/info/infra/pnpm-package-manager.d.ts +7 -4
  52. package/dist/cli/info/infra/pnpm-package-manager.js +24 -24
  53. package/dist/cli/info/infra/process-node-version-provider.d.ts +3 -1
  54. package/dist/cli/info/infra/process-node-version-provider.js +3 -7
  55. package/dist/cli/info/infra/process-package-manager-user-agent-provider.d.ts +3 -1
  56. package/dist/cli/info/infra/process-package-manager-user-agent-provider.js +4 -7
  57. package/dist/cli/info/infra/prompts-prompt.d.ts +9 -4
  58. package/dist/cli/info/infra/prompts-prompt.js +20 -15
  59. package/dist/cli/info/infra/styled-debug-info-formatter.d.ts +7 -4
  60. package/dist/cli/info/infra/styled-debug-info-formatter.js +23 -19
  61. package/dist/cli/info/infra/yarn-package-manager.d.ts +7 -4
  62. package/dist/cli/info/infra/yarn-package-manager.js +21 -21
  63. package/dist/cli/infra/build-time-astro-version-provider.d.ts +3 -1
  64. package/dist/cli/infra/build-time-astro-version-provider.js +4 -8
  65. package/dist/cli/infra/cli-command-runner.d.ts +7 -4
  66. package/dist/cli/infra/cli-command-runner.js +14 -10
  67. package/dist/cli/infra/logger-help-display.d.ts +11 -7
  68. package/dist/cli/infra/logger-help-display.js +62 -50
  69. package/dist/cli/infra/passthrough-text-styler.d.ts +8 -1
  70. package/dist/cli/infra/passthrough-text-styler.js +20 -10
  71. package/dist/cli/infra/piccolore-text-styler.d.ts +1 -1
  72. package/dist/cli/infra/piccolore-text-styler.js +2 -4
  73. package/dist/cli/infra/process-operating-system-provider.d.ts +5 -1
  74. package/dist/cli/infra/process-operating-system-provider.js +8 -16
  75. package/dist/cli/infra/tinyexec-command-executor.d.ts +6 -2
  76. package/dist/cli/infra/tinyexec-command-executor.js +28 -30
  77. package/dist/content/content-layer.js +3 -3
  78. package/dist/content/utils.d.ts +10 -10
  79. package/dist/core/app/index.js +3 -1
  80. package/dist/core/config/schemas/base.d.ts +72 -72
  81. package/dist/core/config/schemas/relative.d.ts +98 -98
  82. package/dist/core/constants.js +1 -1
  83. package/dist/core/csp/config.d.ts +1 -1
  84. package/dist/core/dev/dev.js +1 -1
  85. package/dist/core/errors/errors.js +7 -7
  86. package/dist/core/messages.js +2 -2
  87. package/dist/core/sync/index.js +20 -1
  88. package/dist/env/schema.d.ts +44 -44
  89. package/dist/types/public/context.d.ts +10 -1
  90. package/dist/vite-plugin-astro/index.js +5 -1
  91. package/dist/vite-plugin-astro-server/plugin.js +16 -16
  92. package/package.json +7 -7
  93. package/dist/assets/fonts/infra/error-handler.d.ts +0 -2
  94. package/dist/assets/fonts/infra/error-handler.js +0 -41
  95. package/dist/assets/fonts/infra/font-file-reader.d.ts +0 -4
  96. package/dist/assets/fonts/infra/font-file-reader.js +0 -26
  97. package/dist/assets/fonts/infra/hasher.d.ts +0 -2
  98. /package/dist/assets/fonts/infra/{font-metrics-resolver.d.ts → capsize-font-metrics-resolver.d.ts} +0 -0
  99. /package/dist/assets/fonts/infra/{font-metrics-resolver.js → capsize-font-metrics-resolver.js} +0 -0
  100. /package/dist/assets/fonts/infra/{storage.d.ts → fs-storage.d.ts} +0 -0
  101. /package/dist/assets/fonts/infra/{storage.js → fs-storage.js} +0 -0
  102. /package/dist/assets/fonts/infra/{css-renderer.d.ts → minifiable-css-renderer.d.ts} +0 -0
  103. /package/dist/assets/fonts/infra/{css-renderer.js → minifiable-css-renderer.js} +0 -0
  104. /package/dist/assets/fonts/infra/{local-provider-url-resolver.d.ts → require-local-provider-url-resolver.d.ts} +0 -0
  105. /package/dist/assets/fonts/infra/{local-provider-url-resolver.js → require-local-provider-url-resolver.js} +0 -0
package/astro-jsx.d.ts CHANGED
@@ -672,6 +672,17 @@ declare namespace astroHTML.JSX {
672
672
  value?: string | string[] | number | undefined | null;
673
673
  popovertarget?: string | undefined | null;
674
674
  popovertargetaction?: 'hide' | 'show' | 'toggle' | undefined | null;
675
+ command?:
676
+ | 'show-modal'
677
+ | 'close'
678
+ | 'request-close'
679
+ | 'show-popover'
680
+ | 'hide-popover'
681
+ | 'toggle-popover'
682
+ | (string & {})
683
+ | undefined
684
+ | null;
685
+ commandfor?: string | undefined | null;
675
686
  }
676
687
 
677
688
  interface CanvasHTMLAttributes extends HTMLAttributes {
@@ -14,24 +14,6 @@ export interface RemoteFontProviderResolver {
14
14
  export interface LocalProviderUrlResolver {
15
15
  resolve: (input: string) => string;
16
16
  }
17
- type SingleErrorInput<TType extends string, TData extends Record<string, any>> = {
18
- type: TType;
19
- data: TData;
20
- cause: unknown;
21
- };
22
- export type ErrorHandlerInput = SingleErrorInput<'cannot-load-font-provider', {
23
- entrypoint: string;
24
- }> | SingleErrorInput<'unknown-fs-error', {}> | SingleErrorInput<'cannot-fetch-font-file', {
25
- url: string;
26
- }> | SingleErrorInput<'cannot-extract-font-type', {
27
- url: string;
28
- }> | SingleErrorInput<'cannot-extract-data', {
29
- family: string;
30
- url: string;
31
- }>;
32
- export interface ErrorHandler {
33
- handle: (input: ErrorHandlerInput) => Error;
34
- }
35
17
  interface ProxyData {
36
18
  weight: unifont.FontFaceData['weight'];
37
19
  style: unifont.FontFaceData['style'];
@@ -0,0 +1,2 @@
1
+ import type { RemoteFontProviderModResolver } from '../definitions.js';
2
+ export declare function createBuildRemoteFontProviderModResolver(): RemoteFontProviderModResolver;
@@ -0,0 +1,10 @@
1
+ function createBuildRemoteFontProviderModResolver() {
2
+ return {
3
+ resolve(id) {
4
+ return import(id);
5
+ }
6
+ };
7
+ }
8
+ export {
9
+ createBuildRemoteFontProviderModResolver
10
+ };
@@ -3,6 +3,3 @@ export declare function createBuildUrlProxyHashResolver({ hasher, contentResolve
3
3
  hasher: Hasher;
4
4
  contentResolver: UrlProxyContentResolver;
5
5
  }): UrlProxyHashResolver;
6
- export declare function createDevUrlProxyHashResolver({ baseHashResolver, }: {
7
- baseHashResolver: UrlProxyHashResolver;
8
- }): UrlProxyHashResolver;
@@ -0,0 +1,13 @@
1
+ function createBuildUrlProxyHashResolver({
2
+ hasher,
3
+ contentResolver
4
+ }) {
5
+ return {
6
+ resolve({ originalUrl, type }) {
7
+ return `${hasher.hashString(contentResolver.resolve(originalUrl))}.${type}`;
8
+ }
9
+ };
10
+ }
11
+ export {
12
+ createBuildUrlProxyHashResolver
13
+ };
@@ -1,9 +1,5 @@
1
1
  import type { AssetsPrefix } from '../../../types/public/index.js';
2
2
  import type { UrlResolver } from '../definitions.js';
3
- export declare function createDevUrlResolver({ base, searchParams, }: {
4
- base: string;
5
- searchParams: URLSearchParams;
6
- }): UrlResolver;
7
3
  export declare function createBuildUrlResolver({ base, assetsPrefix, searchParams, }: {
8
4
  base: string;
9
5
  assetsPrefix: AssetsPrefix;
@@ -1,26 +1,6 @@
1
1
  import { fileExtension, joinPaths, prependForwardSlash } from "../../../core/path.js";
2
2
  import { getAssetsPrefix } from "../../utils/getAssetsPrefix.js";
3
3
  import { createPlaceholderURL, stringifyPlaceholderURL } from "../../utils/url.js";
4
- function createDevUrlResolver({
5
- base,
6
- searchParams
7
- }) {
8
- let resolved = false;
9
- return {
10
- resolve(hash) {
11
- resolved ||= true;
12
- const urlPath = prependForwardSlash(joinPaths(base, hash));
13
- const url = createPlaceholderURL(urlPath);
14
- searchParams.forEach((value, key) => {
15
- url.searchParams.set(key, value);
16
- });
17
- return stringifyPlaceholderURL(url);
18
- },
19
- getCspResources() {
20
- return resolved ? ["'self'"] : [];
21
- }
22
- };
23
- }
24
4
  function createBuildUrlResolver({
25
5
  base,
26
6
  assetsPrefix,
@@ -50,6 +30,5 @@ function createBuildUrlResolver({
50
30
  };
51
31
  }
52
32
  export {
53
- createBuildUrlResolver,
54
- createDevUrlResolver
33
+ createBuildUrlResolver
55
34
  };
@@ -1,8 +1,7 @@
1
1
  import type { Storage } from 'unstorage';
2
- import type { ErrorHandler, FontFetcher } from '../definitions.js';
3
- export declare function createCachedFontFetcher({ storage, errorHandler, fetch, readFile, }: {
2
+ import type { FontFetcher } from '../definitions.js';
3
+ export declare function createCachedFontFetcher({ storage, fetch, readFile, }: {
4
4
  storage: Storage;
5
- errorHandler: ErrorHandler;
6
5
  fetch: (url: string, init?: RequestInit) => Promise<Response>;
7
6
  readFile: (url: string) => Promise<Buffer>;
8
7
  }): FontFetcher;
@@ -1,8 +1,8 @@
1
1
  import { isAbsolute } from "node:path";
2
+ import { AstroError, AstroErrorData } from "../../../core/errors/index.js";
2
3
  import { cache } from "../utils.js";
3
4
  function createCachedFontFetcher({
4
5
  storage,
5
- errorHandler,
6
6
  fetch,
7
7
  readFile
8
8
  }) {
@@ -19,11 +19,13 @@ function createCachedFontFetcher({
19
19
  }
20
20
  return Buffer.from(await response.arrayBuffer());
21
21
  } catch (cause) {
22
- throw errorHandler.handle({
23
- type: "cannot-fetch-font-file",
24
- data: { url },
25
- cause
26
- });
22
+ throw new AstroError(
23
+ {
24
+ ...AstroErrorData.CannotFetchFontFile,
25
+ message: AstroErrorData.CannotFetchFontFile.message(url)
26
+ },
27
+ { cause }
28
+ );
27
29
  }
28
30
  });
29
31
  }
@@ -1,6 +1,5 @@
1
1
  import type { ViteDevServer } from 'vite';
2
2
  import type { RemoteFontProviderModResolver } from '../definitions.js';
3
- export declare function createBuildRemoteFontProviderModResolver(): RemoteFontProviderModResolver;
4
3
  export declare function createDevServerRemoteFontProviderModResolver({ server, }: {
5
4
  server: ViteDevServer;
6
5
  }): RemoteFontProviderModResolver;
@@ -1,10 +1,3 @@
1
- function createBuildRemoteFontProviderModResolver() {
2
- return {
3
- resolve(id) {
4
- return import(id);
5
- }
6
- };
7
- }
8
1
  function createDevServerRemoteFontProviderModResolver({
9
2
  server
10
3
  }) {
@@ -15,6 +8,5 @@ function createDevServerRemoteFontProviderModResolver({
15
8
  };
16
9
  }
17
10
  export {
18
- createBuildRemoteFontProviderModResolver,
19
11
  createDevServerRemoteFontProviderModResolver
20
12
  };
@@ -0,0 +1,5 @@
1
+ import type { Hasher, UrlProxyContentResolver, UrlProxyHashResolver } from '../definitions.js';
2
+ export declare function createDevUrlProxyHashResolver({ hasher, contentResolver, }: {
3
+ hasher: Hasher;
4
+ contentResolver: UrlProxyContentResolver;
5
+ }): UrlProxyHashResolver;
@@ -1,25 +1,15 @@
1
- function createBuildUrlProxyHashResolver({
1
+ function createDevUrlProxyHashResolver({
2
2
  hasher,
3
3
  contentResolver
4
4
  }) {
5
5
  return {
6
- resolve({ originalUrl, type }) {
7
- return `${hasher.hashString(contentResolver.resolve(originalUrl))}.${type}`;
8
- }
9
- };
10
- }
11
- function createDevUrlProxyHashResolver({
12
- baseHashResolver
13
- }) {
14
- return {
15
- resolve(input) {
16
- const { cssVariable, data } = input;
6
+ resolve({ cssVariable, data, originalUrl, type }) {
17
7
  return [
18
8
  cssVariable.slice(2),
19
9
  formatWeight(data.weight),
20
10
  data.style,
21
11
  data.subset,
22
- baseHashResolver.resolve(input)
12
+ `${hasher.hashString(contentResolver.resolve(originalUrl))}.${type}`
23
13
  ].filter(Boolean).join("-");
24
14
  }
25
15
  };
@@ -34,6 +24,5 @@ function formatWeight(weight) {
34
24
  return weight?.replace(/\s+/g, "-");
35
25
  }
36
26
  export {
37
- createBuildUrlProxyHashResolver,
38
27
  createDevUrlProxyHashResolver
39
28
  };
@@ -0,0 +1,5 @@
1
+ import type { UrlResolver } from '../definitions.js';
2
+ export declare function createDevUrlResolver({ base, searchParams, }: {
3
+ base: string;
4
+ searchParams: URLSearchParams;
5
+ }): UrlResolver;
@@ -0,0 +1,25 @@
1
+ import { joinPaths, prependForwardSlash } from "../../../core/path.js";
2
+ import { createPlaceholderURL, stringifyPlaceholderURL } from "../../utils/url.js";
3
+ function createDevUrlResolver({
4
+ base,
5
+ searchParams
6
+ }) {
7
+ let resolved = false;
8
+ return {
9
+ resolve(hash) {
10
+ resolved ||= true;
11
+ const urlPath = prependForwardSlash(joinPaths(base, hash));
12
+ const url = createPlaceholderURL(urlPath);
13
+ searchParams.forEach((value, key) => {
14
+ url.searchParams.set(key, value);
15
+ });
16
+ return stringifyPlaceholderURL(url);
17
+ },
18
+ getCspResources() {
19
+ return resolved ? ["'self'"] : [];
20
+ }
21
+ };
22
+ }
23
+ export {
24
+ createDevUrlResolver
25
+ };
@@ -1,4 +1,2 @@
1
- import type { ErrorHandler, FontTypeExtractor } from '../definitions.js';
2
- export declare function createFontTypeExtractor({ errorHandler, }: {
3
- errorHandler: ErrorHandler;
4
- }): FontTypeExtractor;
1
+ import type { FontTypeExtractor } from '../definitions.js';
2
+ export declare function createFontTypeExtractor(): FontTypeExtractor;
@@ -1,17 +1,18 @@
1
1
  import { extname } from "node:path";
2
+ import { AstroError, AstroErrorData } from "../../../core/errors/index.js";
2
3
  import { isFontType } from "../utils.js";
3
- function createFontTypeExtractor({
4
- errorHandler
5
- }) {
4
+ function createFontTypeExtractor() {
6
5
  return {
7
6
  extract(url) {
8
7
  const extension = extname(url).slice(1);
9
8
  if (!isFontType(extension)) {
10
- throw errorHandler.handle({
11
- type: "cannot-extract-font-type",
12
- data: { url },
13
- cause: `Unexpected extension, got "${extension}"`
14
- });
9
+ throw new AstroError(
10
+ {
11
+ ...AstroErrorData.CannotExtractFontType,
12
+ message: AstroErrorData.CannotExtractFontType.message(url)
13
+ },
14
+ { cause: `Unexpected extension, got "${extension}"` }
15
+ );
15
16
  }
16
17
  return extension;
17
18
  }
@@ -0,0 +1,2 @@
1
+ import type { FontFileReader } from '../definitions.js';
2
+ export declare function createFontaceFontFileReader(): FontFileReader;
@@ -0,0 +1,27 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { fontace } from "fontace";
3
+ import { AstroError, AstroErrorData } from "../../../core/errors/index.js";
4
+ function createFontaceFontFileReader() {
5
+ return {
6
+ extract({ family, url }) {
7
+ try {
8
+ const data = fontace(readFileSync(url));
9
+ return {
10
+ weight: data.weight,
11
+ style: data.style
12
+ };
13
+ } catch (cause) {
14
+ throw new AstroError(
15
+ {
16
+ ...AstroErrorData.CannotDetermineWeightAndStyleFromFontFile,
17
+ message: AstroErrorData.CannotDetermineWeightAndStyleFromFontFile.message(family, url)
18
+ },
19
+ { cause }
20
+ );
21
+ }
22
+ }
23
+ };
24
+ }
25
+ export {
26
+ createFontaceFontFileReader
27
+ };
@@ -1,6 +1,5 @@
1
- import type { ErrorHandler, RemoteFontProviderModResolver, RemoteFontProviderResolver } from '../definitions.js';
2
- export declare function createRemoteFontProviderResolver({ root, modResolver, errorHandler, }: {
1
+ import type { RemoteFontProviderModResolver, RemoteFontProviderResolver } from '../definitions.js';
2
+ export declare function createRemoteFontProviderResolver({ root, modResolver, }: {
3
3
  root: URL;
4
4
  modResolver: RemoteFontProviderModResolver;
5
- errorHandler: ErrorHandler;
6
5
  }): RemoteFontProviderResolver;
@@ -1,8 +1,8 @@
1
+ import { AstroError, AstroErrorData } from "../../../core/errors/index.js";
1
2
  import { resolveEntrypoint } from "../utils.js";
2
3
  function validateMod({
3
4
  mod,
4
- entrypoint,
5
- errorHandler
5
+ entrypoint
6
6
  }) {
7
7
  try {
8
8
  if (typeof mod !== "object" || mod === null) {
@@ -15,19 +15,18 @@ function validateMod({
15
15
  provider: mod.provider
16
16
  };
17
17
  } catch (cause) {
18
- throw errorHandler.handle({
19
- type: "cannot-load-font-provider",
20
- data: {
21
- entrypoint
18
+ throw new AstroError(
19
+ {
20
+ ...AstroErrorData.CannotLoadFontProvider,
21
+ message: AstroErrorData.CannotLoadFontProvider.message(entrypoint)
22
22
  },
23
- cause
24
- });
23
+ { cause }
24
+ );
25
25
  }
26
26
  }
27
27
  function createRemoteFontProviderResolver({
28
28
  root,
29
- modResolver,
30
- errorHandler
29
+ modResolver
31
30
  }) {
32
31
  return {
33
32
  async resolve({ entrypoint, config }) {
@@ -35,8 +34,7 @@ function createRemoteFontProviderResolver({
35
34
  const mod = await modResolver.resolve(id);
36
35
  const { provider } = validateMod({
37
36
  mod,
38
- entrypoint: id,
39
- errorHandler
37
+ entrypoint: id
40
38
  });
41
39
  return { config, provider };
42
40
  }
@@ -1,5 +1,3 @@
1
- import type { ErrorHandler, UrlProxyContentResolver } from '../definitions.js';
2
- export declare function createLocalUrlProxyContentResolver({ errorHandler, }: {
3
- errorHandler: ErrorHandler;
4
- }): UrlProxyContentResolver;
1
+ import type { UrlProxyContentResolver } from '../definitions.js';
2
+ export declare function createLocalUrlProxyContentResolver(): UrlProxyContentResolver;
5
3
  export declare function createRemoteUrlProxyContentResolver(): UrlProxyContentResolver;
@@ -1,17 +1,12 @@
1
1
  import { readFileSync } from "node:fs";
2
- function createLocalUrlProxyContentResolver({
3
- errorHandler
4
- }) {
2
+ import { AstroError, AstroErrorData } from "../../../core/errors/index.js";
3
+ function createLocalUrlProxyContentResolver() {
5
4
  return {
6
5
  resolve(url) {
7
6
  try {
8
7
  return url + readFileSync(url, "utf-8");
9
8
  } catch (cause) {
10
- throw errorHandler.handle({
11
- type: "unknown-fs-error",
12
- data: {},
13
- cause
14
- });
9
+ throw new AstroError(AstroErrorData.UnknownFilesystemError, { cause });
15
10
  }
16
11
  }
17
12
  };
@@ -0,0 +1,2 @@
1
+ import type { Hasher } from '../definitions.js';
2
+ export declare function createXxhashHasher(): Promise<Hasher>;
@@ -1,6 +1,6 @@
1
1
  import xxhash from "xxhash-wasm";
2
2
  import { sortObjectByKey } from "../utils.js";
3
- async function createXxHasher() {
3
+ async function createXxhashHasher() {
4
4
  const { h64ToString: hashString } = await xxhash();
5
5
  return {
6
6
  hashString,
@@ -10,5 +10,5 @@ async function createXxHasher() {
10
10
  };
11
11
  }
12
12
  export {
13
- createXxHasher
13
+ createXxhashHasher
14
14
  };
@@ -17,36 +17,32 @@ import {
17
17
  RESOLVED_VIRTUAL_MODULE_ID,
18
18
  VIRTUAL_MODULE_ID
19
19
  } from "./constants.js";
20
- import { createMinifiableCssRenderer } from "./infra/css-renderer.js";
20
+ import { createBuildRemoteFontProviderModResolver } from "./infra/build-remote-font-provider-mod-resolver.js";
21
+ import { createBuildUrlProxyHashResolver } from "./infra/build-url-proxy-hash-resolver.js";
22
+ import { createBuildUrlResolver } from "./infra/build-url-resolver.js";
23
+ import { createCachedFontFetcher } from "./infra/cached-font-fetcher.js";
24
+ import { createCapsizeFontMetricsResolver } from "./infra/capsize-font-metrics-resolver.js";
21
25
  import { createDataCollector } from "./infra/data-collector.js";
22
- import { createAstroErrorHandler } from "./infra/error-handler.js";
23
- import { createCachedFontFetcher } from "./infra/font-fetcher.js";
24
- import { createFontaceFontFileReader } from "./infra/font-file-reader.js";
25
- import { createCapsizeFontMetricsResolver } from "./infra/font-metrics-resolver.js";
26
+ import { createDevServerRemoteFontProviderModResolver } from "./infra/dev-remote-font-provider-mod-resolver.js";
27
+ import { createDevUrlProxyHashResolver } from "./infra/dev-url-proxy-hash-resolver.js";
28
+ import { createDevUrlResolver } from "./infra/dev-url-resolver.js";
26
29
  import { createFontTypeExtractor } from "./infra/font-type-extractor.js";
27
- import { createXxHasher } from "./infra/hasher.js";
30
+ import { createFontaceFontFileReader } from "./infra/fontace-font-file-reader.js";
31
+ import { createFsStorage } from "./infra/fs-storage.js";
28
32
  import { createLevenshteinStringMatcher } from "./infra/levenshtein-string-matcher.js";
29
- import { createRequireLocalProviderUrlResolver } from "./infra/local-provider-url-resolver.js";
30
- import {
31
- createBuildRemoteFontProviderModResolver,
32
- createDevServerRemoteFontProviderModResolver
33
- } from "./infra/remote-font-provider-mod-resolver.js";
33
+ import { createMinifiableCssRenderer } from "./infra/minifiable-css-renderer.js";
34
34
  import { createRemoteFontProviderResolver } from "./infra/remote-font-provider-resolver.js";
35
- import { createFsStorage } from "./infra/storage.js";
35
+ import { createRequireLocalProviderUrlResolver } from "./infra/require-local-provider-url-resolver.js";
36
36
  import { createSystemFallbacksProvider } from "./infra/system-fallbacks-provider.js";
37
37
  import { createUrlProxy } from "./infra/url-proxy.js";
38
38
  import {
39
39
  createLocalUrlProxyContentResolver,
40
40
  createRemoteUrlProxyContentResolver
41
41
  } from "./infra/url-proxy-content-resolver.js";
42
- import {
43
- createBuildUrlProxyHashResolver,
44
- createDevUrlProxyHashResolver
45
- } from "./infra/url-proxy-hash-resolver.js";
46
- import { createBuildUrlResolver, createDevUrlResolver } from "./infra/url-resolver.js";
42
+ import { createXxhashHasher } from "./infra/xxhash-hasher.js";
47
43
  import { orchestrate } from "./orchestrate.js";
48
44
  function fontsPlugin({ settings, sync, logger }) {
49
- if (sync || !settings.config.experimental.fonts) {
45
+ if (!settings.config.experimental.fonts) {
50
46
  return {
51
47
  name: "astro:fonts:fallback",
52
48
  resolveId(id) {
@@ -87,12 +83,10 @@ function fontsPlugin({ settings, sync, logger }) {
87
83
  createHashResolver
88
84
  }) {
89
85
  const { root } = settings.config;
90
- const hasher = await createXxHasher();
91
- const errorHandler = createAstroErrorHandler();
86
+ const hasher = await createXxhashHasher();
92
87
  const remoteFontProviderResolver = createRemoteFontProviderResolver({
93
88
  root,
94
- modResolver,
95
- errorHandler
89
+ modResolver
96
90
  });
97
91
  const pathsToWarn = /* @__PURE__ */ new Set();
98
92
  const localProviderUrlResolver = createRequireLocalProviderUrlResolver({
@@ -112,10 +106,10 @@ function fontsPlugin({ settings, sync, logger }) {
112
106
  });
113
107
  const storage = createFsStorage({ base: cacheDir });
114
108
  const systemFallbacksProvider = createSystemFallbacksProvider();
115
- fontFetcher = createCachedFontFetcher({ storage, errorHandler, fetch, readFile });
109
+ fontFetcher = createCachedFontFetcher({ storage, fetch, readFile });
116
110
  const fontMetricsResolver = createCapsizeFontMetricsResolver({ fontFetcher, cssRenderer });
117
- fontTypeExtractor = createFontTypeExtractor({ errorHandler });
118
- const fontFileReader = createFontaceFontFileReader({ errorHandler });
111
+ fontTypeExtractor = createFontTypeExtractor();
112
+ const fontFileReader = createFontaceFontFileReader();
119
113
  const stringMatcher = createLevenshteinStringMatcher();
120
114
  const res = await orchestrate({
121
115
  families: settings.config.experimental.fonts,
@@ -131,7 +125,7 @@ function fontsPlugin({ settings, sync, logger }) {
131
125
  logger,
132
126
  createUrlProxy: ({ local, cssVariable, ...params }) => {
133
127
  const dataCollector = createDataCollector(params);
134
- const contentResolver = local ? createLocalUrlProxyContentResolver({ errorHandler }) : createRemoteUrlProxyContentResolver();
128
+ const contentResolver = local ? createLocalUrlProxyContentResolver() : createRemoteUrlProxyContentResolver();
135
129
  return createUrlProxy({
136
130
  urlResolver,
137
131
  hashResolver: createHashResolver({ hasher, contentResolver }),
@@ -173,7 +167,7 @@ function fontsPlugin({ settings, sync, logger }) {
173
167
  assetsPrefix: settings.config.build.assetsPrefix,
174
168
  searchParams: settings.adapter?.client?.assetQueryParams ?? new URLSearchParams()
175
169
  }),
176
- createHashResolver: (dependencies) => createBuildUrlProxyHashResolver(dependencies)
170
+ createHashResolver: createBuildUrlProxyHashResolver
177
171
  });
178
172
  }
179
173
  },
@@ -187,9 +181,7 @@ function fontsPlugin({ settings, sync, logger }) {
187
181
  base: baseUrl,
188
182
  searchParams: settings.adapter?.client?.assetQueryParams ?? new URLSearchParams()
189
183
  }),
190
- createHashResolver: (dependencies) => createDevUrlProxyHashResolver({
191
- baseHashResolver: createBuildUrlProxyHashResolver(dependencies)
192
- })
184
+ createHashResolver: createDevUrlProxyHashResolver
193
185
  });
194
186
  const localPaths = [...fontFileDataMap.values()].filter(({ url }) => isAbsolute(url)).map((v) => v.url);
195
187
  server.watcher.on("change", (path) => {
@@ -252,7 +244,7 @@ function fontsPlugin({ settings, sync, logger }) {
252
244
  }
253
245
  },
254
246
  async buildEnd() {
255
- if (settings.config.experimental.fonts.length === 0) {
247
+ if (sync || settings.config.experimental.fonts.length === 0) {
256
248
  cleanup();
257
249
  return;
258
250
  }
@@ -1,3 +1 @@
1
- import { isRemoteAllowed, matchHostname, matchPathname, matchPattern, matchPort, matchProtocol, type RemotePattern } from '@astrojs/internal-helpers/remote';
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,2 +1,4 @@
1
1
  import type { KeyGenerator } from '../definitions.js';
2
- export declare function createCryptoKeyGenerator(): KeyGenerator;
2
+ export declare class CryptoKeyGenerator implements KeyGenerator {
3
+ generate(): Promise<string>;
4
+ }
@@ -1,13 +1,11 @@
1
1
  import { createKey, encodeKey } from "../../../core/encryption.js";
2
- function createCryptoKeyGenerator() {
3
- return {
4
- async generate() {
5
- const key = await createKey();
6
- const encoded = await encodeKey(key);
7
- return encoded;
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
- createCryptoKeyGenerator
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
- export declare function createProcessCloudIdeProvider(): CloudIdeProvider;
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
- function createProcessCloudIdeProvider() {
2
- return {
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
- createProcessCloudIdeProvider
5
+ ProcessCloudIdeProvider
10
6
  };