astro 5.16.13 → 5.16.15

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 (84) hide show
  1. package/components/Font.astro +4 -4
  2. package/dist/assets/fonts/config.d.ts +19 -236
  3. package/dist/assets/fonts/config.js +7 -23
  4. package/dist/assets/fonts/constants.d.ts +0 -1
  5. package/dist/assets/fonts/constants.js +0 -2
  6. package/dist/assets/fonts/core/collect-component-data.d.ts +9 -0
  7. package/dist/assets/fonts/core/collect-component-data.js +47 -0
  8. package/dist/assets/fonts/core/collect-font-assets-from-faces.d.ts +17 -0
  9. package/dist/assets/fonts/core/collect-font-assets-from-faces.js +71 -0
  10. package/dist/assets/fonts/core/collect-font-data.d.ts +4 -0
  11. package/dist/assets/fonts/core/collect-font-data.js +23 -0
  12. package/dist/assets/fonts/core/compute-font-families-assets.d.ts +20 -0
  13. package/dist/assets/fonts/core/compute-font-families-assets.js +67 -0
  14. package/dist/assets/fonts/core/filter-and-transform-font-faces.d.ts +20 -0
  15. package/dist/assets/fonts/core/filter-and-transform-font-faces.js +39 -0
  16. package/dist/assets/fonts/core/get-or-create-font-family-assets.d.ts +8 -0
  17. package/dist/assets/fonts/core/get-or-create-font-family-assets.js +34 -0
  18. package/dist/assets/fonts/core/optimize-fallbacks.d.ts +2 -3
  19. package/dist/assets/fonts/core/optimize-fallbacks.js +2 -3
  20. package/dist/assets/fonts/core/resolve-family.d.ts +6 -0
  21. package/dist/assets/fonts/core/resolve-family.js +23 -0
  22. package/dist/assets/fonts/definitions.d.ts +6 -28
  23. package/dist/assets/fonts/infra/build-font-file-id-generator.d.ts +13 -0
  24. package/dist/assets/fonts/infra/{build-url-proxy-hash-resolver.js → build-font-file-id-generator.js} +3 -6
  25. package/dist/assets/fonts/infra/build-url-resolver.d.ts +1 -1
  26. package/dist/assets/fonts/infra/build-url-resolver.js +4 -4
  27. package/dist/assets/fonts/infra/cached-font-fetcher.d.ts +1 -1
  28. package/dist/assets/fonts/infra/cached-font-fetcher.js +11 -3
  29. package/dist/assets/fonts/infra/capsize-font-metrics-resolver.d.ts +2 -2
  30. package/dist/assets/fonts/infra/dev-font-file-id-generator.d.ts +16 -0
  31. package/dist/assets/fonts/infra/{dev-url-proxy-hash-resolver.js → dev-font-file-id-generator.js} +8 -8
  32. package/dist/assets/fonts/infra/dev-url-resolver.d.ts +1 -1
  33. package/dist/assets/fonts/infra/dev-url-resolver.js +2 -2
  34. package/dist/assets/fonts/infra/fs-font-file-content-resolver.d.ts +10 -0
  35. package/dist/assets/fonts/infra/fs-font-file-content-resolver.js +21 -0
  36. package/dist/assets/fonts/infra/minifiable-css-renderer.d.ts +2 -1
  37. package/dist/assets/fonts/infra/{font-type-extractor.d.ts → node-font-type-extractor.d.ts} +1 -1
  38. package/dist/assets/fonts/infra/{font-type-extractor.js → node-font-type-extractor.js} +2 -2
  39. package/dist/assets/fonts/infra/unifont-font-resolver.d.ts +5 -3
  40. package/dist/assets/fonts/infra/unifont-font-resolver.js +14 -17
  41. package/dist/assets/fonts/providers/index.d.ts +6 -1
  42. package/dist/assets/fonts/providers/index.js +9 -1
  43. package/dist/assets/fonts/providers/local.d.ts +41 -8
  44. package/dist/assets/fonts/providers/local.js +65 -48
  45. package/dist/assets/fonts/runtime/client.d.ts +1 -1
  46. package/dist/assets/fonts/runtime/client.js +1 -1
  47. package/dist/assets/fonts/runtime/server.d.ts +1 -1
  48. package/dist/assets/fonts/runtime/server.js +1 -1
  49. package/dist/assets/fonts/types.d.ts +61 -110
  50. package/dist/assets/fonts/utils.d.ts +1 -7
  51. package/dist/assets/fonts/utils.js +1 -15
  52. package/dist/assets/fonts/vite-plugin-fonts.js +149 -141
  53. package/dist/cli/add/index.js +39 -0
  54. package/dist/cli/infra/build-time-astro-version-provider.js +1 -1
  55. package/dist/config/index.d.ts +1 -2
  56. package/dist/content/content-layer.js +3 -3
  57. package/dist/core/config/schemas/base.d.ts +58 -429
  58. package/dist/core/config/schemas/base.js +2 -2
  59. package/dist/core/config/schemas/relative.d.ts +76 -541
  60. package/dist/core/constants.js +1 -1
  61. package/dist/core/dev/dev.js +1 -1
  62. package/dist/core/errors/errors-data.d.ts +1 -1
  63. package/dist/core/errors/errors-data.js +1 -1
  64. package/dist/core/messages.js +2 -2
  65. package/dist/types/public/config.d.ts +3 -4
  66. package/package.json +5 -5
  67. package/dist/assets/fonts/core/normalize-remote-font-faces.d.ts +0 -7
  68. package/dist/assets/fonts/core/normalize-remote-font-faces.js +0 -41
  69. package/dist/assets/fonts/core/resolve-families.d.ts +0 -16
  70. package/dist/assets/fonts/core/resolve-families.js +0 -63
  71. package/dist/assets/fonts/infra/build-url-proxy-hash-resolver.d.ts +0 -15
  72. package/dist/assets/fonts/infra/data-collector.d.ts +0 -10
  73. package/dist/assets/fonts/infra/data-collector.js +0 -35
  74. package/dist/assets/fonts/infra/dev-url-proxy-hash-resolver.d.ts +0 -15
  75. package/dist/assets/fonts/infra/local-url-proxy-content-resolver.d.ts +0 -4
  76. package/dist/assets/fonts/infra/local-url-proxy-content-resolver.js +0 -14
  77. package/dist/assets/fonts/infra/remote-url-proxy-content-resolver.d.ts +0 -4
  78. package/dist/assets/fonts/infra/remote-url-proxy-content-resolver.js +0 -9
  79. package/dist/assets/fonts/infra/require-local-provider-url-resolver.d.ts +0 -9
  80. package/dist/assets/fonts/infra/require-local-provider-url-resolver.js +0 -30
  81. package/dist/assets/fonts/infra/url-proxy.d.ts +0 -16
  82. package/dist/assets/fonts/infra/url-proxy.js +0 -50
  83. package/dist/assets/fonts/orchestrate.d.ts +0 -42
  84. package/dist/assets/fonts/orchestrate.js +0 -173
@@ -1,4 +1,4 @@
1
- const ASTRO_VERSION = "5.16.13";
1
+ const ASTRO_VERSION = "5.16.15";
2
2
  const REROUTE_DIRECTIVE_HEADER = "X-Astro-Reroute";
3
3
  const REWRITE_DIRECTIVE_HEADER_KEY = "X-Astro-Rewrite";
4
4
  const REWRITE_DIRECTIVE_HEADER_VALUE = "yes";
@@ -22,7 +22,7 @@ async function dev(inlineConfig) {
22
22
  await telemetry.record([]);
23
23
  const restart = await createContainerWithAutomaticRestart({ inlineConfig, fs });
24
24
  const logger = restart.container.logger;
25
- const currentVersion = "5.16.13";
25
+ const currentVersion = "5.16.15";
26
26
  const isPrerelease = currentVersion.includes("-");
27
27
  if (!isPrerelease) {
28
28
  try {
@@ -1239,7 +1239,7 @@ export declare const ExperimentalFontsNotEnabled: {
1239
1239
  * @description
1240
1240
  * Font family not found
1241
1241
  * @message
1242
- * No data was found for the `cssVariable` passed to the `<Font />`.
1242
+ * No data was found for the `cssVariable` passed to the `<Font />` component.
1243
1243
  */
1244
1244
  export declare const FontFamilyNotFound: {
1245
1245
  name: string;
@@ -473,7 +473,7 @@ const FontFamilyNotFound = {
473
473
  const FontBufferNotFound = {
474
474
  name: "FontBufferNotFound",
475
475
  title: "Font buffer not found",
476
- message: (url) => `No buffer was found for the \`"${url}"\` passed to the \`getFontBuffer()\` function.`,
476
+ message: (url) => `No buffer was found for the \`"${url}"\` URL passed to the \`getFontBuffer()\` function.`,
477
477
  hint: "Make sure you pass a valid URL, obtained via the `fontData` object."
478
478
  };
479
479
  const CspNotEnabled = {
@@ -38,7 +38,7 @@ function serverStart({
38
38
  host,
39
39
  base
40
40
  }) {
41
- const version = "5.16.13";
41
+ const version = "5.16.15";
42
42
  const localPrefix = `${dim("\u2503")} Local `;
43
43
  const networkPrefix = `${dim("\u2503")} Network `;
44
44
  const emptyPrefix = " ".repeat(11);
@@ -275,7 +275,7 @@ function printHelp({
275
275
  message.push(
276
276
  linebreak(),
277
277
  ` ${bgGreen(black(` ${commandName} `))} ${green(
278
- `v${"5.16.13"}`
278
+ `v${"5.16.15"}`
279
279
  )} ${headline}`
280
280
  );
281
281
  }
@@ -4,8 +4,7 @@ import type { RehypePlugins, RemarkPlugins, RemarkRehype, ShikiConfig, SyntaxHig
4
4
  import type { Config as SvgoConfig } from 'svgo';
5
5
  import type { BuiltinDriverName, BuiltinDriverOptions, Driver, Storage } from 'unstorage';
6
6
  import type { UserConfig as OriginalViteUserConfig, SSROptions as ViteSSROptions } from 'vite';
7
- import type { LOCAL_PROVIDER_NAME } from '../../assets/fonts/constants.js';
8
- import type { FontFamily, FontProvider, LocalFontFamily } from '../../assets/fonts/types.js';
7
+ import type { FontFamily, FontProvider } from '../../assets/fonts/types.js';
9
8
  import type { ImageFit, ImageLayout } from '../../assets/types.js';
10
9
  import type { AssetsPrefix } from '../../core/app/types.js';
11
10
  import type { AstroConfigType } from '../../core/config/schemas/index.js';
@@ -152,7 +151,7 @@ export interface ViteUserConfig extends OriginalViteUserConfig {
152
151
  *
153
152
  * Generics do not follow semver and may change at any time.
154
153
  */
155
- export interface AstroUserConfig<TLocales extends Locales = never, TSession extends SessionDriverName = never, TFontProviders extends Array<FontProvider | typeof LOCAL_PROVIDER_NAME> = never> {
154
+ export interface AstroUserConfig<TLocales extends Locales = never, TSession extends SessionDriverName = never, TFontProviders extends Array<FontProvider> = never> {
156
155
  /**
157
156
  * @docs
158
157
  * @kind heading
@@ -2061,7 +2060,7 @@ export interface AstroUserConfig<TLocales extends Locales = never, TSession exte
2061
2060
  * see the [Fonts RFC](https://github.com/withastro/roadmap/pull/1039).
2062
2061
  */
2063
2062
  fonts?: [TFontProviders] extends [never] ? Array<FontFamily> : {
2064
- [K in keyof TFontProviders]: TFontProviders[K] extends FontProvider ? FontFamily<TFontProviders[K]> : LocalFontFamily;
2063
+ [K in keyof TFontProviders]: FontFamily<TFontProviders[K]>;
2065
2064
  };
2066
2065
  /**
2067
2066
  * @name experimental.headingIdCompat
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "astro",
3
- "version": "5.16.13",
3
+ "version": "5.16.15",
4
4
  "description": "Astro is a modern site builder with web best practices, performance, and DX front-of-mind.",
5
5
  "type": "module",
6
6
  "author": "withastro",
@@ -154,9 +154,9 @@
154
154
  "zod": "^3.25.76",
155
155
  "zod-to-json-schema": "^3.25.1",
156
156
  "zod-to-ts": "^1.2.0",
157
- "@astrojs/internal-helpers": "0.7.5",
158
157
  "@astrojs/markdown-remark": "6.3.10",
159
- "@astrojs/telemetry": "3.3.0"
158
+ "@astrojs/telemetry": "3.3.0",
159
+ "@astrojs/internal-helpers": "0.7.5"
160
160
  },
161
161
  "optionalDependencies": {
162
162
  "sharp": "^0.34.0"
@@ -194,8 +194,8 @@
194
194
  "undici": "^6.23.0",
195
195
  "unified": "^11.0.5",
196
196
  "vitest": "^3.2.4",
197
- "@astrojs/check": "0.9.6",
198
- "astro-scripts": "0.0.14"
197
+ "astro-scripts": "0.0.14",
198
+ "@astrojs/check": "0.9.6"
199
199
  },
200
200
  "engines": {
201
201
  "node": "18.20.8 || ^20.3.0 || >=22.0.0",
@@ -1,7 +0,0 @@
1
- import type * as unifont from 'unifont';
2
- import type { FontTypeExtractor, UrlProxy } from '../definitions.js';
3
- export declare function normalizeRemoteFontFaces({ fonts, urlProxy, fontTypeExtractor, }: {
4
- fonts: Array<unifont.FontFaceData>;
5
- urlProxy: UrlProxy;
6
- fontTypeExtractor: FontTypeExtractor;
7
- }): Array<unifont.FontFaceData>;
@@ -1,41 +0,0 @@
1
- import { FONT_FORMATS } from "../constants.js";
2
- function normalizeRemoteFontFaces({
3
- fonts,
4
- urlProxy,
5
- fontTypeExtractor
6
- }) {
7
- return fonts.filter((font) => typeof font.meta?.priority === "number" ? font.meta.priority <= 1 : true).map((font) => {
8
- let index = 0;
9
- return {
10
- ...font,
11
- src: font.src.map((source) => {
12
- if ("name" in source) {
13
- return source;
14
- }
15
- const url = source.url.startsWith("//") ? `https:${source.url}` : source.url;
16
- const proxied = {
17
- ...source,
18
- originalURL: url,
19
- url: urlProxy.proxy({
20
- url,
21
- type: FONT_FORMATS.find((e) => e.format === source.format)?.type ?? fontTypeExtractor.extract(source.url),
22
- // We only collect the first URL to avoid preloading fallback sources (eg. we only
23
- // preload woff2 if woff is available)
24
- collectPreload: index === 0,
25
- data: {
26
- weight: font.weight,
27
- style: font.style,
28
- subset: font.meta?.subset
29
- },
30
- init: font.meta?.init ?? null
31
- })
32
- };
33
- index++;
34
- return proxied;
35
- })
36
- };
37
- });
38
- }
39
- export {
40
- normalizeRemoteFontFaces
41
- };
@@ -1,16 +0,0 @@
1
- import type { Hasher, LocalProviderUrlResolver } from '../definitions.js';
2
- import type { FontFamily, ResolvedFontFamily } from '../types.js';
3
- /**
4
- * Dedupes properties if applicable and resolves entrypoints.
5
- */
6
- export declare function resolveFamily({ family, hasher, localProviderUrlResolver, }: {
7
- family: FontFamily;
8
- hasher: Hasher;
9
- localProviderUrlResolver: LocalProviderUrlResolver;
10
- }): ResolvedFontFamily;
11
- /**
12
- * A function for convenience. The actual logic lives in resolveFamily
13
- */
14
- export declare function resolveFamilies({ families, ...dependencies }: {
15
- families: Array<FontFamily>;
16
- } & Omit<Parameters<typeof resolveFamily>[0], 'family'>): Array<ResolvedFontFamily>;
@@ -1,63 +0,0 @@
1
- import { LOCAL_PROVIDER_NAME } from "../constants.js";
2
- import { dedupe, withoutQuotes } from "../utils.js";
3
- function resolveVariants({
4
- variants,
5
- localProviderUrlResolver
6
- }) {
7
- return variants.map((variant) => ({
8
- ...variant,
9
- weight: variant.weight?.toString(),
10
- src: variant.src.map((value) => {
11
- const isValue = typeof value === "string" || value instanceof URL;
12
- const url = (isValue ? value : value.url).toString();
13
- const tech = isValue ? void 0 : value.tech;
14
- return {
15
- url: localProviderUrlResolver.resolve(url),
16
- tech
17
- };
18
- })
19
- }));
20
- }
21
- function resolveFamily({
22
- family,
23
- hasher,
24
- localProviderUrlResolver
25
- }) {
26
- const name = withoutQuotes(family.name);
27
- const nameWithHash = `${name}-${hasher.hashObject(family)}`;
28
- if (family.provider === LOCAL_PROVIDER_NAME) {
29
- return {
30
- ...family,
31
- name,
32
- nameWithHash,
33
- variants: resolveVariants({ variants: family.variants, localProviderUrlResolver }),
34
- fallbacks: family.fallbacks ? dedupe(family.fallbacks) : void 0
35
- };
36
- }
37
- return {
38
- ...family,
39
- name,
40
- nameWithHash,
41
- weights: family.weights ? dedupe(family.weights.map((weight) => weight.toString())) : void 0,
42
- styles: family.styles ? dedupe(family.styles) : void 0,
43
- subsets: family.subsets ? dedupe(family.subsets) : void 0,
44
- formats: family.formats ? dedupe(family.formats) : void 0,
45
- fallbacks: family.fallbacks ? dedupe(family.fallbacks) : void 0,
46
- unicodeRange: family.unicodeRange ? dedupe(family.unicodeRange) : void 0
47
- };
48
- }
49
- function resolveFamilies({
50
- families,
51
- ...dependencies
52
- }) {
53
- return families.map(
54
- (family) => resolveFamily({
55
- family,
56
- ...dependencies
57
- })
58
- );
59
- }
60
- export {
61
- resolveFamilies,
62
- resolveFamily
63
- };
@@ -1,15 +0,0 @@
1
- import type { Hasher, ProxyData, UrlProxyContentResolver, UrlProxyHashResolver } from '../definitions.js';
2
- import type { FontType } from '../types.js';
3
- export declare class BuildUrlProxyHashResolver implements UrlProxyHashResolver {
4
- #private;
5
- constructor({ hasher, contentResolver, }: {
6
- hasher: Hasher;
7
- contentResolver: UrlProxyContentResolver;
8
- });
9
- resolve({ originalUrl, type, }: {
10
- originalUrl: string;
11
- type: FontType;
12
- cssVariable: string;
13
- data: ProxyData;
14
- }): string;
15
- }
@@ -1,10 +0,0 @@
1
- import type { DataCollector, ProxyData } from '../definitions.js';
2
- import type { CreateUrlProxyParams, FontFileData, PreloadData } from '../types.js';
3
- export declare class RealDataCollector implements DataCollector {
4
- #private;
5
- constructor({ hasUrl, saveUrl, savePreload, saveFontData, }: Pick<CreateUrlProxyParams, 'hasUrl' | 'saveUrl' | 'savePreload' | 'saveFontData'>);
6
- collect({ hash, url, init, preload, data, }: FontFileData & {
7
- data: ProxyData;
8
- preload: PreloadData | null;
9
- }): void;
10
- }
@@ -1,35 +0,0 @@
1
- class RealDataCollector {
2
- #hasUrl;
3
- #saveUrl;
4
- #savePreload;
5
- #saveFontData;
6
- constructor({
7
- hasUrl,
8
- saveUrl,
9
- savePreload,
10
- saveFontData
11
- }) {
12
- this.#hasUrl = hasUrl;
13
- this.#saveUrl = saveUrl;
14
- this.#savePreload = savePreload;
15
- this.#saveFontData = saveFontData;
16
- }
17
- collect({
18
- hash,
19
- url,
20
- init,
21
- preload,
22
- data
23
- }) {
24
- if (!this.#hasUrl(hash)) {
25
- this.#saveUrl({ hash, url, init });
26
- if (preload) {
27
- this.#savePreload(preload);
28
- }
29
- }
30
- this.#saveFontData({ hash, url, data, init });
31
- }
32
- }
33
- export {
34
- RealDataCollector
35
- };
@@ -1,15 +0,0 @@
1
- import type { Hasher, ProxyData, UrlProxyContentResolver, UrlProxyHashResolver } from '../definitions.js';
2
- import type { FontType } from '../types.js';
3
- export declare class DevUrlProxyHashResolver implements UrlProxyHashResolver {
4
- #private;
5
- constructor({ hasher, contentResolver, }: {
6
- hasher: Hasher;
7
- contentResolver: UrlProxyContentResolver;
8
- });
9
- resolve({ cssVariable, data, originalUrl, type, }: {
10
- originalUrl: string;
11
- type: FontType;
12
- cssVariable: string;
13
- data: ProxyData;
14
- }): string;
15
- }
@@ -1,4 +0,0 @@
1
- import type { UrlProxyContentResolver } from '../definitions.js';
2
- export declare class LocalUrlProxyContentResolver implements UrlProxyContentResolver {
3
- resolve(url: string): string;
4
- }
@@ -1,14 +0,0 @@
1
- import { readFileSync } from "node:fs";
2
- import { AstroError, AstroErrorData } from "../../../core/errors/index.js";
3
- class LocalUrlProxyContentResolver {
4
- resolve(url) {
5
- try {
6
- return url + readFileSync(url, "utf-8");
7
- } catch (cause) {
8
- throw new AstroError(AstroErrorData.UnknownFilesystemError, { cause });
9
- }
10
- }
11
- }
12
- export {
13
- LocalUrlProxyContentResolver
14
- };
@@ -1,4 +0,0 @@
1
- import type { UrlProxyContentResolver } from '../definitions.js';
2
- export declare class RemoteUrlProxyContentResolver implements UrlProxyContentResolver {
3
- resolve(url: string): string;
4
- }
@@ -1,9 +0,0 @@
1
- class RemoteUrlProxyContentResolver {
2
- // Passthrough, the remote provider URL is enough
3
- resolve(url) {
4
- return url;
5
- }
6
- }
7
- export {
8
- RemoteUrlProxyContentResolver
9
- };
@@ -1,9 +0,0 @@
1
- import type { LocalProviderUrlResolver } from '../definitions.js';
2
- export declare class RequireLocalProviderUrlResolver implements LocalProviderUrlResolver {
3
- #private;
4
- constructor({ root, intercept, }: {
5
- root: URL;
6
- intercept?: ((path: string) => void) | undefined;
7
- });
8
- resolve(input: string): string;
9
- }
@@ -1,30 +0,0 @@
1
- import { createRequire } from "node:module";
2
- import { fileURLToPath, pathToFileURL } from "node:url";
3
- class RequireLocalProviderUrlResolver {
4
- #root;
5
- // TODO: remove when stabilizing
6
- #intercept;
7
- constructor({
8
- root,
9
- intercept
10
- }) {
11
- this.#root = root;
12
- this.#intercept = intercept;
13
- }
14
- #resolveEntrypoint(root, entrypoint) {
15
- const require2 = createRequire(root);
16
- try {
17
- return pathToFileURL(require2.resolve(entrypoint));
18
- } catch {
19
- return new URL(entrypoint, root);
20
- }
21
- }
22
- resolve(input) {
23
- const path = fileURLToPath(this.#resolveEntrypoint(this.#root, input));
24
- this.#intercept?.(path);
25
- return path;
26
- }
27
- }
28
- export {
29
- RequireLocalProviderUrlResolver
30
- };
@@ -1,16 +0,0 @@
1
- import type { DataCollector, ProxyData, UrlProxy, UrlProxyHashResolver, UrlResolver } from '../definitions.js';
2
- import type { FontFileData, FontType } from '../types.js';
3
- export declare class RealUrlProxy implements UrlProxy {
4
- #private;
5
- constructor({ hashResolver, dataCollector, urlResolver, cssVariable, }: {
6
- hashResolver: UrlProxyHashResolver;
7
- dataCollector: DataCollector;
8
- urlResolver: UrlResolver;
9
- cssVariable: string;
10
- });
11
- proxy({ url: originalUrl, type, data, collectPreload, init, }: Pick<FontFileData, 'url' | 'init'> & {
12
- type: FontType;
13
- collectPreload: boolean;
14
- data: ProxyData;
15
- }): string;
16
- }
@@ -1,50 +0,0 @@
1
- import { renderFontWeight } from "../utils.js";
2
- class RealUrlProxy {
3
- #hashResolver;
4
- #dataCollector;
5
- #urlResolver;
6
- #cssVariable;
7
- constructor({
8
- hashResolver,
9
- dataCollector,
10
- urlResolver,
11
- cssVariable
12
- }) {
13
- this.#hashResolver = hashResolver;
14
- this.#dataCollector = dataCollector;
15
- this.#urlResolver = urlResolver;
16
- this.#cssVariable = cssVariable;
17
- }
18
- proxy({
19
- url: originalUrl,
20
- type,
21
- data,
22
- collectPreload,
23
- init
24
- }) {
25
- const hash = this.#hashResolver.resolve({
26
- cssVariable: this.#cssVariable,
27
- data,
28
- originalUrl,
29
- type
30
- });
31
- const url = this.#urlResolver.resolve(hash);
32
- this.#dataCollector.collect({
33
- url: originalUrl,
34
- hash,
35
- preload: collectPreload ? {
36
- url,
37
- type,
38
- weight: renderFontWeight(data.weight),
39
- style: data.style,
40
- subset: data.subset
41
- } : null,
42
- data,
43
- init
44
- });
45
- return url;
46
- }
47
- }
48
- export {
49
- RealUrlProxy
50
- };
@@ -1,42 +0,0 @@
1
- import type { Logger } from '../../core/logger/core.js';
2
- import type { CssRenderer, FontFileReader, FontMetricsResolver, FontResolver, FontTypeExtractor, Hasher, LocalProviderUrlResolver, StringMatcher, SystemFallbacksProvider, UrlProxy } from './definitions.js';
3
- import type { CreateUrlProxyParams, Defaults, FontDataRecord, FontFamily, FontFileDataMap, InternalConsumableMap, ResolvedFontFamily } from './types.js';
4
- /**
5
- * Manages how fonts are resolved:
6
- *
7
- * - families are resolved
8
- * - font resolver is initialized
9
- *
10
- * For each family:
11
- * - We create a URL proxy
12
- * - We resolve the font and normalize the result
13
- *
14
- * For each resolved font:
15
- * - We generate the CSS font face
16
- * - We generate optimized fallbacks if applicable
17
- * - We generate CSS variables
18
- *
19
- * Once that's done, the collected data is returned
20
- */
21
- export declare function orchestrate({ families, hasher, localProviderUrlResolver, cssRenderer, systemFallbacksProvider, fontMetricsResolver, fontTypeExtractor, fontFileReader, logger, createUrlProxy, defaults, bold, stringMatcher, createFontResolver, }: {
22
- families: Array<FontFamily>;
23
- hasher: Hasher;
24
- localProviderUrlResolver: LocalProviderUrlResolver;
25
- cssRenderer: CssRenderer;
26
- systemFallbacksProvider: SystemFallbacksProvider;
27
- fontMetricsResolver: FontMetricsResolver;
28
- fontTypeExtractor: FontTypeExtractor;
29
- fontFileReader: FontFileReader;
30
- logger: Logger;
31
- createUrlProxy: (params: CreateUrlProxyParams) => UrlProxy;
32
- defaults: Defaults;
33
- bold: (input: string) => string;
34
- stringMatcher: StringMatcher;
35
- createFontResolver: (params: {
36
- families: Array<ResolvedFontFamily>;
37
- }) => Promise<FontResolver>;
38
- }): Promise<{
39
- fontFileDataMap: FontFileDataMap;
40
- internalConsumableMap: InternalConsumableMap;
41
- fontData: FontDataRecord;
42
- }>;