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.
- package/components/Font.astro +4 -4
- package/dist/assets/fonts/config.d.ts +19 -236
- package/dist/assets/fonts/config.js +7 -23
- package/dist/assets/fonts/constants.d.ts +0 -1
- package/dist/assets/fonts/constants.js +0 -2
- package/dist/assets/fonts/core/collect-component-data.d.ts +9 -0
- package/dist/assets/fonts/core/collect-component-data.js +47 -0
- package/dist/assets/fonts/core/collect-font-assets-from-faces.d.ts +17 -0
- package/dist/assets/fonts/core/collect-font-assets-from-faces.js +71 -0
- package/dist/assets/fonts/core/collect-font-data.d.ts +4 -0
- package/dist/assets/fonts/core/collect-font-data.js +23 -0
- package/dist/assets/fonts/core/compute-font-families-assets.d.ts +20 -0
- package/dist/assets/fonts/core/compute-font-families-assets.js +67 -0
- package/dist/assets/fonts/core/filter-and-transform-font-faces.d.ts +20 -0
- package/dist/assets/fonts/core/filter-and-transform-font-faces.js +39 -0
- package/dist/assets/fonts/core/get-or-create-font-family-assets.d.ts +8 -0
- package/dist/assets/fonts/core/get-or-create-font-family-assets.js +34 -0
- package/dist/assets/fonts/core/optimize-fallbacks.d.ts +2 -3
- package/dist/assets/fonts/core/optimize-fallbacks.js +2 -3
- package/dist/assets/fonts/core/resolve-family.d.ts +6 -0
- package/dist/assets/fonts/core/resolve-family.js +23 -0
- package/dist/assets/fonts/definitions.d.ts +6 -28
- package/dist/assets/fonts/infra/build-font-file-id-generator.d.ts +13 -0
- package/dist/assets/fonts/infra/{build-url-proxy-hash-resolver.js → build-font-file-id-generator.js} +3 -6
- package/dist/assets/fonts/infra/build-url-resolver.d.ts +1 -1
- package/dist/assets/fonts/infra/build-url-resolver.js +4 -4
- package/dist/assets/fonts/infra/cached-font-fetcher.d.ts +1 -1
- package/dist/assets/fonts/infra/cached-font-fetcher.js +11 -3
- package/dist/assets/fonts/infra/capsize-font-metrics-resolver.d.ts +2 -2
- package/dist/assets/fonts/infra/dev-font-file-id-generator.d.ts +16 -0
- package/dist/assets/fonts/infra/{dev-url-proxy-hash-resolver.js → dev-font-file-id-generator.js} +8 -8
- package/dist/assets/fonts/infra/dev-url-resolver.d.ts +1 -1
- package/dist/assets/fonts/infra/dev-url-resolver.js +2 -2
- package/dist/assets/fonts/infra/fs-font-file-content-resolver.d.ts +10 -0
- package/dist/assets/fonts/infra/fs-font-file-content-resolver.js +21 -0
- package/dist/assets/fonts/infra/minifiable-css-renderer.d.ts +2 -1
- package/dist/assets/fonts/infra/{font-type-extractor.d.ts → node-font-type-extractor.d.ts} +1 -1
- package/dist/assets/fonts/infra/{font-type-extractor.js → node-font-type-extractor.js} +2 -2
- package/dist/assets/fonts/infra/unifont-font-resolver.d.ts +5 -3
- package/dist/assets/fonts/infra/unifont-font-resolver.js +14 -17
- package/dist/assets/fonts/providers/index.d.ts +6 -1
- package/dist/assets/fonts/providers/index.js +9 -1
- package/dist/assets/fonts/providers/local.d.ts +41 -8
- package/dist/assets/fonts/providers/local.js +65 -48
- package/dist/assets/fonts/runtime/client.d.ts +1 -1
- package/dist/assets/fonts/runtime/client.js +1 -1
- package/dist/assets/fonts/runtime/server.d.ts +1 -1
- package/dist/assets/fonts/runtime/server.js +1 -1
- package/dist/assets/fonts/types.d.ts +61 -110
- package/dist/assets/fonts/utils.d.ts +1 -7
- package/dist/assets/fonts/utils.js +1 -15
- package/dist/assets/fonts/vite-plugin-fonts.js +149 -141
- package/dist/cli/add/index.js +39 -0
- package/dist/cli/infra/build-time-astro-version-provider.js +1 -1
- package/dist/config/index.d.ts +1 -2
- package/dist/content/content-layer.js +3 -3
- package/dist/core/config/schemas/base.d.ts +58 -429
- package/dist/core/config/schemas/base.js +2 -2
- package/dist/core/config/schemas/relative.d.ts +76 -541
- package/dist/core/constants.js +1 -1
- package/dist/core/dev/dev.js +1 -1
- package/dist/core/errors/errors-data.d.ts +1 -1
- package/dist/core/errors/errors-data.js +1 -1
- package/dist/core/messages.js +2 -2
- package/dist/types/public/config.d.ts +3 -4
- package/package.json +5 -5
- package/dist/assets/fonts/core/normalize-remote-font-faces.d.ts +0 -7
- package/dist/assets/fonts/core/normalize-remote-font-faces.js +0 -41
- package/dist/assets/fonts/core/resolve-families.d.ts +0 -16
- package/dist/assets/fonts/core/resolve-families.js +0 -63
- package/dist/assets/fonts/infra/build-url-proxy-hash-resolver.d.ts +0 -15
- package/dist/assets/fonts/infra/data-collector.d.ts +0 -10
- package/dist/assets/fonts/infra/data-collector.js +0 -35
- package/dist/assets/fonts/infra/dev-url-proxy-hash-resolver.d.ts +0 -15
- package/dist/assets/fonts/infra/local-url-proxy-content-resolver.d.ts +0 -4
- package/dist/assets/fonts/infra/local-url-proxy-content-resolver.js +0 -14
- package/dist/assets/fonts/infra/remote-url-proxy-content-resolver.d.ts +0 -4
- package/dist/assets/fonts/infra/remote-url-proxy-content-resolver.js +0 -9
- package/dist/assets/fonts/infra/require-local-provider-url-resolver.d.ts +0 -9
- package/dist/assets/fonts/infra/require-local-provider-url-resolver.js +0 -30
- package/dist/assets/fonts/infra/url-proxy.d.ts +0 -16
- package/dist/assets/fonts/infra/url-proxy.js +0 -50
- package/dist/assets/fonts/orchestrate.d.ts +0 -42
- package/dist/assets/fonts/orchestrate.js +0 -173
package/dist/core/constants.js
CHANGED
package/dist/core/dev/dev.js
CHANGED
|
@@ -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.
|
|
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 = {
|
package/dist/core/messages.js
CHANGED
|
@@ -38,7 +38,7 @@ function serverStart({
|
|
|
38
38
|
host,
|
|
39
39
|
base
|
|
40
40
|
}) {
|
|
41
|
-
const version = "5.16.
|
|
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.
|
|
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 {
|
|
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
|
|
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]:
|
|
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.
|
|
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
|
-
"
|
|
198
|
-
"
|
|
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,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,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
|
-
}>;
|