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
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
import { LOCAL_PROVIDER_NAME } from "./constants.js";
|
|
2
|
-
import { normalizeRemoteFontFaces } from "./core/normalize-remote-font-faces.js";
|
|
3
|
-
import { optimizeFallbacks } from "./core/optimize-fallbacks.js";
|
|
4
|
-
import { resolveFamilies } from "./core/resolve-families.js";
|
|
5
|
-
import { resolveLocalFont } from "./providers/local.js";
|
|
6
|
-
import {
|
|
7
|
-
pickFontFaceProperty,
|
|
8
|
-
renderFontWeight,
|
|
9
|
-
unifontFontFaceDataToProperties
|
|
10
|
-
} from "./utils.js";
|
|
11
|
-
async function orchestrate({
|
|
12
|
-
families,
|
|
13
|
-
hasher,
|
|
14
|
-
localProviderUrlResolver,
|
|
15
|
-
cssRenderer,
|
|
16
|
-
systemFallbacksProvider,
|
|
17
|
-
fontMetricsResolver,
|
|
18
|
-
fontTypeExtractor,
|
|
19
|
-
fontFileReader,
|
|
20
|
-
logger,
|
|
21
|
-
createUrlProxy,
|
|
22
|
-
defaults,
|
|
23
|
-
bold,
|
|
24
|
-
stringMatcher,
|
|
25
|
-
createFontResolver
|
|
26
|
-
}) {
|
|
27
|
-
const resolvedFamilies = resolveFamilies({
|
|
28
|
-
families,
|
|
29
|
-
hasher,
|
|
30
|
-
localProviderUrlResolver
|
|
31
|
-
});
|
|
32
|
-
const fontResolver = await createFontResolver({ families: resolvedFamilies });
|
|
33
|
-
const fontFileDataMap = /* @__PURE__ */ new Map();
|
|
34
|
-
const internalConsumableMap = /* @__PURE__ */ new Map();
|
|
35
|
-
const fontData = {};
|
|
36
|
-
const resolvedFamiliesMap = /* @__PURE__ */ new Map();
|
|
37
|
-
for (const family of resolvedFamilies) {
|
|
38
|
-
const key = `${family.cssVariable}:${family.name}:${typeof family.provider === "string" ? family.provider : family.provider.name}`;
|
|
39
|
-
let resolvedFamily = resolvedFamiliesMap.get(key);
|
|
40
|
-
if (!resolvedFamily) {
|
|
41
|
-
if (Array.from(resolvedFamiliesMap.keys()).find((k) => k.startsWith(`${family.cssVariable}:`))) {
|
|
42
|
-
logger.warn(
|
|
43
|
-
"assets",
|
|
44
|
-
`Several font families have been registered for the ${bold(family.cssVariable)} cssVariable but they do not share the same name and provider.`
|
|
45
|
-
);
|
|
46
|
-
logger.warn(
|
|
47
|
-
"assets",
|
|
48
|
-
"These families will not be merged together. The last occurrence will override previous families for this cssVariable. Review your Astro configuration."
|
|
49
|
-
);
|
|
50
|
-
}
|
|
51
|
-
resolvedFamily = {
|
|
52
|
-
family,
|
|
53
|
-
fonts: [],
|
|
54
|
-
fallbacks: family.fallbacks ?? defaults.fallbacks ?? [],
|
|
55
|
-
collectedFonts: [],
|
|
56
|
-
preloadData: []
|
|
57
|
-
};
|
|
58
|
-
resolvedFamiliesMap.set(key, resolvedFamily);
|
|
59
|
-
}
|
|
60
|
-
const urlProxy = createUrlProxy({
|
|
61
|
-
local: family.provider === LOCAL_PROVIDER_NAME,
|
|
62
|
-
hasUrl: (hash) => fontFileDataMap.has(hash),
|
|
63
|
-
saveUrl: ({ hash, url, init }) => {
|
|
64
|
-
fontFileDataMap.set(hash, { url, init });
|
|
65
|
-
},
|
|
66
|
-
savePreload: (preload) => {
|
|
67
|
-
resolvedFamily.preloadData.push(preload);
|
|
68
|
-
},
|
|
69
|
-
saveFontData: (collected) => {
|
|
70
|
-
if (resolvedFamily.fallbacks && resolvedFamily.fallbacks.length > 0 && // If the same data has already been sent for this family, we don't want to have
|
|
71
|
-
// duplicated fallbacks. Such scenario can occur with unicode ranges.
|
|
72
|
-
!resolvedFamily.collectedFonts.some(
|
|
73
|
-
(f) => JSON.stringify(f.data) === JSON.stringify(collected.data)
|
|
74
|
-
)) {
|
|
75
|
-
resolvedFamily.collectedFonts.push(collected);
|
|
76
|
-
}
|
|
77
|
-
},
|
|
78
|
-
cssVariable: family.cssVariable
|
|
79
|
-
});
|
|
80
|
-
if (family.provider === LOCAL_PROVIDER_NAME) {
|
|
81
|
-
const fonts = resolveLocalFont({
|
|
82
|
-
family,
|
|
83
|
-
urlProxy,
|
|
84
|
-
fontTypeExtractor,
|
|
85
|
-
fontFileReader
|
|
86
|
-
});
|
|
87
|
-
resolvedFamily.fonts.push(...fonts);
|
|
88
|
-
} else {
|
|
89
|
-
const fonts = await fontResolver.resolveFont({
|
|
90
|
-
familyName: family.name,
|
|
91
|
-
provider: family.provider,
|
|
92
|
-
// We do not merge the defaults, we only provide defaults as a fallback
|
|
93
|
-
weights: family.weights ?? defaults.weights,
|
|
94
|
-
styles: family.styles ?? defaults.styles,
|
|
95
|
-
subsets: family.subsets ?? defaults.subsets,
|
|
96
|
-
formats: family.formats ?? defaults.formats,
|
|
97
|
-
options: family.options
|
|
98
|
-
});
|
|
99
|
-
if (fonts.length === 0) {
|
|
100
|
-
logger.warn(
|
|
101
|
-
"assets",
|
|
102
|
-
`No data found for font family ${bold(family.name)}. Review your configuration`
|
|
103
|
-
);
|
|
104
|
-
const availableFamilies = await fontResolver.listFonts({ provider: family.provider });
|
|
105
|
-
if (availableFamilies && availableFamilies.length > 0 && !availableFamilies.includes(family.name)) {
|
|
106
|
-
logger.warn(
|
|
107
|
-
"assets",
|
|
108
|
-
`${bold(family.name)} font family cannot be retrieved by the provider. Did you mean ${bold(stringMatcher.getClosestMatch(family.name, availableFamilies))}?`
|
|
109
|
-
);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
resolvedFamily.fonts = normalizeRemoteFontFaces({ fonts, urlProxy, fontTypeExtractor });
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
for (const {
|
|
116
|
-
family,
|
|
117
|
-
fonts,
|
|
118
|
-
fallbacks,
|
|
119
|
-
collectedFonts,
|
|
120
|
-
preloadData
|
|
121
|
-
} of resolvedFamiliesMap.values()) {
|
|
122
|
-
const fontDataValue = [];
|
|
123
|
-
let css = "";
|
|
124
|
-
for (const data of fonts) {
|
|
125
|
-
css += cssRenderer.generateFontFace(
|
|
126
|
-
family.nameWithHash,
|
|
127
|
-
unifontFontFaceDataToProperties({
|
|
128
|
-
src: data.src,
|
|
129
|
-
weight: data.weight,
|
|
130
|
-
style: data.style,
|
|
131
|
-
// User settings override the generated font settings. We use a helper function
|
|
132
|
-
// because local and remote providers store this data in different places.
|
|
133
|
-
display: pickFontFaceProperty("display", { data, family }),
|
|
134
|
-
unicodeRange: pickFontFaceProperty("unicodeRange", { data, family }),
|
|
135
|
-
stretch: pickFontFaceProperty("stretch", { data, family }),
|
|
136
|
-
featureSettings: pickFontFaceProperty("featureSettings", { data, family }),
|
|
137
|
-
variationSettings: pickFontFaceProperty("variationSettings", { data, family })
|
|
138
|
-
})
|
|
139
|
-
);
|
|
140
|
-
fontDataValue.push({
|
|
141
|
-
weight: renderFontWeight(data.weight),
|
|
142
|
-
style: data.style,
|
|
143
|
-
src: data.src.filter((src) => "url" in src).map((src) => ({
|
|
144
|
-
url: src.url,
|
|
145
|
-
format: src.format,
|
|
146
|
-
tech: src.tech
|
|
147
|
-
}))
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
const cssVarValues = [family.nameWithHash];
|
|
151
|
-
const optimizeFallbacksResult = await optimizeFallbacks({
|
|
152
|
-
family,
|
|
153
|
-
fallbacks,
|
|
154
|
-
collectedFonts,
|
|
155
|
-
enabled: family.optimizedFallbacks ?? defaults.optimizedFallbacks ?? false,
|
|
156
|
-
systemFallbacksProvider,
|
|
157
|
-
fontMetricsResolver
|
|
158
|
-
});
|
|
159
|
-
if (optimizeFallbacksResult) {
|
|
160
|
-
css += optimizeFallbacksResult.css;
|
|
161
|
-
cssVarValues.push(...optimizeFallbacksResult.fallbacks);
|
|
162
|
-
} else {
|
|
163
|
-
cssVarValues.push(...fallbacks);
|
|
164
|
-
}
|
|
165
|
-
css += cssRenderer.generateCssVariable(family.cssVariable, cssVarValues);
|
|
166
|
-
internalConsumableMap.set(family.cssVariable, { preloadData, css });
|
|
167
|
-
fontData[family.cssVariable] = fontDataValue;
|
|
168
|
-
}
|
|
169
|
-
return { fontFileDataMap, internalConsumableMap, fontData };
|
|
170
|
-
}
|
|
171
|
-
export {
|
|
172
|
-
orchestrate
|
|
173
|
-
};
|